Узнайте, как YAML оптимизирует рабочие процессы искусственного интеллекта. Узнайте, как использовать файлы YAML для настройки наборов данных и обучения моделей Ultralytics для более быстрого и простого MLOps.
YAML (YAML Ain't Markup Language) — это стандарт сериализации данных, понятный для человека, который широко используется в программной индустрии для написания конфигурационных файлов. В отличие от более сложных языков разметки, YAML уделяет приоритетное внимание чистому форматированию и читаемости, что делает его отличным выбором для разработчиков и специалистов по обработке данных, которым необходимо быстро проверять или изменять параметры . Его простая структура основана на отступах, а не на скобках или тегах, что позволяет пользователям определять иерархические структуры данных, такие как списки и словари, с минимальным визуальным беспорядком. В контексте искусственного интеллекта и машинного обучения YAML служит важным мостом между намерениями человека и выполнением машиной, хранит все, от путей к наборам данных до настроек гиперпараметров, в формате, который легко контролировать и которым легко делиться.
В современных операциях машинного обучения (MLOps) очень важно поддерживать воспроизводимые и организованные эксперименты. Файлы YAML служат чертежами для этих экспериментов, объединяя все необходимые детали конфигурации в одном документе. Такие фреймворки, как модели Ultralytics , в значительной степени полагаются на эти файлы конфигурации для определения архитектур моделей и протоколов обучения.
При обучении модели компьютерного зрения часто необходимо указать, где хранятся обучающие данные, сколько классов вы обнаруживаете и как называются эти классы. Вместо того чтобы жестко прописывать эти значения в Python , что может привести к беспорядку в коде, вы отделяете эти данные в файл YAML. Такое разделение задач позволяет исследователям менять наборы данных или корректировать скорость обучения, не затрагивая основной код, что облегчает отслеживание экспериментов и совместную работу.
Хотя YAML часто сравнивают с JSON (JavaScript Object Notation) и XML (eXtensible Markup Language), они служат слегка разным целям в экосистеме ИИ.
YAML находит свое применение на нескольких важных этапах жизненного цикла разработки ИИ:
data.yaml) обычно определяет пути к каталогам для наборов данных для обучения, валидации и тестирования. Он также сопоставляет
индексы классов (0, 1, 2) с именами классов (человек, велосипед, автомобиль), обеспечивая понимание структуры данных моделью.
Следующий пример демонстрирует, как типичный файл YAML действует в качестве интерфейса набора данных для обучения модели YOLO26. Python ниже показывает, как Ultralytics использует этот файл для запуска процесса обучения.
1. coco8.yaml файл (Концепция):Этот файл будет содержать пути к изображениям и список
имен классов.
path: ../datasets/coco8 # dataset root dir
train: images/train # train images (relative to 'path')
val: images/val # val images (relative to 'path')
# Classes
names:
0: person
1: bicycle
2: car
...
2. Python :код считывает конфигурацию и запускает обучение с использованием указанных параметров.
from ultralytics import YOLO
# Load the YOLO26 model (recommended for new projects)
model = YOLO("yolo26n.pt")
# Train the model using the dataset configuration defined in the YAML file
# The 'data' argument points directly to the YAML file
results = model.train(data="coco8.yaml", epochs=5, imgsz=640)
Понимание нескольких ключевых синтаксических правил помогает избежать распространенных ошибок, таких как ScannerError или
ParserError, которые часто возникают из-за неправильного отступа.
key: value. Например,
epochs: 100 устанавливает количество циклов обучения.
-. Это полезно для определения списков
аугментация данных шаги или несколько источников ввода
.
# игнорируются парсером, что позволяет вам оставлять заметки
о конкретных
гиперпараметры непосредственно в файле.
Освоив YAML, специалисты могут оптимизировать рабочие процессы обучения моделей, сократить количество ошибок конфигурации и обеспечить масштабируемость и простоту обслуживания своих проектов в области искусственного интеллекта.