Ultralytics YOLO27:
Get Started

Receita de treinamento do YOLO26#

Introdução#

Este guia documenta a receita exata de treinamento usada para produzir os pontos de verificação pré-treinados oficiais do YOLO26 no COCO. Cada hiperparâmetro apresentado aqui já está incorporado nos pesos .pt disponibilizados, junto com o registro de treinamento por época e a revisão do código usada na execução; tudo isso pode ser inspecionado programaticamente.

Saber o que foi usado nos pontos de verificação oficiais — não apenas a arquitetura, mas também os agendamentos de taxa de aprendizado, os pipelines de aumento de dados e os pesos da função de perda que moldaram o desempenho — ajuda você a tomar decisões melhores ao fazer ajuste fino: quais aumentos de dados manter, quais pesos da função de perda ajustar e quais configurações do otimizador funcionam melhor para o tamanho do seu conjunto de dados.

Leia o artigo para entender o panorama completo

Esta página aborda os hiperparâmetros registrados nos pontos de verificação disponibilizados. Para entender o raciocínio por trás deles, incluindo a arquitetura, as alterações na função de perda e na atribuição de rótulos, além dos estudos de ablação, leia Ultralytics YOLO26: modelos de visão unificados, em tempo real e ponta a ponta.

Visão geral do treinamento#

Todos os modelos base do YOLO26 foram treinados em duas etapas: pré-treinamento em Objects365v1 por 150 épocas, seguido pelo ajuste fino no COCO. Ambas as etapas foram executadas na resolução de 640x640, com o otimizador MuSGD e tamanho de lote 128. Nenhum ponto de verificação do YOLO26 foi treinado no COCO com pesos aleatórios, por isso a etapa do COCO é curta para a maioria dos tamanhos; os hiperparâmetros dessa etapa foram encontrados por meio de busca evolutiva. Os registros completos de treinamento e as métricas de cada tamanho de modelo são armazenados nos pontos de verificação disponibilizados e renderizados como gráficos na Ultralytics Platform.

Principais decisões de projeto comuns a todos os tamanhos:

  • Pré-treinamento em Objects365 para todos os tamanhos antes da etapa do COCO
  • Treinamento com duas cabeças usando supervisão um-para-muitos e um-para-um; por padrão, a inferência usa NMS, enquanto nms=False seleciona a cabeça sem NMS
  • Otimizador MuSGD que combina SGD com atualizações ortogonalizadas no estilo Muon para matrizes de pesos (pesos lineares 2D e filtros convolucionais 4D, que são remodelados para 2D)
  • Aumento de mosaico intenso (~0.9-1.0 de probabilidade), desativado nas épocas finais (close_mosaic=8 no pré-treinamento, close_mosaic=10 no COCO)
  • Aumento de escala agressivo (0.5-0.95) para lidar com objetos de diferentes tamanhos
  • Rotação/cisalhamento mínimos na maioria dos tamanhos, mantendo baixa a distorção geométrica

Etapa 1: pré-treinamento no Objects365#

Cada ponto de verificação do YOLO26 para COCO foi ajustado a partir de um ponto de verificação do Objects365v1 do mesmo tamanho. Esses pesos pré-treinados também foram publicados e estão documentados na página do conjunto de dados Objects365. Cada ponto de verificação do COCO identifica os pesos iniciais na configuração de treinamento incorporada no arquivo .pt. A seção Inspecionando os argumentos de treinamento dos pontos de verificação do YOLO26, abaixo, mostra como ler essa configuração:

Ponto de verificação 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é-treinamento usou principalmente configurações padrão, em vez de valores encontrados por busca. lr0, lrf, momentum, weight_decay, box e cls correspondem a default.yaml, enquanto warmup_epochs, close_mosaic e dfl foram substituídos. As configurações são compartilhadas entre os tamanhos, com exceção de warmup_epochs no X, das intensidades de aumento de dados e dos pesos internos do MuSGD e da cabeça listados após as tabelas:

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

Essas tabelas abrangem as configurações que moldam o pré-treinamento, não a configuração completa. Os pontos de verificação registram mais de 100 argumentos; portanto, para obter a lista oficial, imprima train_args conforme mostrado abaixo.

Avançado: parâmetros internos de pré-treinamento

