YOLO Vision 2026:

Receita de treino 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 apresentado aqui já está incorporado nos pesos .pt disponibilizados, juntamente com o registo de treinamento por época e a revisão do código usada na execução, e tudo isso pode ser inspecionado programaticamente.

Saber o que foi incluído nos checkpoints oficiais — não apenas a arquitetura, mas também os escalonamentos da taxa de aprendizagem, os pipelines de aumento de dados e os pesos das funções de perda que determinaram o desempenho — ajuda-te a tomar melhores decisões ao fazer fine-tuning: quais aumentos de dados manter, quais pesos da função de perda ajustar e quais definições do otimizador funcionam melhor para o tamanho do teu conjunto de dados.

Lê o artigo para conheceres todos os detalhes

Esta página aborda os hiperparâmetros registados nos checkpoints disponibilizados. Para conheceres a fundamentação, incluindo a arquitetura, as alterações na perda e na atribuição de rótulos e os estudos de ablação, lê Ultralytics YOLO26: Modelos de visão unificados, em tempo real e de ponta a ponta.

Visão geral do treino#

Todos os modelos base do YOLO26 foram treinados em duas etapas: pré-treino no Objects365v1 durante 150 épocas, seguido de fine-tuning no COCO. Ambas as etapas foram executadas com resolução 640x640, usando o otimizador MuSGD e tamanho do batch 128. Nenhum checkpoint do YOLO26 foi treinado no COCO a partir de pesos aleatórios, motivo pelo qual a etapa do COCO é curta para a maioria dos tamanhos; os hiperparâmetros dessa etapa foram encontrados através de pesquisa evolutiva. Os registos de treino completos e as métricas de cada tamanho de modelo são armazenados nos checkpoints disponibilizados e apresentados como gráficos na Ultralytics Platform.

Principais escolhas de design para todos os tamanhos:

  • Pré-treino no Objects365 para cada tamanho antes da etapa do COCO
  • Treino de ponta a ponta (end2end=True) com uma cabeça um-para-um sem NMS
  • Otimizador MuSGD que combina SGD com atualizações ortogonalizadas ao estilo Muon para matrizes de pesos (pesos lineares 2D e filtros de convolução 4D, remodelados para 2D)
  • Aumento de mosaico intenso (probabilidade de ~0.9-1.0) desativado nas épocas finais (close_mosaic=8 no pré-treino, close_mosaic=10 no COCO)
  • Aumento agressivo de escala (0.5-0.95) para lidar com objetos de diferentes tamanhos
  • Rotação/cisalhamento mínimos para a maioria dos tamanhos, mantendo baixa a distorção geométrica

Etapa 1: Pré-treino no Objects365#

Cada checkpoint do YOLO26 para o COCO recebeu fine-tuning a partir de um checkpoint do Objects365v1 do mesmo tamanho. Esses pesos pré-treinados também são publicados e estão documentados na página do conjunto de dados Objects365. Cada checkpoint do COCO identifica os pesos iniciais na configuração de treino incorporada no ficheiro .pt; a secção Inspecionar os argumentos de treino do checkpoint do YOLO26 abaixo mostra como os ler:

Checkpoint do COCOPesos iniciais
yolo26n.ptyolo26n-objv1-150.pt
yolo26s.ptyolo26s-objv1-150.pt
yolo26m.ptyolo26m-objv1-150.pt
yolo26l.ptyolo26l-objv1-150.pt
yolo26x.ptyolo26x-objv1-150.pt

O pré-treino utilizou principalmente as definições predefinidas, em vez de valores pesquisados. lr0, lrf, momentum, weight_decay, box e cls correspondem a default.yaml, enquanto warmup_epochs, close_mosaic e dfl foram substituídos. As definições são partilhadas entre os tamanhos, exceto warmup_epochs no X, as intensidades dos aumentos e os pesos internos do MuSGD e da cabeça apresentados após as tabelas:

