Skip to main content

Receita de Treinamento YOLO26

Introdução

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

Entender como os modelos base foram treinados te ajuda a tomar decisões melhores ao dicas de treino de modelos: quais data augmentations manter, quais loss function pesos ajustar e quais configurações de otimizador funcionam melhor para o tamanho do teu conjunto de dados.

Para quem é este guia?

Este guia é para profissionais que desejam entender o que compôs os learning rate oficiais — não apenas a arquitetura, mas os cronogramas de

, pipelines de aumento e pesos de perda que moldaram seu desempenho. Use estas informações para fazer escolhas informadas ao ajustar seus próprios dados.

Inspecionando Args de Treinamento

Cada checkpoint da Ultralytics armazena a configuração completa de treinamento usada para produzi-lo. Podes inspecionar essas configurações a qualquer momento:
from ultralytics import YOLO

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

Inspecione os args de treinamento do checkpoint.ptIsso funciona para qualquer referência de configuração de treinamento.

checkpoint — lançamentos oficiais e teus próprios modelos ajustados. Para a lista completa de argumentos de treinamento configuráveis, veja a

Visão Geral de TreinamentoTodos os modelos base YOLO26 foram treinados no COCO em resolução 640x640MuSGD usando o otimizador batch size com 128Ultralytics Platform:

