Ведите журнал экспериментов Ultralytics YOLO с помощью интеграции MLflow

Абирами Вина

4 мин. чтения

30 декабря 2024 г.

Узнайте, как интеграция MLflow и ведение журнала могут повысить эффективность экспериментов Ultralytics YOLO, обеспечивая превосходное отслеживание в приложениях компьютерного зрения.

Проект по компьютерному зрению можно представить как головоломку. По сути, вы учите машины понимать визуальные данные, собирая части головоломки, например, собирая набор данных, обучая модель и применяя ее. Когда все совпадает, получается система, способная эффективно анализировать и осмысливать изображения и видео.

Но, как и в настоящей головоломке, не все части проекта по компьютерному зрению просты. Такие задачи, как отслеживание экспериментов (запись параметров, конфигураций и данных) и ведение журнала (фиксация результатов и показателей производительности), могут отнимать много времени и сил. Хотя эти шаги являются ключевыми для улучшения и совершенствования моделей компьютерного зрения, иногда они могут казаться узким местом.

Именно здесь на помощь приходят модели Ultralytics YOLO и их интеграция с MLflow. Модели, подобные Ultralytics YOLO11, поддерживают широкий спектр задач компьютерного зрения, включая обнаружение объектов, сегментацию объектов и классификацию изображений. Эти возможности позволяют создавать захватывающие приложения для компьютерного зрения. Наличие возможности полагаться на такие интеграции, как интеграция с MLflow, позволяет инженерам по компьютерному зрению сосредоточиться на самой модели, а не зацикливаться на деталях. 

В частности, интеграция MLflow упрощает этот процесс, регистрируя различные метрики, параметры и артефакты на протяжении всего процесса обучения. В этой статье мы рассмотрим, как работает интеграция MLflow, каковы ее преимущества и как вы можете использовать ее для оптимизации рабочих процессов Ultralytics YOLO.

Что такое MLflow?

MLflow - это платформа с открытым исходным кодом (разработанная компанией Databricks), предназначенная для оптимизации и управления всем жизненным циклом машинного обучения. Она включает в себя процесс разработки, развертывания и поддержки моделей машинного обучения. 

MLflow включает в себя следующие ключевые компоненты:

  • Отслеживание экспериментов: Этот компонент предназначен для записи важных деталей, таких как настройки модели, результаты и файлы для каждого тренировочного прогона модели. Это поможет вам сравнить модели, увидеть, как изменения влияют на производительность, и найти лучшую.
  • Реестр моделей: Это как система хранения ваших моделей, где вы можете отслеживать различные версии и организовывать их по стадиям, таким как тестирование, постановка и производство.
  • Упаковка проектов: MLflow позволяет легко упаковывать проекты машинного обучения, включая код, настройки и необходимые инструменты, чтобы их можно было использовать совместно и последовательно в разных командах и средах.
  • Развертывание моделей: MLflow предоставляет инструменты для быстрого развертывания обученных моделей на рабочих станциях или облачных платформах, таких как AWS и Azure, что делает их готовыми к использованию в реальном мире.
__wf_reserved_inherit
Рис. 1. Компоненты MLflow.

Компоненты MLflow упрощают и повышают эффективность управления процессом машинного обучения. Благодаря этой интеграции Ultralytics позволяет использовать функцию отслеживания экспериментов MLflow для регистрации параметров, метрик и артефактов в процессе обучения моделей YOLO. Это упрощает отслеживание и сравнение различных версий моделей YOLO.

Интеграция с MLflow упрощает процесс обучения

Теперь, когда мы рассказали о том, что такое MLflow, давайте погрузимся в детали интеграции MLflow и ее возможностей. 

Интеграция MLflow создана для того, чтобы сделать процесс обучения более эффективным и организованным, автоматически отслеживая и регистрируя важные аспекты ваших экспериментов с компьютерным зрением. Она поддерживает три основных типа протоколирования: метрики, параметры и артефакты.

