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

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

Экосистема MLflow

Введение

Experiment logging is a crucial aspect of machine learning workflows that enables tracking of various metrics, parameters, and artifacts. It helps to enhance model reproducibility, debug issues, and improve model performance. Ultralytics YOLO, known for its real-time object detection capabilities, now offers integration with MLflow, an open-source platform for complete machine learning lifecycle management.

Эта страница документации представляет собой исчерпывающее руководство по настройке и использованию возможностей протоколирования 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 можно регистрировать различные метрики, параметры и артефакты на протяжении всего процесса обучения:

  • Metrics Logging: Tracks metrics at the end of each epoch and upon training completion.
  • Ведение журнала параметров: Записывает в журнал все параметры, используемые в процессе тренировки.
  • Ведение журнала артефактов: Сохраняй артефакты модели, такие как веса и конфигурационные файлы, после тренировки.

За более подробной информацией обращайся к документации по отслеживанию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 .

📅 Created 11 months ago ✏️ Updated 28 days ago

Комментарии