Новый уровень обучения YOLO26: упрости логирование с Comet#
Логирование ключевых сведений об обучении, таких как параметры, метрики, предсказания для изображений и контрольные точки модели, необходимо в сфере машинного обучения: оно обеспечивает прозрачность проекта, позволяет измерять прогресс и воспроизводить результаты.
Смотри: Как использовать Comet для журналов обучения и метрик моделей Ultralytics YOLO 🚀
Ultralytics YOLO26 легко интегрируется с Comet (ранее Comet ML), эффективно собирая и оптимизируя данные обо всех этапах обучения модели YOLO26 для обнаружения объектов. В этом руководстве мы рассмотрим установку, настройку Comet, аналитику в реальном времени, пользовательское логирование и работу в автономном режиме, чтобы обучение YOLO26 было подробно задокументировано и точно настроено для достижения отличных результатов.
Comet#
Comet — это платформа для отслеживания, сравнения, анализа и оптимизации моделей и экспериментов в машинном обучении. Она позволяет логировать метрики, параметры, медиафайлы и другие данные во время обучения модели, а также отслеживать эксперименты через удобный веб-интерфейс. Comet помогает специалистам по анализу данных быстрее проводить итерации, повышает прозрачность и воспроизводимость и содействует разработке моделей для промышленной эксплуатации.
Используй возможности 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. Колбэк Ultralytics создаёт эксперимент и использует аргумент обучения YOLO project в качестве имени проекта Comet.
import comet_ml
comet_ml.login()Если ты работаешь в блокноте Google Colab, приведённый выше код предложит ввести ключ API для инициализации.
Использование#
Прежде чем перейти к инструкциям по использованию, ознакомься с линейкой моделей YOLO26 от Ultralytics. Это поможет выбрать модель, которая лучше всего подходит для требований твоего проекта.
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 автоматически создаст эксперимент в твоём рабочем пространстве Comet для отслеживания запуска. Затем ты получишь ссылку, по которой можно посмотреть подробное логирование процесса обучения модели YOLO26.
Comet автоматически логирует следующие данные без дополнительной настройки: метрики, такие как mAP и потери, гиперпараметры, контрольные точки модели, интерактивную матрицу ошибок и предсказания ограничивающих рамок на изображениях.
Анализ производительности модели с помощью визуализаций Comet#
Давай посмотрим, что появится на панели Comet, когда начнётся обучение модели YOLO26. На панели собраны все основные сведения: автоматически залогированные данные представлены в виде визуализаций и статистики. Вот краткий обзор:
Панели экспериментов
Раздел панелей экспериментов на панели Comet упорядочивает и отображает различные запуски и их метрики, например потери маски сегментации, потери классификации, точность и среднюю точность.
Метрики
В разделе метрик можно также просматривать их в виде таблицы, которая отображается в отдельной панели, как показано здесь.
Интерактивная матрица ошибок
Матрица ошибок на вкладке «Матрица ошибок» позволяет интерактивно оценивать точность классификации модели. В ней показаны правильные и ошибочные предсказания, что помогает понять сильные и слабые стороны модели.
Системные метрики
Comet логирует системные метрики, чтобы помочь выявить узкие места в процессе обучения. Среди них — загрузка GPU, использование памяти GPU, загрузка CPU и использование RAM. Эти метрики необходимы для контроля эффективности использования ресурсов при обучении модели.
Настройка логирования Comet#
Comet позволяет настраивать поведение логирования с помощью переменных среды. Эти параметры дают возможность адаптировать Comet к твоим потребностям и предпочтениям. Колбэк 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 (по умолчанию) = онлайн, 0 = автономный режимВ предыдущих версиях для этой цели использовалась COMET_MODE="offline". Для обратной совместимости переменная по-прежнему учитывается, но при её использовании выводится предупреждение об устаревании. В дальнейшем используй COMET_START_ONLINE.
Имя проекта#
По умолчанию колбэк Comet передаёт в Comet аргумент обучения YOLO project (или None, если аргумент не задан; в этом случае Comet использует проект по умолчанию в твоём рабочем пространстве). Чтобы направлять все эксперименты в определённый проект Comet независимо от аргумента обучения YOLO, переопредели это значение с помощью COMET_PROJECT_NAME:
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 отображает их в процентах. Перед логированием колбэк умножает каждую оценку на COMET_MAX_CONFIDENCE_SCORE (по умолчанию 100.0). Измени это значение, если предпочитаешь использовать исходные вероятности или другой масштаб:
import os
os.environ["COMET_MAX_CONFIDENCE_SCORE"] = "1.0" # логировать исходные оценки в диапазоне [0, 1]Итоги#
Это руководство помогло тебе разобраться, как интегрировать 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, потери, гиперпараметры и контрольные точки модели.
- Отслеживать эксперименты офлайн: сохранять запуски обучения локально, если нет доступа к интернету.
- Сравнивать разные запуски обучения: анализировать и сравнивать несколько экспериментов с помощью интерактивной панели 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 будут доступны различные метрики и визуализации. Среди основных возможностей:
- Панели экспериментов: просматривай разные запуски и их метрики, в том числе потери масок сегментации, потери классов и среднюю точность.
- Метрики: изучай метрики в табличном формате для подробного анализа.
- Интерактивная матрица ошибок: оценивай точность классификации с помощью интерактивной матрицы ошибок.
- Системные метрики: отслеживай загрузку GPU и CPU, использование памяти и другие системные метрики.
Подробный обзор этих возможностей см. в разделе Как оценить производительность модели с помощью визуализаций Comet.
Да. Перед началом обучения задай
COMET_START_ONLINE=0, чтобы сохранять данные локально:import os os.environ["COMET_START_ONLINE"] = "0"Данные эксперимента сохраняются на диске, а позднее их можно загрузить в Comet с помощью CLI
comet upload, когда появится подключение к сети. Прежняя переменнаяCOMET_MODE="offline"по-прежнему работает, но выводит предупреждение об устаревании. Подробнее см. в разделе Онлайн- и офлайн-режим.