YOLO Vision 2026:

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

Введение#

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

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

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

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

Основные проектные решения для всех размеров:

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

Проверка аргументов обучения чекпоинта YOLO26#

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

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

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

В выводе перечислена полная конфигурация из более чем 100 элементов, включая каждое значение рецепта, описанное на этой странице. Выдержка для yolo26n.pt:

batch: 128
...
box: 5.62767
...
close_mosaic: 10
cls: 0.56099
...
dfl: 9.03871
...
epochs: 245
...
lr0: 0.0054
lrf: 0.04952
...
optimizer: MuSGD

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

Гиперпараметры обучения YOLO26 по размеру модели#

В таблицах ниже рецепт сгруппирован по категориям: оптимизатор и расписание, веса потерь и аугментация. Каждое значение взято прямо из train_args, встроенного в выпущенные чекпоинты.

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

Эти настройки оптимизатора и графика управляли предобучением на COCO для каждого размера; обрати внимание, как модель N выделяется на фоне остальных:

Настройка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). Это отражает разницу в динамике сходимости меньших и больших моделей: меньшим моделям нужны более агрессивные обновления для эффективного обучения.

Веса функции потерь#

Веса потерь балансируют три компонента потерь обнаружения: регрессию IoU ограничивающей рамки (box), классификацию (cls) и член регрессии расстояния рамки (dfl). Обрати внимание, что YOLO26 без DFL перепрофилирует усиление dfl для взвешивания потерь L1 на нормализованных расстояниях рамок, а не фокальных потерь распределения:

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

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

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

Подробное объяснение каждого метода см. в руководстве по аугментации данных YOLO.

Настройка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

Значения, указанные как ~0, в реальных чекпоинтах составляют менее 0.01 (например, degrees=0.00012 для модели S) — аугментация фактически отключена.

Более крупные модели используют в целом более агрессивную аугментацию (более высокие mixup, copy-paste и масштаб), так как у них больше емкость и они извлекают пользу из более сильной регуляризации. Модель N — единственный размер со значительной аугментацией вращения, сдвига и 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Вес функции потерь типа «один-ко-многим»1.00.7050.7050.7050.705
topkНазначение меток Top-k85555

Смотри раздел FAQ об этих параметрах, чтобы узнать, что они означают при тонкой настройке.

Дообучение YOLO26 на собственном наборе данных#

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

Дообучение с настройками по умолчанию#

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

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

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

Когда стоит изменять гиперпараметры YOLO26#

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

  • Уменьши силу аугментации: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Снизь скорость обучения: lr0=0.001
  • Используй меньше эпох с терпением (patience): 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

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

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

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

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

Заключение#

Чекпоинты YOLO26 поставляются со встроенным полным рецептом обучения, поэтому точные гиперпараметры для каждого размера модели всегда доступны на расстоянии одного поиска train_args. Начни тонкую настройку с дефолтных значений, целенаправленно вноси изменения, используя таблицы на этой странице, и проверяй каждое изменение на своем валидационном наборе. Если по ходу дела возникают вопросы, задай их сообществу в репозитории Ultralytics на GitHub или на сервере Ultralytics в Discord.

FAQ#

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

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

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

  • Это внутренние параметры конвейера обучения, который создал базовые чекпоинты, записанные в train_args для воспроизводимости. Они не являются настраиваемыми пользователем параметрами в default.yaml, и их передача в model.train() вызывает ошибку недопустимого аргумента — публичный пакет их не читает. Тебе не нужно задавать их при тонкой настройке; их значения для каждого размера модели см. во внутренних параметрах обучения.

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

Участники

Комментарии