Meet YOLO26: next-gen vision AI.

Receita de Treinamento do YOLO26

Introdução

Este guia documenta a receita exata de treinamento usada para produzir os checkpoints pré-treinados oficiais do YOLO26 no COCO. Cada hiperparâmetro aqui exibido já está incorporado nos pesos .pt lançados e pode ser inspecionado programaticamente.

Compreender como os modelos base foram treinados ajuda você a tomar decisões melhores durante o fine-tuning: quais aumentações de dados manter, quais pesos da função de perda ajustar e quais configurações de otimizador funcionam melhor para o tamanho do seu conjunto de dados.

Para quem é este guia?

Este guia é para profissionais que desejam entender o que compôs os checkpoints oficiais do YOLO26 — não apenas a arquitetura, mas os cronogramas de taxa de aprendizado, pipelines de aumentação e pesos de perda que moldaram seu desempenho. Use essas informações para fazer escolhas informadas ao realizar o fine-tuning nos seus próprios dados.

Inspecionando Argumentos de Treinamento

Cada checkpoint da Ultralytics armazena a configuração de treinamento completa usada para produzi-lo. Você pode inspecionar essas configurações a qualquer momento:

Inspecionar argumentos de treinamento do checkpoint
from ultralytics import YOLO

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

Isso funciona para qualquer checkpoint .pt — tanto para lançamentos oficiais quanto para seus próprios modelos fine-tuned. Para a lista completa de argumentos de treinamento configuráveis, veja a referência de configuração de treinamento.

Visão Geral do Treinamento

Todos os modelos base YOLO26 foram treinados no COCO com resolução 640x640 usando o otimizador MuSGD com tamanho de lote (batch size) 128. Os modelos foram inicializados a partir de pesos pré-treinados intermediários e refinados com hiperparâmetros encontrados via busca evolucionária. Logs completos de treinamento e métricas para cada tamanho de modelo estão disponíveis na Plataforma Ultralytics:

Principais escolhas de design em todos os tamanhos:

  • Treinamento ponta a ponta (end2end=True) com cabeça um-para-um sem NMS
  • Otimizador MuSGD combinando SGD com atualizações ortogonalizadas estilo Muon para pesos de convolução
  • Aumentação mosaic pesada (probabilidade ~0.9-1.0) desativada nos últimos 10 epochs (close_mosaic=10)
  • Aumentação de escala agressiva (0.56-0.95) para lidar com objetos em diferentes tamanhos
  • Rotação/cisalhamento mínimos para a maioria dos tamanhos, mantendo a distorção geométrica baixa

Hiperparâmetros por Tamanho de Modelo

Otimizador e Taxa de Aprendizado

ConfiguraçãoNSMLX
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
Estratégia de taxa de aprendizado

O modelo N usou uma taxa de aprendizado inicial mais alta com decaimento acentuado (lrf=0.0495), enquanto os modelos S/M/L/X usaram uma LR inicial muito menor com um cronograma mais suave (lrf=0.882). Isso reflete as diferentes dinâmicas de convergência de modelos menores versus maiores — modelos menores precisam de atualizações mais agressivas para aprender efetivamente.

Pesos de Perda

ConfiguraçãoNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

O modelo N prioriza a perda DFL, enquanto os modelos S/M/L/X deslocam a ênfase para a regressão de bounding box. A perda de classificação permanece relativamente consistente em todos os tamanhos.

Pipeline de Aumentação

Para uma explicação detalhada de cada técnica, veja o guia de Aumentação de Dados YOLO.

ConfiguraçãoNSMLX
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

Modelos maiores usam uma aumentação mais agressiva no geral (maior mixup, copy-paste e scale), já que possuem mais capacidade e se beneficiam de uma regularização mais forte. O modelo N é o único tamanho com aumentação significativa de rotação, cisalhamento e BGR.

Parâmetros de Treinamento Internos

Avançado: parâmetros internos de pipeline

Os checkpoints também contêm parâmetros que foram usados no pipeline de treinamento interno, mas não são expostos como configurações configuráveis pelo usuário no default.yaml:

ConfiguraçãoDescriçãoNSMLX
muon_wPeso de atualização Muon no MuSGD0.5280.4360.4360.4360.436
sgd_wPeso de atualização SGD no MuSGD0.6740.4790.4790.4790.479
cls_wPeso de classificação interna2.743.483.483.483.48
o2mPeso da perda do cabeçote um-para-muitos1.00.7050.7050.7050.705
topkAtribuição de rótulo Top-k85555