O pré-treinamento também variou o mesmo tipo de parâmetros de ramificações experimentais descrito em Parâmetros internos de treinamento. cls_w foi 1.0 para todos os tamanhos:

ConfiguraçãoNSMLX
muon_w0.450.50.450.450.5
sgd_w0.550.50.550.550.6
o2m0.10.10.11.01.0
Começa 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, para que possas ajustá-los ao 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 repetir a etapa COCO, começa pelos mesmos pesos e passa os valores do otimizador, da função de perda e da augmentação da etapa 2 correspondentes a esse tamanho, indicados nas tabelas abaixo. As tabelas omitem argumentos menores não predefinidos, como warmup_momentum, warmup_bias_lr, perspective, flipud e cutmix; por isso, imprime train_args a partir do checkpoint para obter a configuração exata. O pacote publicado rejeita os parâmetros internos; para os usar, precisas da ramificação experimental.

Inspecionar os argumentos de treino do checkpoint YOLO26#

Cada checkpoint da Ultralytics armazena a configuração de treino completa usada para o gerar, para que possas verificar cada valor 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 de 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 as versões oficiais como os teus próprios modelos ajustados. Para consultar a lista completa dos argumentos de treino configuráveis, vê 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 inclui o results.csv completo, época a época, da execução que o gerou, juntamente com as métricas finais de validação. As curvas dos checkpoints oficiais YOLO26 estão publicadas na Ultralytics Platform, e podes arrastar e largar qualquer ficheiro .pt num projeto para gerar gráficos com os mesmos dados; os metadados são extraídos automaticamente do ficheiro.

Cada checkpoint corresponde à etapa que o gerou: as curvas COCO estão em yolo26s.pt e as curvas dos 150 epochs do Objects365 estão em yolo26s-objv1-150.pt.

Verificar a revisão do código#

ckpt["git"] regista o commit que gerou o checkpoint. Como esses commits estão em ramificações experimentais públicas do repositório da Ultralytics, podes obter exatamente o código de treino utilizado:

from ultralytics import YOLO

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

As ramificações experimentais incluem funcionalidades que nunca foram integradas em main, como o2m e cls_w configuráveis. Se treinares em main com os hiperparâmetros documentados abaixo, os resultados não serão idênticos bit a bit, mas ficarão praticamente iguais às métricas publicadas.

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

Estes são os valores da etapa 2, aplicados sobre os pesos do Objects365 indicados acima. As tabelas abaixo organizam a receita por categoria: otimizador e programação, pesos das perdas e augmentação. Todos os valores vêm diretamente do train_args incorporado nos checkpoints publicados.

Otimizador e taxa de aprendizagem#

Estas definições do otimizador e da programação foram usadas no ajuste fino no COCO para cada tamanho; repara como o modelo N se distingue dos restantes:

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

O modelo N usou uma taxa de aprendizagem inicial mais alta, com uma descida acentuada (lrf=0.0495), enquanto os modelos S/M/L/X usaram uma taxa de aprendizagem inicial muito mais baixa e uma programação mais gradual (lrf=0.882). Isto reflete as diferentes dinâmicas de convergência dos modelos mais pequenos e maiores: os modelos mais pequenos precisam de atualizações mais agressivas para aprenderem eficazmente.

Pesos das perdas#

Os pesos das perdas equilibram as três componentes da função de 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, que não usa DFL, reaproveita o ganho dfl para ponderar uma perda L1 nas distâncias normalizadas da caixa, em vez de uma perda focal de distribuição:

Configuraçã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 dão mais ênfase à regressão da caixa baseada em IoU. A perda de classificação mantém-se relativamente consistente em todos os tamanhos.

Pipeline de augmentação#

Para uma explicação detalhada de cada técnica, consulta o guia de augmentaçã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

Os valores apresentados como ~0 são inferiores a 0,01 nos checkpoints reais (por exemplo, degrees=0.00012 no modelo S), pelo que a augmentação está efetivamente desativada.

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

Parâmetros internos de treino#

Avançado: parâmetros internos do pipeline

Os checkpoints também contêm parâmetros usados na ramificação experimental de treino, mas que não estão disponíveis como definições configuráveis pelo utilizador em default.yaml:

