YAML
Узнай, как YAML упрощает ИИ-рабочие процессы. Открой для себя, как использовать файлы YAML для настройки наборов данных и обучения моделей Ultralytics YOLO26 для более быстрых и простых MLOps.
YAML (YAML Ain't Markup Language) — это человекочитаемый стандарт сериализации данных, широко используемый в индустрии программного обеспечения для написания конфигурационных файлов. В отличие от более сложных языков разметки, YAML отдает приоритет чистому форматированию и читаемости, что делает его отличным выбором для разработчиков и специалистов по анализу данных, которым необходимо быстро проверять или изменять параметры. Его простая структура основана на отступах, а не на скобках или тегах, что позволяет пользователям определять иерархические структуры данных, такие как списки и словари, с минимальным визуальным шумом. В контексте искусственного интеллекта и машинного обучения YAML служит важным связующим звеном между человеческим замыслом и машинным исполнением, сохраняя все: от путей к наборам данных до настроек hyperparameter tuning в формате, который легко версионировать и передавать.
Link to this sectionАктуальность в машинном обучении#
В современных machine learning operations (MLOps) крайне важно поддерживать воспроизводимость и организованность экспериментов. YAML-файлы выступают в роли чертежей для этих экспериментов, инкапсулируя все необходимые детали конфигурации в одном документе. Такие фреймворки, как модели Ultralytics YOLO26, активно полагаются на эти конфигурационные файлы для определения архитектур моделей и протоколов обучения.
Когда ты обучаешь модель компьютерного зрения, тебе часто нужно указать, где находятся training data, сколько классов ты распознаешь и каковы их названия. Вместо того чтобы «зашивать» эти значения прямо в скрипты Python, что может привести к беспорядочной кодовой базе, ты отделяешь эти данные в YAML-файл. Такое разделение ответственности позволяет исследователям менять наборы данных или корректировать learning rates, не затрагивая основной код, что способствует лучшему experiment tracking и совместной работе.
Link to this sectionYAML vs. JSON vs. XML#
Хотя YAML часто сравнивают с JSON (JavaScript Object Notation) и XML (eXtensible Markup Language), в экосистеме ИИ они выполняют несколько разные задачи.
- YAML: Идеален для конфигурационных файлов, которые пишут и читают люди. Он поддерживает комментарии, которые критически важны для документирования того, почему были выбраны конкретные model weights или параметры.
- JSON: Идеален для взаимодействия между машинами, например, для веб-API или сохранения inference results. Он строже и сложнее для редактирования вручную из-за необходимости использования кавычек и фигурных скобок, к тому же он не поддерживает комментарии.
- XML: Более многословный формат, часто используемый в устаревших системах или для сложного хранения документов (например, Pascal VOC annotations). Как правило, он считается слишком громоздким для простых задач конфигурации в современных рабочих процессах глубокого обучения.
Link to this sectionРеальные применения в ИИ#
YAML находит свое место на нескольких критических этапах жизненного цикла разработки ИИ:
- Конфигурация набора данных: При работе с наборами данных для object detection, такими как COCO, или с пользовательскими данными на Ultralytics Platform, YAML-файл (
data.yaml) обычно определяет пути к каталогам для наборов обучения, валидации и тестирования. Он также сопоставляет индексы классов (0, 1, 2) с их именами (person, bicycle, car), гарантируя, что модель понимает структуру данных. - CI/CD пайплайны: В рабочих процессах continuous integration такие инструменты, как GitHub Actions, используют YAML для определения этапов автоматизации. Это может включать запуск модульных тестов для новой архитектуры нейронной сети или развертывание модели в Docker container при каждом обновлении кода в репозитории.
Link to this sectionПример: настройка процесса обучения YOLO#
Следующий пример демонстрирует, как обычный 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)Link to this sectionОсновные понятия синтаксиса#
Понимание нескольких ключевых правил синтаксиса помогает избежать распространенных ошибок, таких как ScannerError или ParserError, которые часто возникают из-за неправильных отступов.
- Отступы: YAML использует пробелы (именно пробелы, а не табы) для обозначения структуры. Вложенные элементы должны иметь больший отступ, чем их родительские элементы.
- Key-Value Pairs: Data is stored as
key: value. For example,epochs: 100sets the number of training cycles. - Списки: последовательности обозначаются дефисом
-. Это полезно для определения списков этапов data augmentation или нескольких источников входных данных. - Комментарии: Строки, начинающиеся с
#, игнорируются парсером, что позволяет тебе оставлять заметки о конкретных hyperparameters прямо в файле.
Освоив YAML, ты сможешь оптимизировать свои рабочие процессы model training, сократить количество ошибок конфигурации и обеспечить масштабируемость и простоту сопровождения своих ИИ-проектов.