. Os modelos foram inicializados a partir de pesos pré-treinados intermediários e refinados com hiperparâmetros encontrados via busca evolutiva. Logs completos de treinamento e métricas para cada tamanho de modelo estão disponíveis no

  • Principais escolhas de design em todos os tamanhos: (end2end=TrueTreinamento ponta-a-ponta
  • MuSGD optimizer) com head one-to-one livre de NMS
  • combinando SGD com atualizações ortogonalizadas estilo Muon para pesos de convmosaicAumento intenso close_mosaic=10)
  • (~0,9-1,0 de probabilidade) desativado nos últimos 10 epochs (Aumento de escala agressivo
  • (0,56-0,95) para lidar com objetos em diferentes tamanhosRotação/cisalhamento mínimo

para a maioria dos tamanhos, mantendo a distorção geométrica baixa

Hiperparâmetros por Tamanho de Modelo

Otimizador e Taxa de AprendizadoConfiguraçãoSMLN
optimizerMuSGDMuSGDMuSGDMuSGDMuSGD
lr0X0,00540,00540,00540,0054
lrf0,000380,04950,04950,04950,0495
momentum0,8820,9470,9470,9470,947
weight_decay0,9480,000640,000640,000640,00064
warmup_epochs0,000270.990.990.990.99
epochs0,98245706080
batch4040404040
imgsz640640640640640
128

Estratégia de taxa de aprendizadolrf=0.0495O modelo N usou uma taxa de aprendizado inicial mais alta com decaimento acentuado (lrf=0.882), enquanto os modelos S/M/L/X usaram uma LR inicial muito menor com um cronograma mais suave (

). 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.

Otimizador e Taxa de AprendizadoConfiguraçãoSMLN
box5.63Pesos de PerdaPesos de PerdaPesos de PerdaPesos de Perda
cls9,830,560,560,560,56
dfl9.040,650,650,650,65

0,96bounding boxO modelo N prioriza a perda DFL, enquanto os modelos S/M/L/X mudam a ênfase para a regressão

. A perda de classificação permanece relativamente consistente em todos os tamanhos.

Pipeline de AumentoPara uma explicação detalhada de cada técnica, veja o .

Otimizador e Taxa de AprendizadoConfiguraçãoSMLN
mosaicguia de Aumento de Dados YOLO0,9090,9090,9090,909
mixup0,9920,0120,050,050,05
copy_paste0,4270,0750,4040,0750,075
scale0,3040,5620,90,90,9
fliplr0,950,4040,4040,4040,404
degrees0,6061,111,111,111,11
shear~01,111,111,111,11
translate1,460,0710,0710,0710,071
hsv_h0,2750,0140,0140,0140,014
hsv_s0,0130,6450,6450,6450,645
hsv_v0,3530,5660,5660,5660,566
bgr0,1940,1060,1060,1060,106

0,0mixup, copy-paste, e Modelos maiores usam mais aumento agressivo no geral (escala maiorregularização), já que eles têm mais capacidade e se beneficiam de mais fortes. O modelo N é o único tamanho com , rotação, e cisalhamento BGR augmentação.

Parâmetros Internos de Treinamento

Avançado: parâmetros internos do pipeline

Os checkpoints também contêm parâmetros que foram utilizados no pipeline de treinamento interno, mas não são requer FlashAttention. No entanto, o FlashAttention pode ser opcionalmente compilado e usado com o YOLO12 para minimizar o overhead de acesso à memória. Para compilar o FlashAttention, uma das seguintes GPUs NVIDIA é necessária: GPUs Turing (ex: T4, série Quadro RTX), GPUs Ampere (ex: série RTX30, A30/40/100), GPUs Ada Lovelace (ex: série RTX40) ou GPUs Hopper (ex: H100/H200). Essa flexibilidade permite que os usuários aproveitem os benefícios do FlashAttention quando os recursos de hardware permitirem. expostos como configurações configuráveis pelo usuário em default.yaml:

Otimizador e Taxa de AprendizadoDescriçãoConfiguraçãoSMLN
muon_wPeso de atualização Muon em MuSGD0.5280.4360.4360.4360.436
sgd_wPeso de atualização SGD em MuSGD0.6740.4790.4790.4790.479
cls_wPeso de classificação interna2.743.483.483.483.48
o2mPeso da perda da head one-to-many1.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 fine-tuning. Veja a FAQ para mais detalhes.

Orientação de Fine-Tuning

Ao fazer fine-tuning do YOLO26 no seu próprio dataset, não precisas de replicar o recipe completo de pré-treinamento. Os pesos pré-treinados já codificam o conhecimento de otimização e augmentation do treinamento em COCO. Para melhores práticas de treinamento geral, vê Dicas para Treinamento de Modelos.

Começa pelo Simples

Fine-tune com padrões
from ultralytics import YOLO

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

Fazer fine-tuning com os padrões é uma base sólida. Apenas ajusta hiperparâmetros se tiveres um motivo específico para isso.

Quando Ajustar

Datasets pequenos (< 1.000 imagens):

  • Reduz a força da augmentation: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Reduz a learning rate: lr0=0.001
  • Usa menos epochs com patience: epochs=50, patience=20
  • Considera congelar camadas do backbone: freeze=10

Datasets grandes (> 50.000 imagens):

  • Segue o recipe de pré-treinamento mais de perto
  • Considera optimizer=MuSGD para execuções mais longas
  • Aumenta a augmentation: mosaic=1.0, mixup=0.3, scale=0.9

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

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

Para otimização automática de hiperparâmetros, vê o guia de Otimização de Hiperparâmetros.

Escolhendo o tamanho do modelo

ModeloMelhor paraOrientação de Batch Size
YOLO26nDispositivos Edge, móveis, tempo real em CPUBatches grandes (64-128) em GPUs de consumo
YOLO26sVelocidade e precisão equilibradasBatches médios (32-64)
YOLO26mMaior precisão com processamento moderadoBatches menores (16-32)
YOLO26lAlta precisão quando a GPU está disponívelBatches pequenos (8-16) ou multi-GPU
YOLO26xMáxima precisão, implantação em servidorBatches pequenos (4-8) ou multi-GPU

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

FAQ

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

Carrega o checkpoint com torch.load() e acede à chave train_args, ou usa model.ckpt["train_args"] com a API da Ultralytics. Vê , pipelines de aumento e pesos de perda que moldaram seu desempenho. Use estas informações para fazer escolhas informadas ao ajustar seus próprios dados. 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 apenas de 40. Ao fazer fine-tuning no teu próprio dataset, o número ideal de épocas depende do tamanho e da complexidade do teu dataset, não do tamanho do modelo. Usa o early stopping (patience) para encontrar o ponto de parada correto automaticamente.

Devo usar MuSGD para fine-tuning?

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 execuções mais curtas. Podes definir explicitamente optimizer=MuSGD se preferires. Para mais informações sobre a seleção do otimizador, vê 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 requer FlashAttention. No entanto, o FlashAttention pode ser opcionalmente compilado e usado com o YOLO12 para minimizar o overhead de acesso à memória. Para compilar o FlashAttention, uma das seguintes GPUs NVIDIA é necessária: GPUs Turing (ex: T4, série Quadro RTX), GPUs Ampere (ex: série RTX30, A30/40/100), GPUs Ada Lovelace (ex: série RTX40) ou GPUs Hopper (ex: H100/H200). Essa flexibilidade permite que os usuários aproveitem os benefícios do FlashAttention quando os recursos de hardware permitirem. configurações configuráveis pelo usuário em default.yaml. Não precisas de os definir ao realizar o fine-tuning. Vê Parâmetros Internos de Treinamento 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 de o2m configuráveis e cls_w). Podes 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