Вот более подробный обзор каждого типа лесозаготовок:

  • Регистрация метрик: Метрики - это количественные показатели, которые измеряют производительность вашей модели во время обучения. Например, такие метрики, как точность, прецизионность, отзыв или потеря, отслеживаются в конце каждой эпохи (полный проход по набору данных).
  • Регистрация параметров: Параметры - это настройки, которые вы задаете перед началом обучения модели, такие как скорость обучения, размер партии (количество образцов, обрабатываемых за один шаг обучения) и количество эпох. Эти параметры существенно влияют на поведение и производительность вашей модели.
  • Регистрация артефактов: Артефакты - это выходные данные или файлы, созданные в процессе обучения. Сюда входят такие важные файлы, как веса модели (числовые значения, которые модель приобретает в процессе обучения), файлы конфигурации (в которых хранятся настройки обучения) и другие важные данные.
__wf_reserved_inherit
Рис. 2. Основные функции протоколирования в интеграции MLflow. Изображение автора.

Как работает интеграция с MLflow

Вы можете изучить документацию Ultralytics, чтобы получить пошаговые инструкции по включению интеграции MLflow. После настройки интеграция автоматически отслеживает и регистрирует ключевые детали ваших обучающих экспериментов, как обсуждалось выше. Это устраняет необходимость в ручном отслеживании и помогает вам сосредоточиться на совершенствовании моделей.

Благодаря интеграции с MLflow все ваши тренировки хранятся в одном месте, что упрощает сравнение результатов и оценку различных конфигураций. Сравнивая зарегистрированные результаты, вы можете выявить наиболее эффективные конфигурации и использовать их для улучшения своих моделей. Таким образом, ваш рабочий процесс становится более эффективным, хорошо документированным и воспроизводимым.

В частности, каждый сеанс обучения организуется в эксперимент, который выступает в качестве контейнера для нескольких прогонов. В рамках эксперимента можно просмотреть все связанные с ним прогоны, сравнить их производительность между собой и проанализировать тенденции в различных конфигурациях. 

Например, если вы тестируете различные скорости обучения или объемы партий с помощью Ultralytics YOLOv8, все связанные прогоны группируются в рамках одного эксперимента для удобства сравнения и анализа, как показано ниже.

__wf_reserved_inherit
Рис. 3. Вы можете просматривать эксперименты с помощью интеграции MLflow.

Между тем, на уровне отдельных прогонов MLflow предоставляет подробную информацию о конкретном сеансе обучения. Вы можете просмотреть такие метрики, как точность, потери и точность по эпохам, проверить использованные параметры обучения (например, размер партии и скорость обучения), а также получить доступ к сгенерированным артефактам, таким как веса моделей и файлы конфигурации. Все эти данные хранятся в упорядоченном формате, что упрощает повторный просмотр и воспроизведение любого запуска.

Выбор интеграции MLflow: почему она выделяется среди других

Просматривая документацию Ultralytics и изучая доступные интеграции, вы можете задаться вопросом: Что отличает интеграцию MLflow и почему я должен выбрать ее для своего рабочего процесса?

На фоне таких интеграций, как TensorBoard, которые также предоставляют инструменты для отслеживания показателей и визуализации результатов, важно понимать уникальные качества, которые выделяют интеграцию MLflow. 

Вот почему MLflow может стать идеальным выбором для ваших проектов YOLO:

  • Удобный интерфейс: Приборная панель MLflow позволяет легко просматривать эксперименты, сравнивать прогоны и анализировать результаты, помогая быстро определить наиболее эффективные конфигурации.
  • Регистрация пользовательских метрик: Инженеры Vision могут регистрировать пользовательские метрики в дополнение к стандартным, что позволяет проводить более глубокий анализ в соответствии с потребностями проекта.
  • Поддержка многоязычных рабочих процессов: MLflow совместим с несколькими языками программирования, включая Python, R и Java, что облегчает интеграцию в различные конвейеры машинного обучения.

Практическое применение YOLO11 и интеграция MLflow

