Перейти к содержимому

Интеграция MLflow для Ultralytics YOLO

Экосистема MLflow

Введение

Протоколирование экспериментов - важный аспект рабочих процессов машинного обучения, который позволяет отслеживать различные метрики, параметры и артефакты. Это помогает улучшить воспроизводимость модели, отладить проблемы и повысить производительность модели. Ultralytics YOLO, известный своими возможностями обнаружения объектов в реальном времени, теперь предлагает интеграцию с MLflow, платформой с открытым исходным кодом для полного управления жизненным циклом машинного обучения.

Эта страница документации представляет собой исчерпывающее руководство по настройке и использованию возможностей протоколирования MLflow для твоего проекта Ultralytics YOLO.

Что такое MLflow?

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

Характеристики

  • Ведение журнала метрик: Веди журнал метрик в конце каждой эпохи и в конце тренировки.
  • Ведение журнала параметров: Записывает в журнал все параметры, использованные в тренировке.
  • Ведение журнала артефактов: По окончании тренировки веди журнал артефактов модели, включая веса и конфигурационные файлы.

Установка и предварительные условия

Убедись, что MLflow установлен. Если нет, установи его с помощью pip:

pip install mlflow

Убедись, что в настройках Ultralytics включено ведение журнала MLflow. Обычно это контролируется настройками mflow ключ. См. настройки Страница для получения дополнительной информации.

Обновление настроек Ultralytics MLflow

В среде Python вызови update метод на settings объект, чтобы изменить настройки:

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()

Если ты предпочитаешь использовать интерфейс командной строки, то следующие команды позволят тебе изменить настройки:

# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

Как использовать

Команды

  1. Задайте имя проекта: Ты можешь задать имя проекта через переменную окружения:

    export MLFLOW_EXPERIMENT_NAME=<your_experiment_name>
    

    Или воспользуйся project=<project> аргумент при обучении модели YOLO, то есть yolo train project=my_project.

  2. Задайте имя выполнения: Как и в случае с именем проекта, ты можешь задать имя запуска через переменную окружения:

    export MLFLOW_RUN=<your_run_name>
    

    Или воспользуйся name=<name> аргумент при обучении модели YOLO, то есть yolo train project=my_project name=my_name.

  3. Запусти локальный сервер MLflow: Чтобы запустить отслеживание, используй:

    mlflow server --backend-store-uri runs/mlflow'
    

    Это запустит локальный сервер по адресу http://127.0.0.1:5000 по умолчанию и сохранит все логи mlflow в директорию 'runs/mlflow'. Чтобы указать другой URI, задай параметр MLFLOW_TRACKING_URI переменная окружения.

  4. Убей серверные экземпляры MLflow: Чтобы остановить все запущенные экземпляры MLflow, выполни команду:

    ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
    

Запись в журнале

Записью в журнал занимается on_pretrain_routine_end, on_fit_epoch_end, и on_train_end функции обратного вызова. Эти функции автоматически вызываются на соответствующих этапах тренировочного процесса и занимаются протоколированием параметров, метрик и артефактов.

Примеры

  1. Ведение журнала пользовательских показателей: Ты можешь добавить пользовательские метрики, которые будут записываться в журнал, изменив trainer.metrics Словарь до on_fit_epoch_end называется.

  2. Посмотреть эксперимент: Чтобы просмотреть логи, перейди на свой сервер MLflow (обычно это http://127.0.0.1:5000), выбери свой эксперимент и запусти. YOLO Эксперимент с MLflow

  3. Смотреть бег: Прогоны - это отдельные модели внутри эксперимента. Кликни на Run и увидишь детали Run, включая загруженные артефакты и веса моделей. YOLO MLflow Run

Отключение MLflow

Чтобы отключить ведение журнала MLflow:

yolo settings mlflow=False

Заключение

Интеграция логов MLflow с Ultralytics YOLO предлагает упрощенный способ отслеживания результатов твоих экспериментов по машинному обучению. С ее помощью ты сможешь отслеживать показатели производительности и эффективно управлять артефактами, что поможет в разработке и развертывании надежных моделей. За более подробной информацией обращайся к официальной документации MLflow.

ВОПРОСЫ И ОТВЕТЫ

Как настроить ведение журнала MLflow с помощью Ultralytics YOLO ?

Чтобы настроить ведение логов MLflow с помощью Ultralytics YOLO , тебе сначала нужно убедиться, что MLflow установлен. Ты можешь установить его с помощью pip:

pip install mlflow

Затем включи ведение журнала MLflow в настройках Ultralytics . Это можно контролировать с помощью mlflow ключ. Для получения дополнительной информации см. руководство по настройкам.

Обновление настроек Ultralytics MLflow

from ultralytics import settings

# Update a setting
settings.update({"mlflow": True})

# Reset settings to default values
settings.reset()
# Update a setting
yolo settings runs_dir='/path/to/runs'

# Reset settings to default values
yolo settings reset

Наконец, запусти локальный сервер MLflow для отслеживания:

mlflow server --backend-store-uri runs/mlflow

Какие метрики и параметры я могу регистрировать, используя MLflow с Ultralytics YOLO ?

Ultralytics YOLO С помощью MLflow можно регистрировать различные метрики, параметры и артефакты на протяжении всего процесса обучения:

  • Ведение журнала метрик: Отслеживай метрики в конце каждой эпохи и по завершении тренировки.
  • Ведение журнала параметров: Записывает в журнал все параметры, используемые в процессе тренировки.
  • Ведение журнала артефактов: Сохраняй артефакты модели, такие как веса и конфигурационные файлы, после тренировки.

За более подробной информацией обращайся к документации по отслеживаниюUltralytics YOLO .

Можно ли отключить ведение журнала MLflow после его включения?

Да, ты можешь отключить ведение журнала MLflow для Ultralytics YOLO , обновив настройки. Вот как ты можешь это сделать, используя CLI:

yolo settings mlflow=False

О дальнейшей настройке и сбросе параметров читай в руководстве по настройкам.

Как запустить и остановить сервер MLflow для отслеживания Ultralytics YOLO ?

Чтобы запустить сервер MLflow для отслеживания твоих экспериментов на сайте Ultralytics YOLO , используй следующую команду:

mlflow server --backend-store-uri runs/mlflow

Эта команда по умолчанию запускает локальный сервер по адресу http://127.0.0.1:5000. Если тебе нужно остановить запущенные экземпляры сервера MLflow, используй следующую команду bash :

ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9

Дополнительные варианты команд см. в разделе "Команды ".

Какие преимущества дает интеграция MLflow с Ultralytics YOLO для отслеживания экспериментов?

Интеграция MLflow с Ultralytics YOLO дает несколько преимуществ для управления твоими экспериментами по машинному обучению:

  • Улучшенное отслеживание экспериментов: Легко отслеживай и сравнивай различные запуски и их результаты.
  • Улучшенная воспроизводимость моделей: Обеспечь воспроизводимость своих экспериментов, регистрируя все параметры и артефакты.
  • Мониторинг производительности: Визуализируй показатели производительности с течением времени, чтобы принимать решения по улучшению модели на основе данных.

Чтобы получить подробную информацию о настройке и использовании MLflow с Ultralytics YOLO , изучи документацию MLflow Integration for Ultralytics YOLO .



Создано 2023-11-12, Обновлено 2024-07-05
Авторы: glenn-jocher (8), Burhan-Q (1)

Комментарии