Перейти к содержанию

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

Экосистема MLflow

Введение

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

Как использовать

Команды

  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. Просмотр запуска: Запуски — это отдельные модели внутри эксперимента. Щелкните «Запуск» и просмотрите сведения о запуске, включая загруженные артефакты и веса модели. Запуск YOLO MLflow

Отключение 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.



📅 Создано 1 год назад ✏️ Обновлено 4 месяца назад

Комментарии