Meet YOLO26: next-gen vision AI.

Link to this sectionРецепт обучения YOLO26#

Link to this sectionВведение#

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

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

Link to this sectionОбзор обучения#

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

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

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

Link to this sectionПроверка аргументов обучения чекпоинта 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 — как для официальных релизов, так и для твоих собственных дообученных моделей. Полный список настраиваемых аргументов обучения см. в справочнике конфигурации обучения.

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

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

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

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

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

Веса потерь балансируют три компонента функции потерь обнаружения — регрессию 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. Потери классификации остаются относительно постоянными для всех размеров.

Link to this sectionКонвейер аугментации#

Подробное объяснение каждого метода см. в руководстве по аугментации данных 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 и scale), поскольку они обладают большей емкостью и выигрывают от более сильной регуляризации. Модель N — единственный размер со значимым поворотом, сдвигом и аугментацией BGR.

Link to this sectionВнутренние параметры обучения#

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

Чекпоинты также содержат параметры, которые использовались во внутреннем конвейере обучения, но не представлены как пользовательские настройки в 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 об этих параметрах, чтобы понять их значение при дообучении.

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

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

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

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

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

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

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

Маленькие наборы данных (< 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

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

Link to this sectionВыбор размера модели#

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

Для получения информации о вариантах экспорта и развертывания изучи Руководство по экспорту и Варианты развертывания модели.

Link to this sectionЗаключение#

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

Link to this sectionFAQ#

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

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

Link to this sectionПочему количество эпох разное для каждого размера модели?#

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

Link to this sectionНужно ли мне использовать MuSGD для дообучения?#

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

Link to this sectionЧто такое muon_w, sgd_w, cls_w, o2m и topk в чекпоинте?#

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

Link to this sectionМогу ли я воспроизвести точное предварительное обучение с нуля?#

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

Комментарии