Ultralytics YOLO27:

Совершенствуем обучение 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 ML experiment tracking dashboard

Comet — это платформа для отслеживания, сравнения, объяснения и оптимизации моделей и экспериментов в машинном обучении. Она позволяет во время обучения модели записывать метрики, параметры, медиаданные и многое другое, а также отслеживать эксперименты через удобный веб-интерфейс. Comet помогает специалистам по данным быстрее выполнять итерации, повышает прозрачность и воспроизводимость и способствует разработке моделей для использования в production.

Используй возможности YOLO26 и Comet на максимум#

Объединение Ultralytics YOLO26 с Comet открывает целый ряд преимуществ. К ним относятся упрощённое управление экспериментами, аналитика в реальном времени для быстрых корректировок, гибкие и адаптируемые варианты логирования, а также возможность вести логирование экспериментов в автономном режиме при ограниченном доступе к интернету. Эта интеграция помогает принимать решения на основе данных, анализировать метрики производительности и получать выдающиеся результаты.

Установка#

Чтобы установить необходимые пакеты, выполни:

Установка
# Install YOLO26 and Comet
pip install ultralytics comet_ml

Настройка Comet#

После установки необходимых пакетов тебе нужно зарегистрироваться, получить ключ API Comet и настроить его.

Настройка Comet
# Set your Comet API Key
export COMET_API_KEY=YOUR_API_KEY

Затем выполни аутентификацию в Comet. Callback Ultralytics создаёт эксперимент и использует аргумент обучения YOLO project в качестве имени проекта Comet.

Инициализация проекта 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 и средняя точность.

Comet ML experiment tracking dashboard

Метрики

В разделе метрик ты также можешь просматривать метрики в табличном формате — они отображаются в отдельной области, как показано здесь.

Comet ML experiment tracking dashboard

Интерактивная матрица ошибок

Матрица ошибок на вкладке Confusion Matrix предоставляет интерактивный способ оценить точность классификации модели. В ней подробно отображаются правильные и неправильные предсказания, что позволяет понять сильные и слабые стороны модели.

Comet ML experiment tracking dashboard

Системные метрики

Comet логирует системные метрики, чтобы помочь выявить узкие места в процессе обучения. В их число входят загрузка GPU, использование памяти GPU, загрузка CPU и использование RAM. Эти данные необходимы для контроля эффективности использования ресурсов во время обучения модели.

Comet ML experiment tracking dashboard

Настройка логирования Comet#

Comet позволяет настраивать поведение логирования с помощью переменных окружения. Эти настройки дают возможность адаптировать Comet под твои конкретные потребности и предпочтения. Callback Ultralytics считывает следующие переменные окружения (задай их до начала обучения):

Переменная окруженияПо умолчаниюОписание
COMET_START_ONLINE1Запускать эксперимент в онлайн-режиме (1) или автономном режиме (0).
COMET_PROJECT_NAMEargs.projectПроект в рабочем пространстве Comet. Если значение не задано, используется аргумент обучения YOLO project.
COMET_MODEL_NAMEUltralyticsИмя, зарегистрированное для записанного артефакта модели.
COMET_MAX_IMAGE_PREDICTIONS100Общее количество предсказаний для изображений из валидации, которые нужно логировать за один запуск.
COMET_EVAL_BATCH_LOGGING_INTERVAL1Логировать предсказания для изображений на каждой N-й валидационной пачке.
COMET_EVAL_LOG_IMAGE_PREDICTIONStrueВключить (true) или отключить (false) логирование предсказаний для изображений.
COMET_EVAL_LOG_CONFUSION_MATRIXfalseЛогировать матрицу ошибок на каждой эпохе валидации. Итоговая матрица всегда логируется в конце обучения.
COMET_MAX_CONFIDENCE_SCORE100.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` устарел

В предыдущих версиях для этой цели использовался 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, выполни следующие шаги:

    1. Установи необходимые пакеты:

      pip install ultralytics comet_ml
    2. Настрой ключ API Comet:

      export COMET_API_KEY=YOUR_API_KEY
    3. Выполни аутентификацию в Comet в своём коде Python:

      import comet_ml
      
      comet_ml.login()
    4. Обучи модель 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" по-прежнему работает, но вызывает предупреждение об устаревании. Подробнее смотри в разделе Онлайн- и автономный режимы.

Комментарии