YOLO Vision 2026:

Ricetta di addestramento di YOLO26#

Introduzione#

Questa guida documenta la ricetta di addestramento esatta usata per produrre i checkpoint ufficiali YOLO26 preaddestrati su COCO. Ogni iperparametro mostrato qui è già incorporato nei pesi .pt rilasciati, insieme al log di addestramento per epoca e alla revisione del codice dell'esecuzione; tutto può essere ispezionato programmaticamente.

Sapere cosa è stato incluso nei checkpoint ufficiali — non solo l'architettura, ma anche le pianificazioni del learning rate, le pipeline di augmentation e i pesi delle loss che ne hanno determinato le prestazioni — ti aiuta a prendere decisioni migliori durante il fine-tuning: quali augmentation dei dati mantenere, quali pesi della funzione di loss modificare e quali impostazioni dell'ottimizzatore funzionano meglio in base alle dimensioni del tuo dataset.

Leggi l'articolo per una visione completa

Questa pagina illustra gli iperparametri registrati nei checkpoint rilasciati. Per conoscere le motivazioni alla base di queste scelte, inclusi l'architettura, le modifiche alla loss e all'assegnazione delle label e gli studi di ablazione, leggi Ultralytics YOLO26: Unified Real-Time End-to-End Vision Models.

Panoramica dell'addestramento#

Tutti i modelli base YOLO26 sono stati addestrati in due fasi: preaddestramento su Objects365v1 per 150 epoche, seguito dal fine-tuning su COCO. Entrambe le fasi sono state eseguite a una risoluzione di 640x640 con l'ottimizzatore MuSGD e una batch size di 128. Nessun checkpoint YOLO26 è stato addestrato su COCO partendo da pesi casuali; per questo la fase COCO è breve per la maggior parte delle dimensioni e gli iperparametri della fase COCO sono stati individuati tramite una ricerca evolutiva. I log e le metriche completi dell'addestramento per ogni dimensione del modello sono archiviati nei checkpoint rilasciati e visualizzati come grafici su Ultralytics Platform.

Scelte progettuali principali per tutte le dimensioni:

  • Preaddestramento su Objects365 per ogni dimensione prima della fase COCO
  • Addestramento end-to-end (end2end=True) con una head one-to-one senza NMS
  • Ottimizzatore MuSGD che combina SGD con aggiornamenti ortogonalizzati in stile Muon per le matrici dei pesi (pesi lineari 2D e filtri convoluzionali 4D, che vengono rimodellati in 2D)
  • Augmentation mosaic intensiva (probabilità ~0.9-1.0) disabilitata nelle epoche finali (close_mosaic=8 nel preaddestramento, close_mosaic=10 su COCO)
  • Augmentation aggressiva della scala (0.5-0.95) per gestire oggetti di dimensioni diverse
  • Rotazione/shear minimi per la maggior parte delle dimensioni, mantenendo bassa la distorsione geometrica

Fase 1: preaddestramento su Objects365#

Ogni checkpoint YOLO26 su COCO è stato sottoposto a fine-tuning a partire da un checkpoint Objects365v1 della stessa dimensione. Anche questi pesi preaddestrati sono pubblicati e documentati nella pagina del dataset Objects365. Ogni checkpoint COCO indica i pesi iniziali nella configurazione di addestramento incorporata nel file .pt; la sezione Ispezione degli argomenti di addestramento dei checkpoint YOLO26 qui sotto mostra come leggerli:

Checkpoint COCOPesi iniziali
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

Il preaddestramento ha utilizzato principalmente le impostazioni predefinite, anziché valori ricercati. lr0, lrf, momentum, weight_decay, box e cls corrispondono a default.yaml, mentre warmup_epochs, close_mosaic e dfl sono stati sovrascritti. Le impostazioni sono condivise tra le dimensioni, fatta eccezione per warmup_epochs su X, i livelli di augmentation e i pesi interni di MuSGD e della head elencati dopo le tabelle:

ImpostazioneValore
dataObjects365v1
epochs150
imgsz640
batch128
optimizerMuSGD
lr0 / lrf0.01 / 0.01
momentum0.937
weight_decay0.0005
warmup_epochs1 (2 per X)
close_mosaic8
box / cls / dfl7.5 / 0.5 / 6.0
AugmentationNSMLX
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

