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 выделяется на фоне остальных:
| Настройка | N | S | M | L | X |
|---|---|---|---|---|---|
optimizer | MuSGD | MuSGD | MuSGD | MuSGD | MuSGD |
lr0 | 0.0054 | 0.00038 | 0.00038 | 0.00038 | 0.00038 |
lrf | 0.0495 | 0.882 | 0.882 | 0.882 | 0.882 |
momentum | 0.947 | 0.948 | 0.948 | 0.948 | 0.948 |
weight_decay | 0.00064 | 0.00027 | 0.00027 | 0.00027 | 0.00027 |
warmup_epochs | 0.98 | 0.99 | 0.99 | 0.99 | 0.99 |
epochs | 245 | 70 | 80 | 60 | 40 |
batch | 128 | 128 | 128 | 128 | 128 |
imgsz | 640 | 640 | 640 | 640 | 640 |
Модель N использовала более высокую начальную скорость обучения с резким затуханием (lrf=0.0495), в то время как модели S/M/L/X использовали гораздо более низкую начальную LR с более плавным графиком (lrf=0.882). Это отражает различную динамику сходимости маленьких и больших моделей — меньшим моделям нужны более агрессивные обновления для эффективного обучения.
Link to this sectionВеса функции потерь#
Веса потерь балансируют три компонента функции потерь обнаружения — регрессию IoU ограничивающей рамки (box), классификацию (cls) и член регрессии расстояния до рамки (dfl). Обрати внимание, что YOLO26 без DFL использует выигрыш dfl для взвешивания L1 потерь на нормализованных расстояниях рамок, а не для фокальной потери распределения:
| Настройка | N | S | M | L | X |
|---|---|---|---|---|---|
box | 5.63 | 9.83 | 9.83 | 9.83 | 9.83 |
cls | 0.56 | 0.65 | 0.65 | 0.65 | 0.65 |
dfl | 9.04 | 0.96 | 0.96 | 0.96 | 0.96 |
Модель N отдает приоритет члену регрессии расстояния dfl, в то время как модели S/M/L/X смещают акцент на регрессию рамок на основе IoU. Потери классификации остаются относительно постоянными для всех размеров.
Link to this sectionКонвейер аугментации#
Подробное объяснение каждого метода см. в руководстве по аугментации данных YOLO.
| Настройка | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 0.909 | 0.992 | 0.992 | 0.992 | 0.992 |
mixup | 0.012 | 0.05 | 0.427 | 0.427 | 0.427 |
copy_paste | 0.075 | 0.404 | 0.304 | 0.404 | 0.404 |
scale | 0.562 | 0.9 | 0.95 | 0.95 | 0.95 |
fliplr | 0.606 | 0.304 | 0.304 | 0.304 | 0.304 |
degrees | 1.11 | ~0 | ~0 | ~0 | ~0 |
shear | 1.46 | ~0 | ~0 | ~0 | ~0 |
translate | 0.071 | 0.275 | 0.275 | 0.275 | 0.275 |
hsv_h | 0.014 | 0.013 | 0.013 | 0.013 | 0.013 |
hsv_s | 0.645 | 0.353 | 0.353 | 0.353 | 0.353 |
hsv_v | 0.566 | 0.194 | 0.194 | 0.194 | 0.194 |
bgr | 0.106 | 0.0 | 0.0 | 0.0 | 0.0 |
Значения, показанные как ~0, в реальных чекпоинтах меньше 0.01 (например, degrees=0.00012 для модели S) — аугментация фактически отключена.
Более крупные модели используют в целом более агрессивную аугментацию (более высокие значения mixup, copy-paste и scale), поскольку они обладают большей емкостью и выигрывают от более сильной регуляризации. Модель N — единственный размер со значимым поворотом, сдвигом и аугментацией BGR.
Link to this sectionВнутренние параметры обучения#
Продвинутый уровень: внутренние параметры конвейера
Чекпоинты также содержат параметры, которые использовались во внутреннем конвейере обучения, но не представлены как пользовательские настройки в default.yaml:
| Настройка | Описание | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | Вес обновления Muon в MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | Вес обновления SGD в MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Внутренний вес классификации | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | Вес функции потерь типа «один-ко-многим» | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Назначение меток Top-k | 8 | 5 | 5 | 5 | 5 |
Ознакомься с записью в 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) |
|---|---|---|
| YOLO26n | Edge-устройства, мобильные устройства, работа в реальном времени на 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, но для точной репродукции потребуется внутренняя ветка.