Configuraçã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 de classificação interno2.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 pergunta frequente sobre estes parâmetros para saber o que significam ao ajustar um modelo.

Ajustar o YOLO26 ao teu próprio conjunto de dados#

Ao ajustar o YOLO26 ao teu próprio conjunto de dados, não precisas de reproduzir toda a receita de pré-treino. Os pesos pré-treinados já incorporam os conhecimentos de augmentação e otimização obtidos no treino com COCO. Para conheceres outras boas práticas gerais de treino, consulta as dicas para o treino de modelos.

Ajustar com as definições predefinidas#

Ajustar com as predefinições
from ultralytics import YOLO

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

O ajuste fino com as predefinições é uma excelente base. Altera os hiperparâmetros apenas se tiveres uma razão específica para o fazer.

Quando ajustar os hiperparâmetros do YOLO26#

Conjuntos de dados pequenos (< 1.000 imagens):

  • Reduz a intensidade da augmentação: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Reduz a taxa de aprendizagem e especifica um otimizador: optimizer=AdamW, lr0=0.001
  • Usa menos epochs e define a paciência: epochs=50, patience=20
  • Considera congelar as camadas do backbone: freeze=10

Conjuntos de dados grandes (> 50.000 imagens):

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

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

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

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

Escolher o tamanho do modelo#

ModeloIdeal paraRecomendações para o tamanho do batch
YOLO26nDispositivos de edge, dispositivos móveis e 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 capacidade de computação moderadaBatches mais pequenos (16-32)
YOLO26lAlta precisão quando há uma GPU disponívelBatches pequenos (8-16) ou várias GPUs
YOLO26xPrecisão máxima, implementação em servidorBatches 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 de modelos.

Conclusão#

Os checkpoints YOLO26 incluem a receita de treino completa, pelo que basta uma consulta a train_args para obter os hiperparâmetros exatos de cada tamanho de modelo. Começa o ajuste fino com as predefinições, faz alterações deliberadas com base nas tabelas desta página e valida cada alteração no teu próprio conjunto de validação. Se surgirem dúvidas pelo caminho, pergunta à comunidade no repositório da Ultralytics no GitHub ou no servidor Discord da Ultralytics.

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 veres exemplos completos.

  • Todos os tamanhos receberam os mesmos 150 epochs de pré-treino com Objects365, pelo que os valores de COCO abrangem apenas a etapa de ajuste fino. Os modelos maiores convergem no COCO em menos epochs: 40 no caso do X, contra 245 no N. Os valores não seguem uma progressão estritamente monotónica (o S usou 70 e o M, 80), pois resultaram da pesquisa de hiperparâmetros para cada tamanho. Ao ajustar o modelo ao teu próprio conjunto de dados, o número ideal de epochs 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 de paragem certo.

  • Estes parâmetros vêm da ramificação experimental que gerou os checkpoints base e estão registados em train_args para garantir a reprodutibilidade. Não são definições configuráveis pelo utilizador em default.yaml, e passá-los a model.train() gera um erro de argumento inválido, porque o pacote publicado não os lê. Não precisas de os definir durante o ajuste fino; consulta Parâmetros internos de treino para veres os valores de cada tamanho de modelo.

  • Não. Cada checkpoint COCO foi ajustado a partir de um checkpoint Objects365v1 do mesmo tamanho, já treinado durante 150 epochs, conforme descrito em Etapa 1: pré-treino com Objects365 e no artigo do YOLO26. Os resultados publicados não incluem nenhuma execução COCO desde o início, pelo que uma comparação com esses resultados não seria equivalente.

  • Estão nos checkpoints e representados graficamente na Ultralytics Platform. Cada checkpoint armazena o results.csv completo da execução, época a época, pelo que basta largar um ficheiro .pt num projeto da Platform para representar graficamente as perdas, a evolução do mAP e as taxas de aprendizagem, sem escrever código. Consulta Ver as curvas de treino. A etapa Objects365 tem o seu próprio registo nos checkpoints yolo26*-objv1-150.pt.

  • Os resultados serão próximos das métricas publicadas, mas não idênticos. Para reproduzir exatamente a configuração, obtém o commit registado no checkpoint e treina nessa ramificação. Consulta Verificar a revisão do código.

Comentários