Link to this sectionИнтеграция MLflow с Ultralytics YOLO#
Link to this sectionВведение#
Логирование экспериментов — важнейший аспект рабочих процессов машинного обучения, позволяющий отслеживать различные метрики, параметры и артефакты. Это помогает повысить воспроизводимость моделей, упрощает отладку и улучшает производительность. Ultralytics YOLO, известный своими возможностями обнаружения объектов в реальном времени, теперь предлагает интеграцию с MLflow, платформой с открытым исходным кодом для полноценного управления жизненным циклом машинного обучения.
Эта страница документации — подробное руководство по настройке и использованию возможностей логирования MLflow для твоего проекта Ultralytics YOLO.
Link to this sectionЧто такое MLflow?#
MLflow — это платформа с открытым исходным кодом, разработанная Databricks для управления полным жизненным циклом машинного обучения. Она включает инструменты для отслеживания экспериментов, упаковки кода в воспроизводимые запуски, а также для совместного использования и развертывания моделей. MLflow спроектирован для работы с любой библиотекой машинного обучения и любым языком программирования.
Link to this sectionФункции#
- Логирование метрик: записывает метрики в конце каждой эпохи и после завершения обучения.
- Логирование параметров: записывает все параметры, использованные при обучении.
- Логирование артефактов: записывает артефакты модели, включая веса и конфигурационные файлы, по завершении обучения.
Link to this sectionНастройка и предварительные требования#
Убедись, что 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()Link to this sectionКак использовать#
Link to this sectionКоманды#
-
Установка имени проекта: ты можешь задать имя проекта через переменную окружения:
export MLFLOW_EXPERIMENT_NAME=YOUR_EXPERIMENT_NAMEИли используй аргумент
project=<project>при обучении модели YOLO, например:yolo train project=my_project. -
Установка имени запуска (Run Name): аналогично установке имени проекта, ты можешь задать имя запуска через переменную окружения:
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 активным после обучения: по умолчанию Ultralytics автоматически завершает запуск MLflow после обучения. Чтобы оставить его открытым (например, для логирования дополнительных метрик или артефактов из того же ноутбука), перед обучением установи
MLFLOW_KEEP_RUN_ACTIVEв значениеTrue:export MLFLOW_KEEP_RUN_ACTIVE=TrueЗначение обрабатывается без учета регистра; только строка
trueактивирует это поведение, а любое другое значение (включая отсутствие) сохраняет стандартный вариант завершения запуска. Не забудь закрыть его вручную с помощьюmlflow.end_run(). -
Завершение экземпляров сервера MLflow: чтобы остановить все запущенные экземпляры MLflow, выполни:
ps aux | grep 'mlflow' | grep -v 'grep' | awk '{print $2}' | xargs kill -9
Link to this sectionЛогирование#
The logging is taken care of by the on_pretrain_routine_end, on_fit_epoch_end, and on_train_end callback functions. These functions are automatically called during the respective stages of the training process, and they handle the logging of parameters, metrics, and artifacts.
Link to this sectionПримеры#
-
Логирование пользовательских метрик: ты можешь добавлять свои метрики для логирования, изменив словарь
trainer.metricsдо вызоваon_fit_epoch_end. -
Просмотр эксперимента: чтобы увидеть свои логи, перейди на сервер MLflow (обычно
http://127.0.0.1:5000) и выбери нужный эксперимент и запуск.
-
Просмотр запуска: запуски — это отдельные модели внутри эксперимента. Нажми на запуск, чтобы увидеть детали, включая загруженные артефакты и веса модели.

Link to this sectionОтключение MLflow#
Чтобы отключить логирование MLflow:
yolo settings mlflow=FalseLink to this sectionЗаключение#
Интеграция логирования MLflow с Ultralytics YOLO предлагает простой способ отслеживания твоих экспериментов по машинному обучению. Она дает тебе возможность эффективно контролировать метрики производительности и управлять артефактами, помогая в качественной разработке и развертывании моделей. Для получения дополнительной информации посети официальную документацию MLflow.
Link to this sectionFAQ#
Link to this sectionКак настроить логирование 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/mlflowLink to this sectionКакие метрики и параметры я могу логировать, используя MLflow с Ultralytics YOLO?#
Ultralytics YOLO при работе с MLflow поддерживает запись различных метрик, параметров и артефактов на протяжении всего процесса обучения:
- Логирование метрик: отслеживает метрики в конце каждой эпохи и после завершения обучения.
- Логирование параметров: записывает все параметры, использованные в процессе обучения.
- Логирование артефактов: сохраняет артефакты модели, такие как веса и конфигурационные файлы, после обучения.
Для получения более подробной информации посети документацию по отслеживанию Ultralytics YOLO.
Link to this sectionМогу ли я отключить логирование MLflow после того, как оно было включено?#
Да, ты можешь отключить логирование MLflow для Ultralytics YOLO, обновив настройки. Вот как это сделать с помощью CLI:
yolo settings mlflow=FalseДля дальнейшей настройки и сброса параметров обратись к руководству по настройкам.
Link to this sectionКак запустить и остановить сервер 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Обратись к разделу команд для просмотра других вариантов команд.
Link to this sectionКак оставить запуск MLflow активным после завершения обучения?#
Установи переменную окружения MLFLOW_KEEP_RUN_ACTIVE в значение True перед началом обучения:
export MLFLOW_KEEP_RUN_ACTIVE=TrueПо умолчанию это значение False, поэтому Ultralytics вызывает mlflow.end_run() после окончания обучения. При установке MLFLOW_KEEP_RUN_ACTIVE=True запуск остается открытым, что позволяет записывать дополнительные метрики, параметры или артефакты из той же сессии Python — закрой его вручную с помощью mlflow.end_run(), когда закончишь. Значение обрабатывается без учета регистра; только true активирует это поведение.
Link to this sectionВ чем преимущества интеграции MLflow с Ultralytics YOLO для отслеживания экспериментов?#
Интеграция MLflow с Ultralytics YOLO дает ряд преимуществ для управления экспериментами по машинному обучению:
- Улучшенное отслеживание экспериментов: легко отслеживай и сравнивай различные запуски и их результаты.
- Повышенная воспроизводимость моделей: обеспечь воспроизводимость своих экспериментов за счет записи всех параметров и артефактов.
- Мониторинг производительности: визуализируй метрики производительности во времени, чтобы принимать решения по улучшению модели на основе данных.
- Оптимизация рабочего процесса: автоматизируй процесс логирования, чтобы больше сосредоточиться на разработке модели, а не на ручном отслеживании.
- Совместная разработка: делись результатами экспериментов с членами команды для более эффективного сотрудничества и обмена знаниями.
Для углубленного изучения настройки и использования MLflow с Ultralytics YOLO ознакомься с документацией Интеграция MLflow с Ultralytics YOLO.