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:
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: MuSGDQuesto 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:
| Impostazione | 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 |
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:
| Impostazione | 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 |
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.
| Impostazione | 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 |
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:
| Impostazione | Descrizione | N | S | M | L | X |
|---|---|---|---|---|---|---|
muon_w | Peso dell'aggiornamento Muon in MuSGD | 0.528 | 0.436 | 0.436 | 0.436 | 0.436 |
sgd_w | Peso dell'aggiornamento SGD in MuSGD | 0.674 | 0.479 | 0.479 | 0.479 | 0.479 |
cls_w | Peso di classificazione interno | 2.74 | 3.48 | 3.48 | 3.48 | 3.48 |
o2m | Peso della loss dell'head one-to-many | 1.0 | 0.705 | 0.705 | 0.705 | 0.705 |
topk | Assegnazione dell'etichetta top-k | 8 | 5 | 5 | 5 | 5 |
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#
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=MuSGDper 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.5se l'orientamento verticale varia - Aumenta
degreesse gli oggetti appaiono a rotazioni arbitrarie - Regola
hsv_sehsv_vse le condizioni di illuminazione differiscono significativamente da COCO
Per l'ottimizzazione automatizzata degli iperparametri, consulta l'Hyperparameter Tuning guide.
Scegliere la dimensione del modello#
| Modello | Ideale per | Guida alla dimensione del batch |
|---|---|---|
| YOLO26n | Dispositivi edge, mobile, tempo reale su CPU | Batch grandi (64-128) su GPU consumer |
| YOLO26s | Bilanciamento tra velocità e accuratezza | Batch medi (32-64) |
| YOLO26m | Accuratezza superiore con calcolo moderato | Batch più piccoli (16-32) |
| YOLO26l | Alta accuratezza quando la GPU è disponibile | Batch piccoli (8-16) o multi-GPU |
| YOLO26x | Massima accuratezza, distribuzione server | Batch 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 chiavetrain_args, oppure usamodel.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 esplicitamenteoptimizer=MuSGDse 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_argsper garantire la riproducibilità. Non sono impostazioni configurabili dall'utente indefault.yaml, e passarli amodel.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
o2mconfigurabili ecls_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.