Интеграция MLflow для Ultralytics YOLO
Введение
Ведение журнала экспериментов является важным аспектом рабочих процессов машинного обучения, который позволяет отслеживать различные метрики, параметры и артефакты. Это помогает улучшить воспроизводимость модели, отлаживать проблемы и повысить производительность модели. Ultralytics YOLO, известный своими возможностями обнаружения объектов в реальном времени, теперь предлагает интеграцию с MLflow, платформой с открытым исходным кодом для полного управления жизненным циклом машинного обучения.
Эта страница документации является исчерпывающим руководством по настройке и использованию возможностей ведения журнала MLflow для вашего проекта Ultralytics YOLO.
Что такое MLflow?
MLflow - это платформа с открытым исходным кодом, разработанная компанией Databricks для управления полным жизненным циклом машинного обучения. Она включает в себя инструменты для отслеживания экспериментов, упаковки кода в воспроизводимые запуски, а также для обмена и развертывания моделей. MLflow предназначен для работы с любой библиотекой машинного обучения и языком программирования.
Функции
- Ведение журнала метрик: Регистрирует метрики в конце каждой эпохи и в конце обучения.
- Ведение журнала параметров: Регистрирует все параметры, используемые в обучении.
- Ведение журнала артефактов: Регистрирует артефакты модели, включая веса и файлы конфигурации, в конце обучения.
Настройка и предварительные требования
Убедитесь, что MLflow установлен. Если нет, установите его с помощью pip:
pip install mlflow
Убедитесь, что ведение журнала MLflow включено в настройках Ultralytics. Обычно это контролируется параметрами mlflow
ключом. Смотрите страницу настроек для получения дополнительной информации.
Обновление настроек 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 mlflow=True
# Reset settings to default values
yolo settings reset
Как использовать
Команды
-
Установка имени проекта: Вы можете установить имя проекта через переменную окружения:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAME
Или используйте
project=<project>
аргумент при обучении модели YOLO, например:yolo train project=my_project
. -
Установка имени запуска: Аналогично установке имени проекта, вы можете установить имя запуска через переменную окружения:
export MLFLOW_RUN=YOUR_RUN_NAME
Или используйте
name=<name>
аргумент при обучении модели YOLO, например:yolo train project=my_project name=my_name
. -
Запуск локального сервера MLflow: Чтобы начать отслеживание, используйте:
mlflow server --backend-store-uri runs/mlflow
Это запустит локальный сервер по адресу
http://127.0.0.1:5000
по умолчанию и сохранит все журналы mlflow в каталог 'runs\/mlflow'. Чтобы указать другой URI, установитеMLFLOW_TRACKING_URI
переменную окружения. -
Удаление экземпляров сервера 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
функции обратного вызова. Эти функции автоматически вызываются на соответствующих этапах процесса обучения и обрабатывают ведение журнала параметров, метрик и артефактов.
Примеры
-
Регистрация пользовательских метрик: Вы можете добавить пользовательские метрики для регистрации, изменив
trainer.metrics
словарь перед вызовомon_fit_epoch_end
. -
Просмотр эксперимента: Чтобы просмотреть свои журналы, перейдите на свой сервер MLflow (обычно
http://127.0.0.1:5000
) и выберите свой эксперимент и запуск. -
Просмотр запуска: Запуски — это отдельные модели внутри эксперимента. Щелкните «Запуск» и просмотрите сведения о запуске, включая загруженные артефакты и веса модели.
Отключение 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 mlflow=True
# 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 server, используйте следующую 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.