DefiniçãoValor
dataObjects365v1
epochs150
imgsz640
batch128
optimizerMuSGD
lr0 / lrf0.01 / 0.01
momentum0.937
weight_decay0.0005
warmup_epochs1 (2 para X)
close_mosaic8
box / cls / dfl7.5 / 0.5 / 6.0
Aumento de dadosNSMLX
mosaic1.01.01.01.01.0
mixup0.00.050.150.150.2
copy_paste0.10.150.40.50.6
scale0.50.90.90.90.9

Estas tabelas abrangem as definições que moldam o pré-treino, não a configuração completa. Os checkpoints registam mais de 100 argumentos; por isso, imprime train_args como mostrado abaixo para obteres a lista autoritativa.

Avançado: parâmetros internos do pré-treino

O pré-treino também variou o mesmo tipo de parâmetros do ramo experimental descritos em Parâmetros internos de treino. cls_w foi 1.0 para todos os tamanhos:

DefiniçãoNSMLX
muon_w0.450.50.450.450.5
sgd_w0.550.50.550.550.6
o2m0.10.10.11.01.0
Começar pelos pesos do Objects365

Não precisas do conjunto de dados Objects365 para reutilizar a etapa 1. Os checkpoints pré-treinados são transferidos automaticamente como qualquer outro recurso da Ultralytics, pelo que podes fazer fine-tuning neles com o teu próprio conjunto de dados:

from ultralytics import YOLO

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

Para voltares a executar a etapa do COCO, começa pelos mesmos pesos e indica os valores do otimizador, da perda e do aumento de dados da etapa 2 para esse tamanho nas tabelas abaixo. Essas tabelas omitem argumentos não predefinidos menores, como warmup_momentum, warmup_bias_lr, perspective, flipud e cutmix; por isso, imprime train_args a partir do checkpoint para obteres a configuração exata. Os parâmetros internos são rejeitados pelo pacote disponibilizado e requerem o ramo experimental.

Inspecionar os argumentos de treino do checkpoint do YOLO26#

Cada checkpoint da Ultralytics armazena a configuração completa de treino utilizada para o produzir, pelo que podes verificar pessoalmente cada número apresentado nesta página:

Inspecionar os argumentos de treino do checkpoint
from ultralytics import YOLO

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

O resultado apresenta a configuração completa, com mais de 100 entradas, incluindo todos os valores da receita documentados nesta página. Um excerto para 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

Isto funciona com qualquer checkpoint .pt — tanto os lançamentos oficiais como os teus próprios modelos com fine-tuning. Para obteres a lista completa dos argumentos de treino configuráveis, consulta a referência da configuração de treino.

Ver as curvas de treino#

train_args não é a única coisa armazenada. Cada checkpoint também contém o results.csv completo, por época, da execução que o produziu, juntamente com as respetivas métricas finais de validação. As curvas dos checkpoints oficiais do YOLO26 são publicadas na Ultralytics Platform, e qualquer ficheiro .pt pode ser arrastado e largado num projeto para gerar gráficos com os mesmos dados, analisando automaticamente os metadados do ficheiro.

Cada checkpoint abrange a etapa que o produziu; assim, as curvas do COCO estão em yolo26s.pt e as curvas de 150 épocas do Objects365 estão em yolo26s-objv1-150.pt.

Verificar a revisão do código#

ckpt["git"] regista o commit que produziu o checkpoint, e esses commits encontram-se em ramos experimentais públicos do repositório da Ultralytics, pelo que podes obter o código de treino exato:

from ultralytics import YOLO

print(YOLO("yolo26n.pt").ckpt["git"])
# {'root': ..., 'branch': 'exp-main', 'commit': 'cb13d5f9cfbd6f299da3620c625f81d721dc2849', ...}
git fetch origin cb13d5f9cfbd6f299da3620c625f81d721dc2849
git checkout cb13d5f9cfbd6f299da3620c625f81d721dc2849

Os ramos experimentais contêm trabalho que nunca foi integrado em main, como o2m e cls_w configuráveis. Treinar em main com os hiperparâmetros documentados abaixo não produzirá resultados bit a bit idênticos, mas ficará a uma distância insignificante das métricas publicadas.

Hiperparâmetros de treino do YOLO26 por tamanho de modelo#

