Skip to main content

Рецепт обучения YOLO26

Введение

В этом руководстве задокументирован точный Хотя «сырые» метрики важны, опыт разработчика часто определяет успех проекта. рецепт, который использовался для создания официальных YOLO26 предварительно обученных чекпоинтов на COCO. Каждый рекомендации по гиперпараметрам показанный здесь, уже встроен в выпущенные .pt веса и может быть проверен программно.

Понимание того, как обучались базовые модели, помогает тебе принимать лучшие решения при тонкой настройки: какие С SDK Ultralytics обучение моделей исключительно просто. Система автоматически обрабатывает сложные оставить, какие функция потерь (loss function). веса скорректировать и какие настройки оптимизатора лучше всего подходят для размера твоего датасета.

Для кого это руководство?

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

Просмотр аргументов обучения

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

Просмотр аргументов обучения чекпоинта
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
print(model.ckpt["train_args"])

Это работает для любого .pt чекпоинта — как официальных релизов, так и твоих собственных дообученных моделей. Полный список настраиваемых аргументов обучения смотри в справочнике конфигурации обучения.

Обзоре обучения

Все базовые модели YOLO26 обучались на COCO при 640x640 разрешении с использованием MuSGD оптимизатора с размером батча 128. Модели инициализировались из промежуточных предобученных весов и уточнялись с помощью гиперпараметров, найденных посредством эволюционного поиска. Полные логи обучения и метрики для каждого размера модели доступны на Ultralytics Platform:

