Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас
Глоссарий

YAML

Узнайте, как YAML оптимизирует рабочие процессы искусственного интеллекта. Узнайте, как использовать файлы YAML для настройки наборов данных и обучения моделей Ultralytics для более быстрого и простого MLOps.

YAML (YAML Ain't Markup Language) — это стандарт сериализации данных, понятный для человека, который широко используется в программной индустрии для написания конфигурационных файлов. В отличие от более сложных языков разметки, YAML уделяет приоритетное внимание чистому форматированию и читаемости, что делает его отличным выбором для разработчиков и специалистов по обработке данных, которым необходимо быстро проверять или изменять параметры . Его простая структура основана на отступах, а не на скобках или тегах, что позволяет пользователям определять иерархические структуры данных, такие как списки и словари, с минимальным визуальным беспорядком. В контексте искусственного интеллекта и машинного обучения YAML служит важным мостом между намерениями человека и выполнением машиной, хранит все, от путей к наборам данных до настроек гиперпараметров, в формате, который легко контролировать и которым легко делиться.

Релевантность в машинном обучении

В современных операциях машинного обучения (MLOps) очень важно поддерживать воспроизводимые и организованные эксперименты. Файлы YAML служат чертежами для этих экспериментов, объединяя все необходимые детали конфигурации в одном документе. Такие фреймворки, как модели Ultralytics , в значительной степени полагаются на эти файлы конфигурации для определения архитектур моделей и протоколов обучения.

При обучении модели компьютерного зрения часто необходимо указать, где хранятся обучающие данные, сколько классов вы обнаруживаете и как называются эти классы. Вместо того чтобы жестко прописывать эти значения в Python , что может привести к беспорядку в коде, вы отделяете эти данные в файл YAML. Такое разделение задач позволяет исследователям менять наборы данных или корректировать скорость обучения, не затрагивая основной код, что облегчает отслеживание экспериментов и совместную работу.

YAML против JSON против XML

Хотя YAML часто сравнивают с JSON (JavaScript Object Notation) и XML (eXtensible Markup Language), они служат слегка разным целям в экосистеме ИИ.

  • YAML: Лучше всего подходит для конфигурационных файлов, которые пишут и читают люди. Он поддерживает комментарии, которые крайне важны для документирования причин выбора конкретных весов или параметров модели.
  • JSON: идеально подходит для межмашинного взаимодействия, например для веб-API или сохранения результатов вывода. Он более строгий и сложен для ручного редактирования человеком из-за необходимости использования кавычек и фигурных скобок, а также не поддерживает комментарии.
  • XML: более подробный формат, часто используемый в устаревших системах или для хранения сложных документов (например, VOC Pascal VOC ). Обычно считается слишком тяжелым для простых задач конфигурации в современных рабочих процессах глубокого обучения.

Приложения реального мира в искусственном интеллекте

YAML находит свое применение на нескольких важных этапах жизненного цикла разработки ИИ:

  • Конфигурация набора данных: При работе с обнаружение объектов наборы данных, такие как COCO пользовательские данные на Платформа Ultralytics, файл YAML (data.yaml) обычно определяет пути к каталогам для наборов данных для обучения, валидации и тестирования. Он также сопоставляет индексы классов (0, 1, 2) с именами классов (человек, велосипед, автомобиль), обеспечивая понимание структуры данных моделью.
  • CI/CD-конвейеры: в рабочих процессах непрерывной интеграции такие инструменты, как GitHub Actions, используют YAML для определения этапов автоматизации. Это может включать в себя запуск модульных тестов на новой архитектуре нейронной сети или развертывание модели в контейнере Docker при каждой отправке кода в репозиторий.

Пример: Настройка запуска 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 устанавливает количество циклов обучения.
  • Списки: последовательности обозначаются дефисом -. Это полезно для определения списков аугментация данных шаги или несколько источников ввода .
  • Комментарии: Строки, начинающиеся с # игнорируются парсером, что позволяет вам оставлять заметки о конкретных гиперпараметры непосредственно в файле.

Освоив YAML, специалисты могут оптимизировать рабочие процессы обучения моделей, сократить количество ошибок конфигурации и обеспечить масштабируемость и простоту обслуживания своих проектов в области искусственного интеллекта.

Присоединяйтесь к сообществу Ultralytics

Присоединяйтесь к будущему ИИ. Общайтесь, сотрудничайте и развивайтесь вместе с мировыми новаторами

Присоединиться сейчас