Queste tabelle riguardano le impostazioni che determinano il preaddestramento, non la configurazione completa. I checkpoint registrano oltre 100 argomenti; esegui quindi train_args come mostrato di seguito per ottenere l'elenco autorevole.

Avanzato: parametri interni del preaddestramento

Il preaddestramento ha inoltre variato lo stesso tipo di parametri del ramo sperimentale descritti in Parametri interni di addestramento. cls_w era impostato su 1.0 per ogni dimensione:

ImpostazioneNSMLX
muon_w0.450.50.450.450.5
sgd_w0.550.50.550.550.6
o2m0.10.10.11.01.0
Partire dai pesi Objects365

Non ti serve il dataset Objects365 per riutilizzare la fase 1. I checkpoint preaddestrati vengono scaricati automaticamente come qualsiasi altra risorsa Ultralytics, quindi puoi eseguire il fine-tuning sul tuo dataset:

from ultralytics import YOLO

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

Per eseguire nuovamente la fase COCO, parti invece dagli stessi pesi e passa i valori dell'ottimizzatore, della loss e dell'augmentation della fase 2 per quella dimensione, indicati nelle tabelle seguenti. Queste tabelle omettono argomenti non predefiniti minori come warmup_momentum, warmup_bias_lr, perspective, flipud e cutmix; esegui quindi train_args dal checkpoint per ottenere la configurazione esatta. I parametri interni vengono rifiutati dal pacchetto rilasciato e richiedono il ramo sperimentale.

Ispezione degli argomenti di addestramento dei checkpoint YOLO26#

Ogni checkpoint Ultralytics memorizza la configurazione completa di addestramento usata per produrlo, così puoi verificare personalmente ogni numero riportato in questa pagina:

Ispeziona gli argomenti di addestramento del checkpoint
from ultralytics import YOLO

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

L'output elenca la configurazione completa con oltre 100 voci, inclusi tutti i valori della ricetta documentati in questa pagina. Un estratto per 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

Funziona con qualsiasi checkpoint .pt, sia con i rilasci ufficiali sia con i tuoi modelli sottoposti a fine-tuning. Per l'elenco completo degli argomenti di addestramento configurabili, consulta il riferimento della configurazione di addestramento.

Visualizzazione delle curve di addestramento#

train_args non è l'unico elemento memorizzato. Ogni checkpoint contiene anche il results.csv completo, epoca per epoca, dell'esecuzione che lo ha prodotto, insieme alle metriche finali di validazione. Le curve dei checkpoint ufficiali YOLO26 sono pubblicate su Ultralytics Platform e qualsiasi file .pt può essere trascinato e rilasciato su un progetto per tracciare gli stessi dati, con i metadati estratti automaticamente dal file.

Ogni checkpoint copre la fase che lo ha prodotto, quindi le curve COCO si trovano in yolo26s.pt e le curve Objects365 delle 150 epoche si trovano in yolo26s-objv1-150.pt.

Verifica della revisione del codice#

ckpt["git"] registra il commit che ha prodotto il checkpoint e tali commit risiedono nei rami sperimentali pubblici del repository Ultralytics, quindi puoi estrarre il codice di addestramento esatto:

from ultralytics import YOLO

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

I rami sperimentali contengono lavori che non sono mai confluiti in main, come o2m e cls_w configurabili. L'addestramento su main con gli iperparametri documentati di seguito non sarà identico a livello di bit, ma produrrà risultati a una distanza trascurabile dalle metriche pubblicate.

Iperparametri di addestramento di YOLO26 per dimensione del modello#

Questi sono i valori della fase 2, applicati ai pesi Objects365 riportati sopra. Le tabelle seguenti raggruppano la ricetta per categoria: ottimizzatore e pianificazione, pesi della loss e augmentation. Ogni valore proviene direttamente da train_args, incorporato nei checkpoint rilasciati.

Ottimizzatore e learning rate#