Estes são os valores da etapa 2, aplicados sobre os pesos do Objects365 acima. As tabelas abaixo agrupam a receita por categoria: otimizador e escalonamento, pesos da perda e aumento de dados. Cada valor provém diretamente do train_args incorporado nos checkpoints disponibilizados.

Otimizador e taxa de aprendizagem#

Estas definições do otimizador e do escalonamento orientaram o fine-tuning no COCO para cada tamanho; observa como o modelo N se distingue dos restantes:

Definiçã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 da taxa de aprendizagem

O modelo N utilizou uma taxa de aprendizagem inicial mais elevada, com uma redução acentuada (lrf=0.0495), enquanto os modelos S/M/L/X utilizaram uma LR inicial muito mais baixa, com um escalonamento mais suave (lrf=0.882). Isto reflete as diferentes dinâmicas de convergência dos modelos menores e maiores — os modelos menores precisam de atualizações mais agressivas para aprender eficazmente.

Pesos da perda#

Os pesos da perda equilibram os três componentes da perda de deteção — regressão de IoU da caixa delimitadora (box), classificação (cls) e um termo de regressão da distância da caixa (dfl). Nota que o YOLO26 sem DFL reutiliza o ganho dfl para ponderar uma perda L1 nas distâncias normalizadas da caixa, em vez da perda focal de distribuição:

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

O modelo N dá prioridade ao termo de regressão da distância dfl, enquanto os modelos S/M/L/X transferem a ênfase para a regressão da caixa baseada em IoU. A perda de classificação permanece relativamente consistente em todos os tamanhos.

Pipeline de aumento de dados#

Para obteres uma explicação detalhada de cada técnica, consulta o guia de aumento de dados do YOLO.

Definiçã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

Os valores apresentados como ~0 são inferiores a 0.01 nos checkpoints reais (por exemplo, degrees=0.00012 para o modelo S) — o aumento de dados está efetivamente desativado.

Os modelos maiores utilizam, de modo geral, aumentos mais agressivos (maior mixup e escala), pois têm mais capacidade e beneficiam de uma regularização mais forte. O modelo N é o único tamanho com rotação, cisalhamento e aumento BGR significativos.

Parâmetros internos de treino#

Avançado: parâmetros internos do pipeline

Os checkpoints também contêm parâmetros utilizados no ramo experimental de treino, mas que não são apresentados como definições configuráveis pelo utilizador em default.yaml:

DefiniçãoDescriçãoNSMLX
muon_wPeso da atualização Muon no MuSGD0.5280.4360.4360.4360.436
sgd_wPeso da atualização SGD no MuSGD0.6740.4790.4790.4790.479
cls_wPeso interno da classificação2.743.483.483.483.48
o2mPeso da perda da cabeça um-para-muitos1.00.7050.7050.7050.705
topkAtribuição de rótulos top-k85555

Consulta a entrada das FAQ sobre estes parâmetros para saberes o que significam ao fazer fine-tuning.

Fazer fine-tuning do YOLO26 no teu próprio conjunto de dados#

Ao fazer fine-tuning do YOLO26 no teu próprio conjunto de dados, não precisas de replicar a receita completa de pré-treino. Os pesos pré-treinados já codificam o conhecimento sobre aumento de dados e otimização adquirido no treino com o COCO. Para obteres mais boas práticas gerais de treino, consulta Dicas para o treino de modelos.

Fazer fine-tuning com as definições predefinidas#

Fazer fine-tuning com as predefinições
from ultralytics import YOLO

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

Fazer fine-tuning com as predefinições é uma referência sólida. Ajusta os hiperparâmetros apenas se tiveres um motivo específico para tal.

Quando ajustar os hiperparâmetros do YOLO26#

Conjuntos de dados pequenos (< 1.000 imagens):

  • Reduzir a intensidade dos aumentos: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Reduzir a taxa de aprendizagem com um otimizador explícito: optimizer=AdamW, lr0=0.001
  • Usar menos épocas com paciência: epochs=50, patience=20
  • Considerar congelar as camadas do backbone: freeze=10