Estes são registrados para reprodutibilidade, mas não precisam ser definidos ao realizar o ajuste fino. Veja o FAQ para mais detalhes.

Orientação para Ajuste Fino

Ao realizar o ajuste fino do YOLO26 em seu próprio conjunto de dados, você não precisa replicar a receita completa de pré-treinamento. Os pesos pré-treinados já codificam o conhecimento de aumento e otimização do treinamento no COCO. Para práticas recomendadas de treinamento mais gerais, veja Dicas para Treinamento de Modelos.

Comece Simples

Ajuste fino com padrões
from ultralytics import YOLO

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

Realizar o ajuste fino com os valores padrão é uma base sólida. Ajuste os hiperparâmetros apenas se tiver um motivo específico para isso.

Quando Ajustar

Conjuntos de dados pequenos (< 1.000 imagens):

  • Reduza a intensidade do aumento: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Reduza a taxa de aprendizagem: lr0=0.001
  • Use menos épocas com patience: epochs=50, patience=20
  • Considere congelar as camadas da backbone: freeze=10

Conjuntos de dados grandes (> 50.000 imagens):

  • Siga mais rigorosamente a receita de pré-treinamento
  • Considere optimizer=MuSGD para execuções mais longas
  • Aumente o aumento: mosaic=1.0, mixup=0.3, scale=0.9

Imagens específicas de domínio (aéreas, médicas, subaquáticas):

  • Aumente flipud=0.5 se a orientação vertical variar
  • Aumente degrees se os objetos aparecerem em rotações arbitrárias
  • Ajuste hsv_s e hsv_v se as condições de iluminação diferirem significativamente do COCO

Para otimização automatizada de hiperparâmetros, veja o guia de Ajuste de Hiperparâmetros.

Escolhendo um tamanho de modelo

ModeloIdeal ParaOrientação sobre o Tamanho do Lote (Batch Size)
YOLO26nDispositivos de borda, móveis, tempo real na CPULotes grandes (64-128) em GPUs de consumo
YOLO26sVelocidade e precisão equilibradasLotes médios (32-64)
YOLO26mMaior precisão com processamento moderadoLotes menores (16-32)
YOLO26lAlta precisão quando a GPU está disponívelLotes pequenos (8-16) ou multi-GPU
YOLO26xPrecisão máxima, implantação em servidorLotes pequenos (4-8) ou multi-GPU

Para opções de exportação e implantação, veja o guia de Exportação e as Opções de Implantação de Modelo.

FAQ

Como vejo os hiperparâmetros exatos usados para qualquer checkpoint?

Carregue o checkpoint com torch.load() e acesse a chave train_args, ou use model.ckpt["train_args"] com a API da Ultralytics. Veja Inspeção de Argumentos de Treinamento para exemplos completos.

Por que as contagens de épocas são diferentes para cada tamanho de modelo?

Modelos maiores convergem mais rápido no COCO porque têm mais capacidade. O modelo N precisou de 245 épocas, enquanto o modelo X precisou de apenas 40. Ao realizar o ajuste fino em seu próprio conjunto de dados, o número ideal de épocas depende do tamanho e complexidade do seu conjunto de dados, não do tamanho do modelo. Use a parada antecipada (patience) para encontrar o ponto de parada correto automaticamente.

Devo usar MuSGD para ajuste fino?

Quando optimizer=auto (o padrão), a Ultralytics seleciona automaticamente MuSGD para execuções de treinamento mais longas (>10.000 iterações) e AdamW para as mais curtas. Você pode definir explicitamente optimizer=MuSGD se preferir. Para mais informações sobre a seleção de otimizador, veja a documentação de treinamento.

O que são muon_w, sgd_w, cls_w, o2m e topk no checkpoint?

Estes são parâmetros internos do pipeline de treinamento que produziu os checkpoints base. Eles são armazenados para reprodutibilidade, mas não são configurações configuráveis pelo usuário em default.yaml. Você não precisa defini-los ao realizar o ajuste fino. Veja Parâmetros de Treinamento Internos para detalhes.

Posso replicar o pré-treinamento exato do zero?

Os checkpoints foram produzidos usando um branch de treinamento interno com recursos adicionais que não estão na base de código pública (como pesos o2m configuráveis e cls_w). Você pode obter resultados muito próximos usando os hiperparâmetros documentados nesta página com o pacote público da Ultralytics, mas uma reprodução exata requer o branch interno.

Comentários