Yolo Vision Shenzhen
Шэньчжэнь
Присоединиться сейчас

Регистрируйте эксперименты 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 упрощает просмотр экспериментов, сравнение запусков и анализ результатов, помогая быстро определить наиболее эффективные конфигурации.
  • Регистрация пользовательских метрик: Инженеры по компьютерному зрению могут регистрировать пользовательские метрики в дополнение к стандартным, что позволяет проводить более глубокий анализ, специфичный для нужд их проекта.
  • Поддержка многоязыковых рабочих процессов: MLflow совместим с несколькими языками программирования, включая Python, R и Java, что облегчает интеграцию в различные конвейеры машинного обучения.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Давайте строить будущее
ИИ вместе!

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

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