Чтобы получить более полное представление о том, когда можно использовать интеграцию MLflow, давайте рассмотрим приложение ИИ в здравоохранении, где необходимо обучить YOLO11 обнаруживать опухоли на рентгеновских или компьютерных снимках. 

В таком сценарии набор данных будет состоять из аннотированных медицинских изображений. Для достижения оптимальной точности вам придется экспериментировать с различными конфигурациями, например, настраивать скорость обучения, размер партии и методы предварительной обработки изображений. Поскольку ставки в здравоохранении высоки, а точность и надежность критически важны, отслеживание каждого эксперимента вручную может быстро стать неуправляемым.

__wf_reserved_inherit
Рис. 4. Обнаружение опухолей с помощью Ultralytics YOLO11.

Интеграция MLflow решает эту проблему, автоматически регистрируя параметры, метрики и артефакты каждого эксперимента. Например, если вы изменяете скорость обучения или применяете новую стратегию дополнения, MLflow записывает эти изменения вместе с метриками производительности. Кроме того, MLflow сохраняет веса и конфигурации обученных моделей, что позволяет легко воспроизводить и внедрять успешные модели. 

Это лишь один из примеров того, как интеграция MLflow улучшает управление экспериментами в приложениях искусственного зрения. Эти же возможности применимы и к другим приложениям компьютерного зрения, включая:

  • Автономное вождение: YOLO11 можно использовать для обнаружения и классификации пешеходов, транспортных средств и дорожных знаков в режиме реального времени, чтобы повысить безопасность и эффективность систем автономного вождения.
  • Аналитика розничной торговли: Модели обнаружения объектов позволяют контролировать поведение покупателей, отслеживать размещение товаров и оптимизировать инвентаризацию, анализируя активность в магазине с помощью видеозаписей.
  • Безопасность и наблюдение: Модели могут быть обучены обнаруживать аномалии или отслеживать активность в реальном времени в чувствительных зонах для повышения уровня безопасности.

Преимущества интеграции с MLflow

Интеграция MLflow с моделями YOLO делает управление экспериментами по машинному обучению проще и эффективнее. Автоматизируя ключевые задачи и сохраняя все организованным, она позволяет вам сосредоточиться на создании и улучшении моделей. Вот обзор основных преимуществ:

  • Масштабирование для крупных проектов: Платформа эффективно обрабатывает множество экспериментов и моделей, что делает ее подходящей для больших команд и сложных рабочих процессов.
  • Подробная история экспериментов: Платформа хранит полную историю экспериментов, позволяя пересматривать прошлые запуски, анализировать предыдущие конфигурации и извлекать уроки из предыдущих результатов.
  • Отключение и сброс настроек: Журналирование MLflow можно легко отключить, если оно не требуется, а настройки можно вернуть к значениям по умолчанию, что позволяет гибко адаптироваться к изменяющимся требованиям рабочего процесса.

Основные выводы

Интеграция с MLflow делает управление и оптимизацию экспериментов Ultralytics YOLO проще и эффективнее. Благодаря автоматическому отслеживанию ключевых деталей, таких как параметры, метрики и артефакты, она упрощает процесс и избавляет от необходимости управлять экспериментами вручную. 

Независимо от того, работаете ли вы над решениями в области здравоохранения, такими как обнаружение опухолей, совершенствуете системы автономного вождения или улучшаете аналитику розничной торговли, эта интеграция поможет организовать и воспроизвести все процессы. Благодаря интуитивно понятному интерфейсу и гибкости MLflow позволяет разработчикам сосредоточиться на создании лучших моделей и внедрении инноваций в приложения Vision AI.

Присоединяйтесь к нашему сообществу и ознакомьтесь с нашим репозиторием GitHub, чтобы узнать об искусственном интеллекте. Вы также можете изучить другие области применения компьютерного зрения в производстве или ИИ в самоуправляемых автомобилях на страницах наших решений.

Давайте вместе построим будущее
искусственного интеллекта!

Начните свое путешествие в будущее машинного обучения

Начните бесплатно
Ссылка копируется в буфер обмена