Интеграция MLflow для Ultralytics YOLO
Введение
Регистрация экспериментов — важнейший аспект рабочих процессов машинного обучения, позволяющий отслеживать различные метрики, параметры и артефакты. Это помогает повысить воспроизводимость моделей, отлаживать проблемы и улучшать производительность. Ultralytics YOLO, известный своими возможностями обнаружения объектов в реальном времени, теперь предлагает интеграцию с MLflow, платформой с открытым исходным кодом для полного управления жизненным циклом машинного обучения.
Эта страница документации представляет собой полное руководство по настройке и использованию функций регистрации MLflow для твоего проекта Ultralytics YOLO.
Что такое MLflow?
MLflow — это платформа с открытым исходным кодом, разработанная Databricks для управления полным жизненным циклом машинного обучения. Она включает инструменты для отслеживания экспериментов, упаковки кода в воспроизводимые запуски, а также для обмена моделями и их развертывания. MLflow спроектирован для работы с любой библиотекой машинного обучения и языком программирования.
Функции
- Регистрация метрик: регистрирует метрики в конце каждой эпохи и по завершении обучения.
- Регистрация параметров: регистрирует все параметры, использованные при обучении.
- Регистрация артефактов: регистрирует артефакты модели, включая веса и файлы конфигурации, по завершении обучения.
Настройка и предварительные требования
Убедись, что MLflow установлен. Если нет, установи его с помощью pip:
pip install mlflowУбедись, что регистрация MLflow включена в настройках Ultralytics. Обычно это управляется ключом настроек mlflow. Дополнительную информацию см. на странице настроек.
Внутри среды Python вызови метод update у объекта settings, чтобы изменить свои настройки:
from ultralytics import settings
# Update a setting
settings.update({"mlflow": True})
# Reset settings to default values
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'. Чтобы направить запуски обучения на другой сервер отслеживания, экспортируйMLFLOW_TRACKING_URIперед обучением:export MLFLOW_TRACKING_URI=http://127.0.0.1:5000 -
Завершение работы экземпляров сервера 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. Эти функции автоматически вызываются во время соответствующих этапов процесса обучения и отвечают за регистрацию параметров, метрик и артефактов.
Примеры
-
Регистрация пользовательских метрик: ты можешь добавлять пользовательские метрики для регистрации, изменив словарь
trainer.metricsдо вызоваon_fit_epoch_end. -
Просмотр эксперимента: чтобы просмотреть свои логи, перейди на сервер MLflow (обычно
http://127.0.0.1:5000) и выбери свой эксперимент и запуск.
-
Просмотр запуска: запуски — это отдельные модели внутри эксперимента. Нажми на запуск, чтобы увидеть детали запуска, включая загруженные артефакты и веса модели.

Отключение 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. Дополнительную информацию см. в руководстве по настройкам.
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.