Queste impostazioni dell'ottimizzatore e della pianificazione hanno guidato il fine-tuning su COCO per ogni dimensione; nota come il modello N si differenzi dagli altri:

ImpostazioneNSMLX
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
Strategia del learning rate

Il modello N ha utilizzato un learning rate iniziale più elevato con un decadimento ripido (lrf=0.0495), mentre i modelli S/M/L/X hanno utilizzato un LR iniziale molto più basso con una pianificazione più graduale (lrf=0.882). Questo riflette le diverse dinamiche di convergenza dei modelli più piccoli rispetto a quelli più grandi: i modelli più piccoli necessitano di aggiornamenti più aggressivi per apprendere efficacemente.

Pesi della loss#

I pesi della loss bilanciano le tre componenti della loss di rilevamento: la regressione IoU del bounding box (box), la classificazione (cls) e un termine di regressione della distanza del box (dfl). Nota che YOLO26 senza DFL riutilizza il guadagno dfl per pesare una loss L1 sulle distanze normalizzate dei box, anziché la distribution focal loss:

ImpostazioneNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

Il modello N dà priorità al termine di regressione della distanza dfl, mentre i modelli S/M/L/X spostano l'enfasi sulla regressione dei box basata su IoU. La loss di classificazione rimane relativamente uniforme per tutte le dimensioni.

Pipeline di augmentation#

Per una spiegazione dettagliata di ogni tecnica, consulta la guida all'augmentation dei dati YOLO.

ImpostazioneNSMLX
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

I valori indicati come ~0 sono inferiori a 0.01 nei checkpoint effettivi (ad esempio, degrees=0.00012 per il modello S): l'augmentation è di fatto disabilitata.

I modelli più grandi utilizzano complessivamente un'augmentation più aggressiva (mixup e scale più elevati), poiché hanno una capacità maggiore e traggono vantaggio da una regolarizzazione più intensa. Il modello N è l'unica dimensione con rotazione, shear e augmentation BGR significativi.

Parametri interni di addestramento#

Avanzato: parametri interni della pipeline

I checkpoint contengono anche parametri utilizzati nel ramo sperimentale di addestramento, ma non esposti come impostazioni configurabili dall'utente in default.yaml:

ImpostazioneDescrizioneNSMLX
muon_wPeso dell'aggiornamento Muon in MuSGD0.5280.4360.4360.4360.436
sgd_wPeso dell'aggiornamento SGD in MuSGD0.6740.4790.4790.4790.479
cls_wPeso interno della classificazione2.743.483.483.483.48
o2mPeso della loss della head one-to-many1.00.7050.7050.7050.705
topkAssegnazione delle label top-k85555

Consulta la voce delle FAQ su questi parametri per sapere cosa significano durante il fine-tuning.

Fine-tuning di YOLO26 sul tuo dataset#

Quando esegui il fine-tuning di YOLO26 sul tuo dataset, non devi replicare l'intera ricetta di preaddestramento. I pesi preaddestrati incorporano già le conoscenze sull'augmentation e sull'ottimizzazione acquisite durante l'addestramento su COCO. Per altre best practice generali sull'addestramento, consulta Consigli per l'addestramento dei modelli.

Fine-tuning con le impostazioni predefinite#

Esegui il fine-tuning con i valori predefiniti
from ultralytics import YOLO

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

Il fine-tuning con le impostazioni predefinite è un'ottima baseline. Modifica gli iperparametri solo se hai un motivo specifico per farlo.

Quando modificare gli iperparametri di YOLO26#

Dataset piccoli (< 1.000 immagini):

  • Riduci l'intensità dell'augmentation: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Riduci il learning rate usando un ottimizzatore esplicito: optimizer=AdamW, lr0=0.001
  • Usa meno epoche con patience: epochs=50, patience=20
  • Valuta di congelare i layer del backbone: freeze=10

Dataset grandi (> 50.000 immagini):

  • Avvicinati maggiormente alla ricetta di preaddestramento
  • Valuta optimizer=MuSGD per esecuzioni più lunghe
  • Aumenta l'augmentation: mosaic=1.0, mixup=0.3, scale=0.9

