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.
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=8no pré-treino,close_mosaic=10no 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 COCO | Pesos iniciais |
|---|---|
yolo26n.pt | yolo26n-objv1-150.pt |
yolo26s.pt | yolo26s-objv1-150.pt |
yolo26m.pt | yolo26m-objv1-150.pt |
yolo26l.pt | yolo26l-objv1-150.pt |
yolo26x.pt | yolo26x-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ção | Valor |
|---|---|
data | Objects365v1 |
epochs | 150 |
imgsz | 640 |
batch | 128 |
optimizer | MuSGD |
lr0 / lrf | 0.01 / 0.01 |
momentum | 0.937 |
weight_decay | 0.0005 |
warmup_epochs | 1 (2 para X) |
close_mosaic | 8 |
box / cls / dfl | 7.5 / 0.5 / 6.0 |
| Aumento de dados | N | S | M | L | X |
|---|---|---|---|---|---|
mosaic | 1.0 | 1.0 | 1.0 | 1.0 | 1.0 |
mixup | 0.0 | 0.05 | 0.15 | 0.15 | 0.2 |
copy_paste | 0.1 | 0.15 | 0.4 | 0.5 | 0.6 |
scale | 0.5 | 0.9 | 0.9 | 0.9 | 0.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ção | N | S | M | L | X |
|---|---|---|---|---|---|
muon_w | 0.45 | 0.5 | 0.45 | 0.45 | 0.5 |
sgd_w | 0.55 | 0.5 | 0.55 | 0.55 | 0.6 |
o2m | 0.1 | 0.1 | 0.1 | 1.0 | 1.0 |
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:
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: MuSGDIsto 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 cb13d5f9cfbd6f299da3620c625f81d721dc2849Os 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ção | 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 |
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ção | 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 |
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ção | 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 |
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ção | Descrição | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | Peso da atualização Muon no MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | Peso da atualização SGD no MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Peso interno da classificação | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | Peso da perda da cabeça um-para-muitos | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Atribuição de rótulos top-k | 8 | 5 | 5 | 5 | 5 |
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#
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=MuSGDpara 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.5se a orientação vertical variar - Aumentar
degreesse os objetos aparecerem com rotações arbitrárias - Ajustar
hsv_sehsv_vse 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#
| Modelo | Mais indicado para | Orientações sobre o tamanho do batch |
|---|---|---|
| YOLO26n | Dispositivos de edge, dispositivos móveis, tempo real em CPU | Batches grandes (64-128) em GPUs de consumo |
| YOLO26s | Equilíbrio entre velocidade e precisão | Batches médios (32-64) |
| YOLO26m | Maior precisão com computação moderada | Batches menores (16-32) |
| YOLO26l | Elevada precisão quando há uma GPU disponível | Lotes pequenos (8-16) ou várias GPUs |
| YOLO26x | Precisão máxima, implementação em servidor | Lotes 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 à chavetrain_args, ou usamodel.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_argspara garantir a reprodutibilidade. Não são definições configuráveis pelo utilizador emdefault.yaml, e passá-los paramodel.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.csvcompleto, por época, da respetiva execução, pelo que basta colocar um ficheiro.ptnum 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 checkpointsyolo26*-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.