Ultralytics YOLO27: Вступи в список ожидания.
Лицензия YOLO
Интеграции

Удалённо обучай и контролируй Ultralytics YOLOv5 с помощью ClearML

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

Nuvola LadiNuvola Ladi6 мин. чтения
Обучение и мониторинг YOLOv5 с помощью ClearML

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

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

ClearML стремится ускорить внедрение ML и упрощает интеграцию ML в любые программные или аппаратные продукты.

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

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

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

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

Настройка#

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

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

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

Теперь можно начинать.

Обучение YOLOv5 с ClearML#

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

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 эпох)
  • Вывод консоли
  • Скалярные значения (mAP50, mAP50-95, точность, полнота, потери, скорости обучения, ...)
  • Общая информация: сведения о машине, время выполнения, дата создания и т. д.
  • Все построенные графики, например коррелограмма меток и матрица ошибок
  • Изображения с ограничивающими рамками для каждой эпохи
  • Мозаика для каждой эпохи
  • Изображения для валидации для каждой эпохи

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

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

Управление версиями датасетов#

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

Подготовка датасета#

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

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

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

Затем скопируй соответствующий YAML-файл в корневую папку набора данных. В этих YAML-файлах содержится информация, необходимая ClearML для корректной работы с набором данных. Разумеется, ты можешь создать файл самостоятельно — просто используй структуру примеров YAML-файлов.

В YAML-файле должны быть следующие ключи: path, train, test, val, nc и names.

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

Загрузка датасета#

Чтобы загрузить этот датасет в 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

Обучение с использованием датасета ClearML#

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

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

Оптимизация гиперпараметров#

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

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

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

Укажи идентификатор шаблонной задачи в скрипте по пути 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

Удалённое выполнение (для продвинутых пользователей)#

Локальный запуск HPO очень удобен, но что, если мы хотим запускать эксперименты на удалённой машине? Возможно, у тебя есть доступ к мощной GPU-машине на месте или бюджет на аренду облачных GPU. Здесь на помощь приходит ClearML Agent.

Посмотри, на что способен агент:

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

Любую машину (облачную VM, локальную GPU-машину или собственный ноутбук) можно превратить в агент ClearML — для этого просто выполни:

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

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

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

  1. Клонируй эксперимент, щелкнув по нему правой кнопкой мыши.
  2. Измени гиперпараметры на нужные значения.
  3. Добавь задачу в любую из очередей, щелкнув по ней правой кнопкой мыши.

Удалённое выполнение задачи#

Теперь можно клонировать задачу, как описано выше, или просто добавить 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
    if loggers.clearml:
        loggers.clearml.task.execute_remotely(queue="my_queue")  # <------ ДОБАВЬ ЭТУ СТРОКУ

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

Автор

Nuvola Ladi
Nuvola Ladi

Менеджер по цифровому контенту · Ultralytics

Nuvola Ladi — менеджер по цифровому контенту в Ultralytics. Она создает материалы о Vision AI и Ultralytics YOLO, а также представляет компанию на отраслевых мероприятиях, таких как PyTorch Conference 2025. Она живет в Испании и получила степень магистра визуальных и цифровых медиа в IE University. До прихода в Ultralytics она работала в таких организациях, как XVA Gallery & Hotel и Rolex.

Комментарии

Задай вопрос, поделись результатами или помоги кому-нибудь.

Изучи решения

Компьютерное зрение в спорте

Компьютерное зрение в спорте

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

Компьютерное зрение для аэросъёмки

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

Компьютерное зрение в аэрокосмической отрасли

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

Компьютерное зрение в сфере безопасности

Защити любой объект с помощью моделей Ultralytics YOLO. ИИ на базе компьютерного зрения обеспечивает мониторинг периметра, обнаружение угроз, распознавание номерных знаков и безопасность на рабочем месте.
Подробнее
Компьютерное зрение в робототехнике

Компьютерное зрение в робототехнике

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

Компьютерное зрение в логистике

Оптимизируй логистику с моделями Ultralytics YOLO. Визуальный AI обеспечивает проверку посылок, сортировку, отслеживание транспорта и мониторинг безопасности на складе в реальном времени.
Подробнее
Компьютерное зрение в розничной торговле

Компьютерное зрение в розничной торговле

Переосмысли розничную торговлю с моделями Ultralytics YOLO. Визуальный AI обеспечивает отслеживание запасов, мониторинг полок, управление очередями и более глубокое понимание поведения покупателей.
Подробнее
Компьютерное зрение в здравоохранении

Компьютерное зрение в здравоохранении

Создавай решения для здравоохранения с моделями Ultralytics YOLO. Визуальный AI в здравоохранении ускоряет медицинскую визуализацию, улучшает диагностику и мониторинг пациентов.
Подробнее
Компьютерное зрение в производстве

Компьютерное зрение в производстве

Оптимизируй производство с моделями Ultralytics YOLO. Компьютерное зрение на базе ИИ обеспечивает контроль качества, обнаружение дефектов, контроль использования СИЗ и автоматизацию сборочных линий.
Подробнее
Компьютерное зрение в автомобильной отрасли

Компьютерное зрение в автомобильной отрасли

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

Компьютерное зрение в сельском хозяйстве

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

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

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