Ultralytics YOLO27:
Интеграции

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

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

NUNuvola Ladi6 min read
Обучение и мониторинг YOLOv5 с ClearML

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

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

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

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

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

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

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

Настройка#

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

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

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

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

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

Управление версиями наборов данных#

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

Подготовь набор данных#

Репозиторий 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

Загрузи свой набор данных#

Чтобы добавить этот набор данных в 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: по сути, мы клонируем её и изменяем гиперпараметры.

Тебе нужно указать 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

Удалённое выполнение (расширенный уровень)#

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

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

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

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

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

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

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

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

🎯 Измени гиперпараметры по своему усмотрению

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

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

Теперь ты можешь клонировать задачу, как описано выше, или просто пометить текущий скрипт, добавив 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Оптимизируй производство с моделями Ultralytics YOLO. Vision AI обеспечивает контроль качества, обнаружение дефектов, соблюдение требований к PPE и автоматизацию сборочной линии.
Узнать больше
Компьютерное зрение в автомобильной отрасли

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

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

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

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

Давай вместе создавать будущее AI!

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