Встречай YOLO26: ИИ компьютерного зрения нового поколения.
Ultralytics
Интеграции

Удаленное обучение и мониторинг Ultralytics YOLOv5 с использованием ClearML

Изучи наше партнерство с ClearML для улучшенного опыта работы с Ultralytics YOLOv5 благодаря бесшовной интеграции ML, отслеживанию экспериментов и многому другому.

КОКоманда Ultralytics
4 min read
Обучение и мониторинг YOLOv5 с помощью ClearML

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

ClearML — наш новейший партнер: инструментарий с открытым исходным кодом, разработанный для экономии твоего времени.

С миссией ускорения внедрения ML, ClearML делает интеграцию машинного обучения бесшовной в любой программный или аппаратный продукт.

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

Link to this sectionВыведи отслеживание своих экспериментов на новый уровень#

  • Отслеживай каждый запуск обучения YOLOv5 в менеджере экспериментов.
  • Версионируй и легко получай доступ к своим пользовательским данным для обучения с помощью встроенного инструмента версионирования данных ClearML.
  • Достигай наилучшего mAP, используя оптимизацию гиперпараметров ClearML.
  • Преврати свою только что обученную модель YOLOv5 в API с помощью всего нескольких команд, используя ClearML Serving.

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

Link to this sectionНастройка#

Чтобы отслеживать свои эксперименты и данные, ClearML должен связываться с сервером. У тебя есть два варианта: зарегистрироваться бесплатно в ClearML Hosted Service или настроить собственный сервер, подробнее см. в документации по развертыванию ClearML Server.

Даже сервер имеет открытый исходный код, так что если ты работаешь с конфиденциальными данными, это не проблема!

  1. Установи python-пакет clearml: pip install clearml
  2. Подключи ClearML SDK к серверу, создав учетные данные (перейди в правый верхний угол: Settings → Workspace → Create new credentials), затем выполни следующую команду и следуй инструкциям: clearml-init

И вуаля! Ты готов к работе...

Link to this sectionОбучение YOLOv5 с ClearML#

Чтобы включить отслеживание экспериментов ClearML, просто установи pip-пакет ClearML.

pip install clearml

Это активирует интеграцию со скриптом обучения YOLOv5. Отныне каждый запуск обучения будет фиксироваться и сохраняться в менеджере экспериментов ClearML. Если ты хочешь изменить project_name или task_name, перейди в наш пользовательский логгер, где ты сможешь изменить их: utils/loggers/clearml/clearml_utils.py

python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov5s.pt --cache

Это позволит зафиксировать:

  • Исходный код + незафиксированные изменения
  • Установленные пакеты
  • (Гипер)параметры
  • Файлы моделей (используй --save-period n для сохранения чекпоинта каждые n эпох)
  • Вывод консоли
  • Скаляры (mAP_0.5, mAP_0.5:0.95, precision, recall, потери, коэффициенты обучения, ...)
  • Общая информация, такая как сведения о машине, время выполнения, дата создания и т. д.
  • Все созданные графики, такие как коррелограмма меток и матрица ошибок
  • Изображения с ограничивающими рамками (bbox) для каждой эпохи
  • Мозаика для каждой эпохи
  • Изображения валидации для каждой эпохи

Неплохо! Теперь мы можем визуализировать всю эту информацию в интерфейсе ClearML, чтобы получить общее представление о прогрессе обучения. Добавь пользовательские столбцы в табличный вид (например, mAP_0.5), чтобы ты мог легко отсортировать модели по эффективности. Или выбери несколько экспериментов и сравни их напрямую!

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

Link to this sectionУправление версиями датасета#

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

Link to this sectionПодготовь свой датасет#

Репозиторий YOLOv5 поддерживает ряд различных датасетов с использованием YAML-файлов, содержащих информацию о них. По умолчанию датасеты загружаются в папку ../datasets относительно корневой папки репозитория. Так что если ты скачал датасет coco128 с помощью ссылки в YAML или с помощью скриптов, предоставленных в yolov5, ты получишь такую структуру папок:

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ LICENSE
        |_ README.txt

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

Далее, ⚠️скопируй соответствующий YAML-файл в корень папки датасета⚠️. Эти YAML-файлы содержат информацию, которая понадобится ClearML для правильного использования датасета. Конечно, ты можешь создать такой файл самостоятельно, просто следуй структуре примеров YAML.

В основном нам нужны следующие ключи: path, train, test, val, nc, names.

..
|_ yolov5
|_ datasets
    |_ coco128
        |_ images
        |_ labels
        |_ coco128.yaml # ← HERE!
        |_ LICENSE
        |_ README.txt

Link to this sectionЗагрузи свой датасет#

Чтобы добавить этот датасет в ClearML как версионированный, перейди в корневую папку датасета и выполни следующую команду:

cd coco128

clearml-data sync --project YOLOv5 --name coco128 --folder .

Команда clearml-data sync на самом деле является сокращенной командой. Ты также мог бы выполнить эти команды одну за другой:

# Optionally add --parent if you want to base
# this version on another dataset version, so no duplicate files are uploaded!

clearml-data create --name coco128 --project YOLOv5

