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

Интеграция 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.

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

    export MLFLOW_RUN=<your_run_name>
    

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

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

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

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

  1. Убей серверные экземпляры 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.



Создано 2023-11-12, Обновлено 2024-01-07
Авторы: glenn-jocher (3)

Комментарии