Совершенствуем обучение YOLO26: упростите процесс логирования с Comet#
Логирование ключевых сведений об обучении, таких как параметры, метрики, предсказания для изображений и чекпоинты модели, необходимо в машинном обучении: оно делает проект прозрачным, позволяет измерять прогресс и воспроизводить результаты.
Watch: How to Use Comet for Ultralytics YOLO Model Training Logs and Metrics 🚀
Ultralytics YOLO26 без проблем интегрируется с Comet (ранее Comet ML), эффективно собирая и оптимизируя все аспекты процесса обучения твоей модели YOLO26 для детекции объектов. В этом руководстве мы рассмотрим установку, настройку Comet, аналитику в реальном времени, настраиваемое логирование и автономное использование, чтобы процесс обучения YOLO26 был подробно задокументирован и точно настроен для получения отличных результатов.
Comet#
Comet — это платформа для отслеживания, сравнения, объяснения и оптимизации моделей и экспериментов в машинном обучении. Она позволяет во время обучения модели записывать метрики, параметры, медиаданные и многое другое, а также отслеживать эксперименты через удобный веб-интерфейс. Comet помогает специалистам по данным быстрее выполнять итерации, повышает прозрачность и воспроизводимость и способствует разработке моделей для использования в production.
Используй возможности YOLO26 и Comet на максимум#
Объединение Ultralytics YOLO26 с Comet открывает целый ряд преимуществ. К ним относятся упрощённое управление экспериментами, аналитика в реальном времени для быстрых корректировок, гибкие и адаптируемые варианты логирования, а также возможность вести логирование экспериментов в автономном режиме при ограниченном доступе к интернету. Эта интеграция помогает принимать решения на основе данных, анализировать метрики производительности и получать выдающиеся результаты.
Установка#
Чтобы установить необходимые пакеты, выполни:
# Install YOLO26 and Comet
pip install ultralytics comet_mlНастройка Comet#
После установки необходимых пакетов тебе нужно зарегистрироваться, получить ключ API Comet и настроить его.
# Set your Comet API Key
export COMET_API_KEY=YOUR_API_KEYЗатем выполни аутентификацию в Comet. Callback Ultralytics создаёт эксперимент и использует аргумент обучения YOLO project в качестве имени проекта Comet.
import comet_ml
comet_ml.login()Если ты используешь ноутбук Google Colab, приведённый выше код предложит ввести ключ API для инициализации.
Использование#
Прежде чем перейти к инструкциям по использованию, ознакомься с ассортиментом моделей YOLO26 от Ultralytics. Это поможет выбрать наиболее подходящую модель для требований твоего проекта.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt")
# Train the model
results = model.train(
data="coco8.yaml",
project="comet-example-yolo26-coco128",
batch=32,
save_period=1,
save_json=True,
epochs=3,
)После запуска кода обучения Comet автоматически создаст эксперимент в твоём рабочем пространстве Comet для отслеживания запуска. Затем ты получишь ссылку для просмотра подробных логов процесса обучения модели YOLO26.
Comet автоматически логирует следующие данные без дополнительной настройки: метрики, такие как mAP и loss, гиперпараметры, чекпоинты модели, интерактивную матрицу ошибок и предсказания ограничивающих рамок для изображений.
Анализ производительности модели с помощью визуализаций Comet#
Давай рассмотрим, что ты увидишь на панели Comet после начала обучения модели YOLO26. На панели отображается вся основная информация: автоматически записанные данные представлены в виде визуализаций и статистики. Краткий обзор:
Панели экспериментов
Раздел панелей экспериментов на панели Comet систематизирует и отображает различные запуски и их метрики, такие как loss маски сегментации, loss класса, precision и средняя точность.
Метрики
В разделе метрик ты также можешь просматривать метрики в табличном формате — они отображаются в отдельной области, как показано здесь.
Интерактивная матрица ошибок
Матрица ошибок на вкладке Confusion Matrix предоставляет интерактивный способ оценить точность классификации модели. В ней подробно отображаются правильные и неправильные предсказания, что позволяет понять сильные и слабые стороны модели.
Системные метрики
Comet логирует системные метрики, чтобы помочь выявить узкие места в процессе обучения. В их число входят загрузка GPU, использование памяти GPU, загрузка CPU и использование RAM. Эти данные необходимы для контроля эффективности использования ресурсов во время обучения модели.
Настройка логирования Comet#
Comet позволяет настраивать поведение логирования с помощью переменных окружения. Эти настройки дают возможность адаптировать Comet под твои конкретные потребности и предпочтения. Callback Ultralytics считывает следующие переменные окружения (задай их до начала обучения):
| Переменная окружения | По умолчанию | Описание |
|---|---|---|
COMET_START_ONLINE | 1 | Запускать эксперимент в онлайн-режиме (1) или автономном режиме (0). |
COMET_PROJECT_NAME | args.project | Проект в рабочем пространстве Comet. Если значение не задано, используется аргумент обучения YOLO project. |
COMET_MODEL_NAME | Ultralytics | Имя, зарегистрированное для записанного артефакта модели. |
COMET_MAX_IMAGE_PREDICTIONS | 100 | Общее количество предсказаний для изображений из валидации, которые нужно логировать за один запуск. |
COMET_EVAL_BATCH_LOGGING_INTERVAL | 1 | Логировать предсказания для изображений на каждой N-й валидационной пачке. |
COMET_EVAL_LOG_IMAGE_PREDICTIONS | true | Включить (true) или отключить (false) логирование предсказаний для изображений. |
COMET_EVAL_LOG_CONFUSION_MATRIX | false | Логировать матрицу ошибок на каждой эпохе валидации. Итоговая матрица всегда логируется в конце обучения. |
COMET_MAX_CONFIDENCE_SCORE | 100.0 | Множитель, применяемый к оценкам уверенности детекции перед логированием (интерфейс Comet ожидает шкалу в процентах). |
COMET_MODE (устарело) | online | Устаревший псевдоним COMET_START_ONLINE ("online" ↔ 1, "offline" ↔ 0). Вызывает предупреждение об устаревании. |
Для логических переключателей (COMET_EVAL_LOG_IMAGE_PREDICTIONS и COMET_EVAL_LOG_CONFUSION_MATRIX) значения 1, true, yes, on, y и t интерпретируются как True (без учёта регистра). Любое другое значение интерпретируется как False.
Логирование предсказаний для изображений#
Ты можешь управлять количеством предсказаний для изображений, которые Comet логирует во время экспериментов. По умолчанию Comet логирует 100 предсказаний для изображений из валидационного набора. Однако это количество можно изменить в соответствии с твоими требованиями. Например, чтобы логировать 200 предсказаний для изображений, используй следующий код:
import os
os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200"Чтобы полностью отключить логирование предсказаний для изображений (например, для уменьшения объёма загрузки при медленном соединении), задай COMET_EVAL_LOG_IMAGE_PREDICTIONS равным "false":
import os
os.environ["COMET_EVAL_LOG_IMAGE_PREDICTIONS"] = "false"Интервал логирования пачек#
Comet позволяет указать, как часто логировать пачки предсказаний для изображений. Переменная окружения COMET_EVAL_BATCH_LOGGING_INTERVAL управляет этой частотой. Значение по умолчанию — 1: предсказания логируются из каждой валидационной пачки. Ты можешь изменить это значение, чтобы логировать предсказания через другой интервал. Например, значение 4 означает, что предсказания будут логироваться из каждой четвёртой пачки.
import os
os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4"Отключение логирования матрицы ошибок#
В некоторых случаях тебе может быть не нужно логировать матрицу ошибок из валидационного набора после каждой эпохи. Ты можешь отключить эту функцию, задав для переменной окружения COMET_EVAL_LOG_CONFUSION_MATRIX значение "false." Матрица ошибок будет логироваться только один раз после завершения обучения.
import os
os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false"Онлайн- и автономный режимы#
По умолчанию Comet работает в онлайн-режиме и передаёт данные эксперимента на серверы Comet. Если тебе нужно обучаться без доступа к интернету, задай COMET_START_ONLINE=0 до начала обучения. Данные эксперимента сохраняются локально, а позже их можно загрузить с помощью CLI comet upload.
import os
os.environ["COMET_START_ONLINE"] = "0" # 1 (default) = online, 0 = offlineВ предыдущих версиях для этой цели использовался COMET_MODE="offline". Переменная по-прежнему поддерживается для обратной совместимости, но вызывает предупреждение об устаревании. В дальнейшем используй COMET_START_ONLINE.
Имя проекта#
По умолчанию callback Comet передаёт в Comet аргумент обучения YOLO project (или None, если аргумент не задан; в этом случае Comet использует значение по умолчанию для твоего рабочего пространства). Переопредели это значение с помощью COMET_PROJECT_NAME, чтобы отправлять все эксперименты в определённый проект рабочего пространства Comet независимо от аргумента обучения YOLO:
import os
os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments"Имя артефакта модели#
COMET_MODEL_NAME задаёт имя, под которым Comet регистрирует записанный артефакт модели (по умолчанию — Ultralytics). Используй его, чтобы различать варианты модели в общем рабочем пространстве:
import os
os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"Масштабирование оценок уверенности#
Оценки уверенности детекции выдаются в диапазоне [0, 1], но по умолчанию интерфейс Comet отображает их в процентной шкале. Перед логированием callback умножает каждую оценку на COMET_MAX_CONFIDENCE_SCORE (по умолчанию 100.0). Измени это значение, если предпочитаешь исходные вероятности или другую шкалу:
import os
os.environ["COMET_MAX_CONFIDENCE_SCORE"] = "1.0" # log raw [0, 1] scoresИтоги#
В этом руководстве мы показали, как интегрировать Comet с YOLO26 от Ultralytics. От установки до настройки — ты узнал, как упростить управление экспериментами, получать аналитику в реальном времени и адаптировать логирование под потребности проекта.
Изучи официальную документацию по интеграции Comet с YOLOv8, которая также подходит для проектов YOLO26.
Кроме того, если ты хочешь глубже изучить практическое применение YOLO26, в частности для задач сегментации изображений, обратись к подробному руководству по дообучению YOLO26 с Comet, содержащему полезные сведения и пошаговые инструкции для повышения производительности модели.
Также, чтобы изучить другие интересные интеграции с Ultralytics, загляни на страницу руководства по интеграциям, где собрано множество полезных ресурсов и сведений.
Часто задаваемые вопросы#
Чтобы интегрировать Comet с Ultralytics YOLO26, выполни следующие шаги:
-
Установи необходимые пакеты:
pip install ultralytics comet_ml -
Настрой ключ API Comet:
export COMET_API_KEY=YOUR_API_KEY -
Выполни аутентификацию в Comet в своём коде Python:
import comet_ml comet_ml.login() -
Обучи модель YOLO26 и логируй метрики:
from ultralytics import YOLO model = YOLO("yolo26n.pt") results = model.train( data="coco8.yaml", project="comet-example-yolo26-coco128", batch=32, save_period=1, save_json=True, epochs=3, )
Более подробные инструкции приведены в разделе о настройке Comet.
-
Интегрировав Ultralytics YOLO26 с Comet, ты сможешь:
- Отслеживать аналитику в реальном времени: получать мгновенную обратную связь о результатах обучения и быстро вносить корректировки.
- Логировать расширенный набор метрик: автоматически записывать важные метрики, такие как mAP, loss, гиперпараметры и чекпоинты модели.
- Отслеживать эксперименты в автономном режиме: локально логировать запуски обучения при отсутствии доступа к интернету.
- Сравнивать разные запуски обучения: использовать интерактивную панель Comet для анализа и сравнения нескольких экспериментов.
Используя эти возможности, ты можешь оптимизировать рабочие процессы машинного обучения для повышения производительности и воспроизводимости. Дополнительную информацию смотри в руководстве по интеграции Comet.
Comet позволяет широко настраивать поведение логирования с помощью переменных окружения:
-
Измени количество логируемых предсказаний для изображений:
import os os.environ["COMET_MAX_IMAGE_PREDICTIONS"] = "200" -
Настрой интервал логирования пачек:
import os os.environ["COMET_EVAL_BATCH_LOGGING_INTERVAL"] = "4" -
Отключи логирование матрицы ошибок:
import os os.environ["COMET_EVAL_LOG_CONFUSION_MATRIX"] = "false" -
Задай имя проекта Comet:
import os os.environ["COMET_PROJECT_NAME"] = "my-yolo26-experiments" -
Задай имя записываемого артефакта модели:
import os os.environ["COMET_MODEL_NAME"] = "yolo26n-coco128"
Полный список настроек, включая переключатели предсказаний для изображений, масштабирование оценок уверенности и онлайн-/автономный режим, смотри в разделе Настройка логирования Comet.
-
После начала обучения модели YOLO26 ты сможешь получить доступ к широкому набору метрик и визуализаций на панели Comet. Ключевые возможности:
- Панели экспериментов: просмотр различных запусков и их метрик, включая loss маски сегментации, loss класса и среднюю точность.
- Метрики: просмотр метрик в табличном формате для подробного анализа.
- Интерактивная матрица ошибок: оценка точности классификации с помощью интерактивной матрицы ошибок.
- Системные метрики: мониторинг загрузки GPU и CPU, использования памяти и других системных метрик.
Подробный обзор этих возможностей смотри в разделе Анализ производительности модели с помощью визуализаций Comet.
Да. Задай
COMET_START_ONLINE=0до начала обучения, чтобы логировать данные локально:import os os.environ["COMET_START_ONLINE"] = "0"Данные эксперимента сохраняются на диске, а при появлении подключения их можно позже загрузить в Comet с помощью CLI
comet upload. Предыдущая переменнаяCOMET_MODE="offline"по-прежнему работает, но вызывает предупреждение об устаревании. Подробнее смотри в разделе Онлайн- и автономный режимы.