Immagini specifiche del dominio (aeree, mediche, subacquee):

  • Aumenta flipud=0.5 se l'orientamento verticale varia
  • Aumenta degrees se gli oggetti appaiono con rotazioni arbitrarie
  • Modifica hsv_s e hsv_v se le condizioni di illuminazione differiscono significativamente da COCO

Per l'ottimizzazione automatizzata degli iperparametri, consulta la guida al tuning degli iperparametri.

Scegli una dimensione del modello#

ModelloIdeale perIndicazioni sulla batch size
YOLO26nDispositivi edge, mobile, esecuzione in tempo reale su CPUBatch grandi (64-128) su GPU consumer
YOLO26sVelocità e accuratezza bilanciateBatch medie (32-64)
YOLO26mMaggiore accuratezza con calcolo moderatoBatch più piccole (16-32)
YOLO26lElevata accuratezza quando è disponibile una GPUBatch di piccole dimensioni (8-16) o più GPU
YOLO26xMassima accuratezza, distribuzione su serverBatch di piccole dimensioni (4-8) o più GPU

Per le opzioni di esportazione e distribuzione, consulta la guida all'esportazione e le opzioni di distribuzione dei modelli.

Conclusioni#

I checkpoint di YOLO26 includono la ricetta completa per l'addestramento, quindi gli iperparametri esatti alla base di ogni dimensione del modello sono sempre a una ricerca di train_args di distanza. Inizia il fine-tuning dai valori predefiniti, apporta modifiche deliberate usando le tabelle di questa pagina e verifica ogni modifica sul tuo set di validazione. Se durante il processo hai domande, chiedi alla community nel repository Ultralytics su GitHub o nel server Discord di Ultralytics.

FAQ#

  • Carica il checkpoint con torch.load() e accedi alla chiave train_args, oppure usa model.ckpt["train_args"] con l'API Ultralytics. Consulta Ispezione degli argomenti di addestramento del checkpoint YOLO26 per esempi completi.

  • Ogni dimensione ha ricevuto le stesse 150 epoche di preaddestramento su Objects365, quindi i conteggi relativi a COCO coprono solo la fase di fine-tuning. I modelli più grandi convergono su COCO in meno di queste epoche: 40 per X contro 245 per N. I conteggi non sono strettamente monotoni (S ne ha usate 70, M 80) perché sono il risultato della ricerca degli iperparametri specifica per ogni dimensione. Quando esegui il fine-tuning sul tuo dataset, il numero ottimale di epoche dipende dalle dimensioni e dalla complessità del dataset, non dalla dimensione del modello. Usa l'arresto anticipato (patience) per trovare automaticamente il punto di arresto corretto.

  • Provengono dal ramo sperimentale che ha prodotto i checkpoint di base e sono registrati in train_args per garantire la riproducibilità. Non sono impostazioni configurabili dall'utente in default.yaml e passarle a model.train() genera un errore di argomento non valido, perché il pacchetto rilasciato non le legge. Non devi impostarle durante il fine-tuning; consulta Parametri interni di addestramento per i relativi valori per ogni dimensione del modello.

  • No. Ogni checkpoint COCO è stato sottoposto a fine-tuning a partire da un checkpoint Objects365v1 della stessa dimensione, già addestrato per 150 epoche, come descritto in Fase 1: preaddestramento su Objects365 e nel paper YOLO26. Non esiste un'esecuzione su COCO da zero alla base dei numeri pubblicati, quindi un confronto da zero con quei numeri non è omogeneo.

  • All'interno dei checkpoint e visualizzati su Ultralytics Platform. Ogni checkpoint memorizza il results.csv completo per epoca della propria esecuzione, quindi trascinando un file .pt in un progetto Platform puoi tracciare le loss, l'andamento di mAP e i learning rate senza scrivere codice. Consulta Visualizzazione delle curve di addestramento. La fase Objects365 ha il proprio log nei checkpoint yolo26*-objv1-150.pt.

  • Otterrai metriche vicine a quelle pubblicate, ma non identiche. Per una configurazione identica, estrai il commit registrato nel checkpoint ed esegui l'addestramento su quel ramo. Consulta Verifica della revisione del codice.

Commenti