Meet YOLO26: next-gen vision AI.

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

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

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

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

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

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

Link to this sectionИзучение аргументов обучения#

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

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

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

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

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

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

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

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

Link to this sectionГиперпараметры по размеру модели#

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

Настройка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Веса функции потерь#

Настройка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 смещают акцент на регрессию bounding box. Потеря классификации остается относительно постоянной для всех размеров.

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

Более крупные модели в целом используют более агрессивную аугментацию (более высокие значения 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 на своем наборе данных тебе не нужно повторять весь рецепт предварительного обучения. Предобученные веса уже содержат знания об аугментации и оптимизации, полученные при обучении на 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Когда вносить изменения#

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

  • Снизь силу аугментации: 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Выбор размера модели#

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

Информацию о вариантах экспорта и развертывания см. в руководстве по экспорту и вариантах развертывания модели.

Link to this sectionЧасто задаваемые вопросы (FAQ)#

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

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

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

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

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

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

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

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

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

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

Комментарии