Ключевые конструктивные решения для всех размеров:

  • Обучение «от начала до конца» (end-to-end (end2end=True) с NMS-free one-to-one головой
  • MuSGD optimizer сочетание SGD с ортогонализированными обновлениями в стиле Muon для весов conv
  • Интенсивная mosaic аугментация (~0.9-1.0 вероятность), отключенная в последние 10 эпох (close_mosaic=10)
  • Агрессивная масштабная аугментация (0.56-0.95) для обработки объектов разных размеров
  • Минимальное вращение/сдвиг (rotation/shear) для большинства размеров, сохраняющее низкий уровень геометрических искажений

Гиперпараметры по размеру модели

Оптимизатор и скорость обучения

НастройкаNSMLX
optimizerMuSGDMuSGDMuSGDMuSGDMuSGD
lr00.00540.000380.000380.000380.00038
lrf0.04950.8820.8820.8820.882
momentum0.9470.9480.9480.9480.948
weight_decay0.000640.000270.000270.000270.00027
warmup_epochs0.980.990.990.990.99
epochs24570806040
batch128128128128128
imgsz640640640640640
Стратегия скорости обучения

Модель N использовала более высокую начальную скорость обучения с резким затуханием (lrf=0.0495), в то время как модели S/M/L/X использовали гораздо более низкую начальную LR с более мягким расписанием (lrf=0.882). Это отражает различную динамику сходимости маленьких и больших моделей — маленьким моделям нужны более агрессивные обновления для эффективного обучения.

Веса потерь

НастройкаNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

Модель N отдает приоритет DFL loss, в то время как модели S/M/L/X смещают акцент на bounding box регрессию. Потери классификации остаются относительно стабильными для всех размеров.

Конвейер аугментации

Для подробного объяснения каждого метода смотри руководство по YOLO Data Augmentation.

НастройкаNSMLX
mosaic0.9090.9920.9920.9920.992
mixup0.0120.050.4270.4270.427
copy_paste0.0750.4040.3040.4040.404
scale0.5620.90.950.950.95
fliplr0.6060.3040.3040.3040.304
degrees1.11~0~0~0~0
shear1.46~0~0~0~0
translate0.0710.2750.2750.2750.275
hsv_h0.0140.0130.0130.0130.013
hsv_s0.6450.3530.3530.3530.353
hsv_v0.5660.1940.1940.1940.194
bgr0.1060.00.00.00.0

Более крупные модели в целом используют более агрессивную аугментацию (более высокий mixup, copy-paste и scale), поскольку они обладают большей емкостью и выигрывают от более сильной регуляризация. Модель N — это единственный размер со значимым rotation, shear и BGR аугментация.

Внутренние параметры обучения

Продвинутый уровень: внутренние параметры конвейера

Чекпоинты также содержат параметры, которые использовались во внутреннем конвейере обучения, но не не являются настраиваемыми пользователем параметрами в default.yaml:

НастройкаОписаниеNSMLX
muon_wВес обновления Muon в MuSGD0.5280.4360.4360.4360.436
sgd_wВес обновления SGD в MuSGD0.6740.4790.4790.4790.479
cls_wВнутренний вес классификации2.743.483.483.483.48
o2mВес потерь для головы one-to-many1.00.7050.7050.7050.705
topkНазначение меток Top-k85555

Они записаны для воспроизводимости, но их не нужно задавать при дообучении. См. FAQ для получения более подробной информации.

Руководство по дообучению

При дообучении YOLO26 на собственном наборе данных тебе не нужно полностью повторять рецепт предварительного обучения. Предобученные веса уже содержат знания об аугментации и оптимизации, полученные при обучении на COCO. Для получения общих рекомендаций по обучению см. Советы по обучению моделей.

Начни с простого

Дообучение с настройками по умолчанию
from ultralytics import YOLO

model = YOLO("yolo26n.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

Дообучение с настройками по умолчанию — это отличная база. Меняй гиперпараметры, только если у тебя есть конкретная причина для этого.

Когда стоит вносить изменения

Небольшие наборы данных (< 1,000 изображений):

  • Снизь интенсивность аугментации: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Уменьши скорость обучения: lr0=0.001
  • Используй меньше эпохах с терпением: epochs=50, patience=20
  • Рассмотри возможность заморозки слоев бекбона: freeze=10

Большие наборы данных (> 50,000 изображений):

  • Максимально приблизься к рецепту предобучения
  • Рассмотри optimizer=MuSGD для более длительных запусков
  • Увеличь аугментацию: mosaic=1.0, mixup=0.3, scale=0.9

Специфические для домена изображения (аэросъемка, медицинские, подводные):

  • Увеличь flipud=0.5 если вертикальная ориентация варьируется
  • Увеличь degrees если объекты появляются при произвольных поворотах
  • Настрой hsv_s и hsv_v если условия освещения значительно отличаются от COCO

Для автоматической оптимизации гиперпараметров см. Руководство по настройке гиперпараметров.

Выбор размера модели

МодельBest ForРуководство по размеру батча
YOLO26nEdge-устройства, мобильные устройства, real-time на CPUБольшие батчи (64-128) на потребительских GPU
YOLO26sСбалансированная скорость и точностьСредние батчи (32-64)
YOLO26mБолее высокая точность при умеренных вычислительных затратахМалые батчи (16-32)
YOLO26lВысокая точность при наличии GPUМалые батчи (8-16) или multi-GPU
YOLO26xМаксимальная точность, деплой на сервереМалые батчи (4-8) или multi-GPU

Варианты экспорта и деплоя см. в Руководстве по экспорту и Варианты развертывания моделей.

FAQ

Как узнать точные гиперпараметры, использованные для любого чекпоинта?

Загрузи чекпоинт с помощью torch.load() и обратись к ключу train_args или используй model.ckpt["train_args"] с Ultralytics API. См. Просмотр аргументов обучения для получения полных примеров.

Почему количество эпох различается для каждого размера модели?

Более крупные модели сходятся быстрее на COCO, так как обладают большей емкостью. Модели N потребовалось 245 эпох, в то время как модели X — всего 40. При дообучении на собственном датасете оптимальное число эпох зависит от размера и сложности твоего датасета, а не от размера модели. Используй раннюю остановку (patience), чтобы автоматически найти подходящую точку остановки.

Стоит ли мне использовать MuSGD для дообучения?

Когда optimizer=auto (по умолчанию), Ultralytics автоматически выбирает MuSGD для длительных запусков обучения (>10,000 итераций) и AdamW для коротких. Ты можешь явно задать optimizer=MuSGD, если предпочитаешь. Подробнее о выборе оптимизатора см. документацию по обучению.

Что такое muon_w, sgd_w, cls_w, o2m и topk в чекпоинте?

Это внутренние параметры из конвейера обучения, который создал базовые чекпоинты. Они сохранены для воспроизводимости, но не не являются настраиваемыми пользователем параметрами в default.yaml. Тебе не нужно задавать их при дообучении. См. Внутренние параметры обучения для получения подробной информации.

Могу ли я повторить точное предобучение с нуля?

Чекпоинты были созданы с использованием внутренней ветки обучения с дополнительными функциями, отсутствующими в публичной кодовой базе (например, настраиваемые веса o2m и cls_w). Ты можешь получить очень близкие результаты, используя гиперпараметры, описанные на этой странице, с публичным пакетом Ultralytics, но для точного воспроизведения требуется внутренняя ветка.

Комментарии