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






