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

MLflow experiment tracking with Ultralytics YOLO

Введение

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

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

Что такое MLflow?

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

Функции

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

Настройка и предварительные требования

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

pip install mlflow

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

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

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

from ultralytics import settings

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

# Reset settings to default values
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'. Чтобы направить запуски обучения на другой сервер отслеживания, экспортируй MLFLOW_TRACKING_URI перед обучением:

    export MLFLOW_TRACKING_URI=http://127.0.0.1:5000
  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 callback functions. Эти функции автоматически вызываются во время соответствующих этапов процесса обучения и отвечают за регистрацию параметров, метрик и артефактов.

Примеры

  1. Регистрация пользовательских метрик: ты можешь добавлять пользовательские метрики для регистрации, изменив словарь trainer.metrics до вызова on_fit_epoch_end.

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

  3. Просмотр запуска: запуски — это отдельные модели внутри эксперимента. Нажми на запуск, чтобы увидеть детали запуска, включая загруженные артефакты и веса модели. MLflow run details with YOLO artifacts

Отключение MLflow

Чтобы выключить регистрацию MLflow:

yolo settings mlflow=False

Заключение

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

Часто задаваемые вопросы (FAQ)

Как настроить регистрацию MLflow с Ultralytics YOLO?

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

pip install mlflow

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

Обновление настроек MLflow в Ultralytics
from ultralytics import settings

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

# Reset settings to default values
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 для Ultralytics YOLO.

Комментарии