Conjuntos de dados grandes (> 50.000 imagens):

  • Seguir mais de perto a receita de pré-treino
  • Considerar optimizer=MuSGD para execuções mais longas
  • Aumentar os dados: mosaic=1.0, mixup=0.3, scale=0.9

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

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

Para a otimização automatizada de hiperparâmetros, consulta o guia de ajuste de hiperparâmetros.

Escolher um tamanho de modelo#

ModeloMais indicado paraOrientações sobre o tamanho do batch
YOLO26nDispositivos de edge, dispositivos móveis, tempo real em CPUBatches grandes (64-128) em GPUs de consumo
YOLO26sEquilíbrio entre velocidade e precisãoBatches médios (32-64)
YOLO26mMaior precisão com computação moderadaBatches menores (16-32)
YOLO26lElevada precisão quando há uma GPU disponívelLotes pequenos (8-16) ou várias GPUs
YOLO26xPrecisão máxima, implementação em servidorLotes pequenos (4-8) ou várias GPUs

Para conhecer as opções de exportação e implementação, consulta o guia de exportação e as Opções de implementação do modelo.

Conclusão#

Os checkpoints do YOLO26 incluem a receita de treino completa, pelo que os hiperparâmetros exatos por detrás de cada tamanho de modelo estão sempre a uma consulta de train_args de distância. Começa o fine-tuning com as predefinições, faz ajustes deliberados usando as tabelas desta página e valida cada alteração no teu próprio conjunto de validação. Se surgirem dúvidas durante o processo, pergunta à comunidade no repositório do Ultralytics no GitHub ou no servidor do Ultralytics no Discord.

Perguntas frequentes#

  • Carrega o checkpoint com torch.load() e acede à chave train_args, ou usa model.ckpt["train_args"] com a API da Ultralytics. Consulta Inspecionar os argumentos de treino do checkpoint YOLO26 para obter exemplos completos.

  • Cada tamanho recebeu as mesmas 150 épocas de pré-treino em Objects365, pelo que as contagens de COCO abrangem apenas a fase de fine-tuning. Os modelos maiores convergem em COCO em menos dessas épocas: 40 para X contra 245 para N. As contagens não são estritamente monotónicas (S usou 70, M usou 80), porque resultaram da pesquisa de hiperparâmetros específica de cada tamanho. Ao fazer fine-tuning no teu próprio conjunto de dados, o número ideal de épocas depende do tamanho e da complexidade do conjunto de dados, não do tamanho do modelo. Usa a paragem antecipada (patience) para encontrar automaticamente o ponto certo de paragem.

  • Estes elementos provêm do ramo experimental que produziu os checkpoints base e foram registados em train_args para garantir a reprodutibilidade. Não são definições configuráveis pelo utilizador em default.yaml, e passá-los para model.train() gera um erro de argumento inválido, porque o pacote lançado não os lê. Não precisas de os definir ao fazer fine-tuning; consulta Parâmetros internos de treino para veres os respetivos valores por tamanho de modelo.

  • Não. Cada checkpoint de COCO foi ajustado a partir de um checkpoint Objects365v1 do mesmo tamanho que já tinha sido treinado durante 150 épocas, conforme descrito em Fase 1: Pré-treino em Objects365 e no artigo do YOLO26. Não existe uma execução de COCO desde o zero por detrás dos valores publicados, pelo que uma comparação desde o zero com esses valores não é equivalente.

  • Estão dentro dos checkpoints e são apresentados na Ultralytics Platform. Cada checkpoint armazena o results.csv completo, por época, da respetiva execução, pelo que basta colocar um ficheiro .pt num projeto da Platform para visualizar as perdas, a progressão do mAP e as taxas de aprendizagem sem escrever código. Consulta Ver as curvas de treino. A fase de Objects365 tem o seu próprio registo nos checkpoints yolo26*-objv1-150.pt.

  • Os teus resultados ficarão próximos das métricas publicadas, mas não serão idênticos. Para obter uma configuração idêntica, muda para o commit registado no checkpoint e treina nesse ramo. Consulta Verificar a revisão do código.

Comentários