YOLO Vision 2026:

Ricetta di addestramento YOLO26#

Introduzione#

Questa guida documenta la ricetta di training esatta utilizzata per produrre i checkpoint preaddestrati ufficiali di YOLO26 su COCO. Ogni iperparametro mostrato qui è già incorporato nei pesi rilasciati di .pt e può essere ispezionato a livello programmatico.

Conoscere ciò che è stato incluso nei checkpoint ufficiali — non solo l'architettura, ma anche gli scheduling del learning rate, le pipeline di augmentation e i pesi di loss che ne hanno modellato le prestazioni — ti aiuta a prendere decisioni migliori durante il fine-tuning: quali data augmentations mantenere, quali pesi della loss function regolare e quali impostazioni dell'optimizer funzionano meglio per le dimensioni del tuo dataset.

Panoramica dell'addestramento#

Tutti i modelli base di YOLO26 sono stati addestrati su COCO a una risoluzione di 640x640 utilizzando l'ottimizzatore MuSGD con batch size 128. Anziché partire da pesi casuali in un'unica esecuzione, i modelli sono stati inizializzati da pesi preaddestrati intermedi e perfezionati con gli iperparametri trovati tramite evolutionary search. I log di addestramento completi e le metriche per ogni dimensione di modello sono disponibili su Ultralytics Platform.

Scelte di design chiave per tutte le dimensioni:

  • Addestramento end-to-end (end2end=True) con head one-to-one priva di NMS
  • MuSGD optimizer che combina SGD con aggiornamenti ortogonalizzati in stile Muon per le matrici di pesi (pesi lineari 2D e filtri di convoluzione 4D, che vengono rimodellati in 2D)
  • Pesante augmentation mosaic (probabilità ~0.9-1.0) disattivata nelle ultime 10 epoche (close_mosaic=10)
  • Aggressive scale augmentation (0.56-0.95) per gestire oggetti di diverse dimensioni
  • Rotazione/shear minimi per la maggior parte delle dimensioni, mantenendo bassa la distorsione geometrica

Ispezione degli argomenti di addestramento dei checkpoint YOLO26#

Ogni checkpoint Ultralytics memorizza la configurazione di addestramento completa utilizzata per produrlo, così puoi verificare tu stesso ogni numero presente 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 di oltre 100 voci, incluso ogni valore di ricetta documentato 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

Questo funziona per qualsiasi checkpoint di .pt — sia le release ufficiali che i tuoi modelli sottoposti a fine-tuning. Per l'elenco completo degli argomenti di addestramento configurabili, consulta il training configuration reference.

Iperparametri di addestramento YOLO26 per dimensione del modello#

Le tabelle sottostanti raggruppano la ricetta per categoria: optimizer e scheduling, pesi di loss e augmentation. Ogni valore proviene direttamente da train_args incorporato nei checkpoint rilasciati.

Ottimizzatore e Learning Rate#

Queste impostazioni dell'ottimizzatore e dello schedule hanno guidato il preaddestramento su COCO per ogni dimensione; nota come il modello N si distingua dal resto:

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 di 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 uno scheduling più graduale (lrf=0.882). Ciò riflette le diverse dinamiche di convergenza tra modelli più piccoli e più grandi: i modelli più piccoli richiedono aggiornamenti più aggressivi per apprendere in modo efficace.

Pesi della funzione di perdita#

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

ImpostazioneNSMLX
box5.639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

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

Pipeline di Augmentation#

Per una spiegazione dettagliata di ciascuna tecnica, consulta la YOLO Data Augmentation guide.

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 un'augmentation complessivamente più aggressiva (mixup, copy-paste e scale più elevati), poiché dispongono di maggiore capacità e beneficiano di una regularization più forte. Il modello N è l'unica dimensione con rotazione, shear e augmentation BGR significative.

Parametri di addestramento interni#

Avanzato: parametri della pipeline interna

I checkpoint contengono anche parametri utilizzati nella pipeline di addestramento interna 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 di classificazione interno2.743.483.483.483.48
o2mPeso della loss dell'head one-to-many1.00.7050.7050.7050.705
topkAssegnazione dell'etichetta top-k85555

Consulta la FAQ entry on these parameters per comprendere il loro significato durante il fine-tuning.

Fine-Tuning di YOLO26 sul tuo dataset#