clearml-data add --files .

clearml-data close

Link to this sectionЗапуск обучения с использованием датасета ClearML#

Теперь, когда у тебя есть датасет ClearML, ты можешь очень просто использовать его для обучения собственных моделей YOLOv5.

python train.py --img 640 --batch 16 --epochs 3 --data clearml:// --weights yolov5s.pt --cache

Link to this sectionОптимизация гиперпараметров#

Теперь, когда у нас есть эксперименты и версия данных, пришло время взглянуть на то, что мы можем построить поверх этого!

Используя информацию о коде, установленные пакеты и сведения об окружении, сам эксперимент теперь полностью воспроизводим. Фактически, ClearML позволяет тебе клонировать эксперимент и даже изменять его параметры. Затем мы можем просто автоматически перезапустить его с этими новыми параметрами — это, по сути, то, что делает HPO!

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

Тебе нужно будет указать ID этой шаблонной задачи в скрипте, который находится по пути utils/loggers/clearml/hpo.py, а затем просто запустить его. Ты можешь изменить task.execute_locally() на task.execute(), чтобы поместить задачу в очередь ClearML и поручить ее выполнение удаленному агенту.

# To use optuna, install it first, otherwise you can change the optimizer to just be RandomSearch
pip install optuna
python utils/loggers/clearml/hpo.py

Link to this sectionУдаленное выполнение (продвинутый уровень)#

Локальный запуск HPO — это очень удобно, но что, если мы хотим запускать наши эксперименты на удаленной машине? Может быть, у тебя есть доступ к мощной машине с GPU на месте или у тебя есть бюджет на использование облачных GPU. Именно здесь в игру вступает ClearML Agent.

Посмотри, что умеет агент, здесь:

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

Ты можешь превратить любую машину (облачную виртуальную машину, локальную машину с GPU, свой собственный ноутбук) в агента ClearML, просто запустив:

clearml-agent daemon --queue [--docker]

Link to this sectionКлонирование, редактирование и добавление в очередь#

Когда наш агент запущен, мы можем дать ему работу. Помнишь из раздела HPO, что мы можем клонировать задачу и редактировать гиперпараметры? Мы можем сделать это и через интерфейс!

🪄 Клонируй эксперимент, нажав на него правой кнопкой мыши

🎯 Отредактируй гиперпараметры так, как тебе нужно

⏳ Помести задачу в любую из очередей, нажав на нее правой кнопкой мыши

Link to this sectionУдаленное выполнение задачи#

Теперь ты можешь клонировать задачу, как мы объяснили выше, или просто пометить свой текущий скрипт, добавив task.execute_remotely(), и при выполнении он будет помещен в очередь, чтобы агент начал над ним работать!

Чтобы запустить скрипт обучения YOLOv5 удаленно, все, что тебе нужно сделать, это добавить эту строку в скрипт train.py после того, как был создан экземпляр логгера ClearML:

# ...
# Loggers
data_dict = None
if RANK in {-1, 0}:
    loggers = Loggers(save_dir, weights, opt, hyp, LOGGER)  # loggers instance
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ADD THIS LINE

Есть вопросы? Присоединяйся к нашему сообществу и задай свой вопрос сегодня!

Explore solutions

Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше
Real-time AI that works with your team

ИИ в робототехнике

Делай свои машины умнее с помощью моделей Ultralytics YOLO. ИИ машинного зрения в робототехнике обеспечивает автономную навигацию, восприятие, отслеживание объектов и управление в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в логистике

Оптимизируй логистику с помощью моделей Ultralytics YOLO. Vision AI позволяет инспектировать посылки, сортировать их, отслеживать транспортные средства и контролировать безопасность на складе в реальном времени.
Узнать больше
Real-time AI that works with your team

ИИ в розничной торговле

Переосмысли ритейл с помощью моделей Ultralytics YOLO. Vision AI расширяет возможности отслеживания запасов, мониторинга полок, управления очередями и более глубокого понимания клиентов.
Узнать больше
Real-time AI that works with your team

ИИ в здравоохранении

Создавай решения для здравоохранения с помощью моделей Ultralytics YOLO. ИИ для зрения в медицине ускоряет анализ медицинских изображений, делает диагностику более точной, а мониторинг пациентов — эффективнее.
Узнать больше
Real-time AI that works with your team

ИИ в производстве

Оптимизируй производство с помощью моделей Ultralytics YOLO. Vision AI управляет контролем качества, обнаружением дефектов, соблюдением СИЗ и автоматизацией сборочных линий.
Узнать больше
Real-time AI that works with your operation

ИИ в автомобильной отрасли

Применяй компьютерное зрение в автомобильной отрасли с моделями Ultralytics YOLO. ИИ для зрения повышает безопасность дорожного движения, помогает водителю и способствует автоматизации транспортных средств для создания более «умных» дорог.
Узнать больше
Real-time AI tailored to your operation

ИИ в сельском хозяйстве

Внедряй ИИ в «умное» сельское хозяйство с помощью моделей Ultralytics YOLO. Оптимизируй мониторинг посевов, отслеживание скота и точное земледелие для получения более высоких и «умных» урожаев.
Узнать больше

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

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