Глоссарий

YAML

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

YAML, аббревиатура от "YAML Ain't Markup Language", - это человекочитаемый стандарт сериализации данных, используемый для написания конфигурационных файлов и передачи данных между системами. В его дизайне приоритет отдается ясности и простоте, что позволяет разработчикам и специалистам по исследованию данных определять сложные структуры данных в удобном для чтения и записи виде. В отличие от более многословных форматов, YAML использует отступы для обозначения структуры, в результате чего получаются чистые, интуитивно понятные файлы, которые идеально подходят для управления настройками в программных проектах, в том числе в Machine Learning (ML). Официальную спецификацию и ресурсы можно найти на сайте yaml.org.

Роль и применение в искусственном интеллекте и ML

В контексте искусственного интеллекта (ИИ) YAML является основой управления конфигурациями, играя решающую роль в обеспечении воспроизводимости и упрощении экспериментов. Проекты Deep Learning (DL) часто включают в себя множество настроек, от архитектуры модели до параметров обучения. Хранение этих настроек в файле YAML позволяет легко отслеживать, изменять и делиться экспериментальными установками. Вы можете изучить шпаргалку по синтаксису YAML для быстрого ознакомления.

Два распространенных примера применения ИИ в реальном мире включают в себя:

  1. Конфигурация набора данных: Перед обучением модели необходимо определить набор данных. В файле YAML указывается путь к обучающим и проверочным изображениям, количество классов объектов и имена этих классов. Такой подход используется в Ultralytics для управления наборами данных типа COCO. Благодаря этому модель точно знает, где ей искать данные и чему она должна научиться.
  2. Обучение и настройка гиперпараметров: YAML-файл идеально подходит для определения всех параметров, необходимых для тренировки. Сюда входит указание архитектуры модели (например, YOLO11n), размер партии, скорость обучения, количество эпохи, и настройки для расширение данных. Централизация этих настроек позволяет систематически настройка гиперпараметров и делает эксперименты легко воспроизводимыми. Сайт Документация Ultralytics приведены подробные примеры этих конфигурационных файлов.

YAML по сравнению с другими форматами данных

YAML часто сравнивают с другими форматами сериализации данных, такими как JSON и XML.

  • YAML против JSON: Несмотря на функциональную схожесть и то, что YAML является надмножеством JSON (JavaScript Object Notation), YAML часто предпочитают использовать для конфигурационных файлов из-за его лучшей читабельности. В нем нет скобок и запятых, а есть отступы, и, что очень важно, он поддерживает комментарии, которые неоценимы для документирования выбора конфигурации.
  • YAML по сравнению с XML: По сравнению с XML (eXtensible Markup Language), YAML гораздо менее многословен. Использование в XML открывающих и закрывающих тегов делает его файлы более объемными и сложными для быстрого разбора человеком, в то время как минималистичный синтаксис YAML предназначен для прямого редактирования.

Более широкая экосистема и инструменты

Полезность YAML выходит далеко за рамки компьютерного зрения. Это фундаментальный компонент в мире DevOps, используемый такими инструментами, как Kubernetes для определения контейнерных оркестров и Ansible для создания программ автоматизации ИТ. Эту концепцию часто называют Configuration as Code (CaC).

Для разработчиков, использующих Python, библиотека PyYAML является распространенным инструментом для разбора и генерации данных YAML. Для предотвращения синтаксических ошибок, которые могут быть распространены из-за чувствительности к отступам, рекомендуется использовать валидатор YAML. Такая экосистема инструментов делает YAML надежным выбором для управления всем жизненным циклом MLOps, от первоначальной настройки в Jupyter Notebook до полномасштабного развертывания модели с помощью Docker и конвейеров CI/CD с такими инструментами, как GitHub Actions. Простота управления конфигурацией также упрощает интеграцию с такими платформами, как Ultralytics HUB, что обеспечивает беспрепятственное обучение и развертывание.

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

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

Присоединяйтесь сейчас
Ссылка копируется в буфер обмена