Quando esegui il fine-tuning di YOLO26 sul tuo dataset, non è necessario replicare l'intera ricetta di preaddestramento. I pesi preaddestrati codificano già la conoscenza di augmentation e ottimizzazione derivante dall'addestramento su COCO. Per le best practice generali sull'addestramento, consulta Tips for Model Training.

Fine-Tuning con le impostazioni predefinite#

Fine-tuning con le impostazioni predefinite
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 rappresenta una solida base di partenza. Regola gli iperparametri solo se ne hai una ragione specifica.

Quando regolare gli iperparametri di YOLO26#

Dataset piccoli (< 1.000 immagini):

  • Riduci l'intensità dell'augmentation: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Abbassa il learning rate: lr0=0.001
  • Utilizza meno epochs con patience: epochs=50, patience=20
  • Valuta il congelamento dei layer del backbone: freeze=10

Dataset grandi (> 50.000 immagini):

  • Segui più da vicino la procedura di pre-addestramento
  • Valuta optimizer=MuSGD per esecuzioni più lunghe
  • Aumenta l'augmentation: mosaic=1.0, mixup=0.3, scale=0.9

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

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

Per l'ottimizzazione automatizzata degli iperparametri, consulta l'Hyperparameter Tuning guide.

Scegliere la dimensione del modello#

ModelloIdeale perGuida alla dimensione del batch
YOLO26nDispositivi edge, mobile, tempo reale su CPUBatch grandi (64-128) su GPU consumer
YOLO26sBilanciamento tra velocità e accuratezzaBatch medi (32-64)
YOLO26mAccuratezza superiore con calcolo moderatoBatch più piccoli (16-32)
YOLO26lAlta accuratezza quando la GPU è disponibileBatch piccoli (8-16) o multi-GPU
YOLO26xMassima accuratezza, distribuzione serverBatch piccoli (4-8) o multi-GPU

Per le opzioni di esportazione e distribuzione, consulta l'Export guide e Model Deployment Options.

Conclusione#

I checkpoint di YOLO26 vengono forniti con la loro ricetta di addestramento completa incorporata, quindi gli iperparametri esatti dietro ogni dimensione di modello sono sempre a portata di una ricerca train_args. Inizia il fine-tuning dai valori predefiniti, regola con attenzione utilizzando le tabelle di questa pagina e verifica ogni modifica rispetto al tuo set di validazione. Se sorgono domande lungo il percorso, chiedi alla community sul Ultralytics GitHub repository o sul Ultralytics Discord server.

FAQ#

  • Carica il checkpoint con torch.load() e accedi alla chiave train_args, oppure usa model.ckpt["train_args"] con la API di Ultralytics. Vedi Inspecting YOLO26 Checkpoint Training Args per esempi completi.

  • I modelli più grandi generalmente richiedono meno epoche su COCO perché la loro maggiore capacità accelera la convergenza — il modello X è stato addestrato per 40 epoche rispetto alle 245 di N — sebbene i conteggi non siano strettamente monotonici (S ha usato 70, M 80). 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'early stopping (patience) per trovare automaticamente il punto di arresto corretto.

  • Di solito non è necessario scegliere: con il valore predefinito optimizer=auto, Ultralytics seleziona automaticamente MuSGD per le esecuzioni di addestramento più lunghe (>10.000 iterazioni) e AdamW per quelle più brevi. Puoi impostare esplicitamente optimizer=MuSGD se preferisci. Per maggiori informazioni sul funzionamento di MuSGD, consulta la training documentation.

  • Questi sono parametri interni della pipeline di addestramento che ha prodotto i checkpoint di base, registrati in train_args per garantire la riproducibilità. Non sono impostazioni configurabili dall'utente in default.yaml, e passarli a model.train() genera un errore di argomento non valido: il pacchetto pubblico non li legge. Non è necessario E impostarli durante il fine-tuning; consulta Internal Training Parameters per i relativi valori per dimensione di modello.

  • Non esattamente: i checkpoint sono stati prodotti utilizzando un branch di addestramento interno con funzionalità aggiuntive non presenti nella codebase pubblica (come pesi o2m configurabili e cls_w). Puoi ottenere risultati molto vicini utilizzando gli iperparametri documentati in questa pagina con il pacchetto pubblico Ultralytics, ma una riproduzione esatta richiede il branch interno.

Commenti