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

Интеграция 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 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 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, используйте следующую команду 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 .

📅 Создано 1 год назад ✏️ Обновлено 3 дня назад

Комментарии