Skip to main content

Ricetta per l'addestramento con YOLO26

Introduzione

Questa guida documenta l'esatta addestramento ricetta utilizzata per produrre gli ufficiali YOLO26 checkpoint pre-addestrati su COCO. Ogni iperparametri mostrato qui è già integrato nei pesi .pt rilasciati e può essere ispezionato a livello programmatico.

Capire come sono stati addestrati i modelli base ti aiuta a prendere decisioni migliori quando approcci di fine-tuning: quali data augmentations mantenere, quali loss function pesi regolare e quali impostazioni dell'ottimizzatore funzionano meglio per la dimensione del tuo dataset.

A chi è rivolta questa guida?

Questa guida è rivolta ai professionisti che desiderano comprendere cosa è confluito nei checkpoint ufficiali YOLO26 — non solo l'architettura, ma anche i learning rate programmi, le pipeline di aumento e i pesi di perdita che ne hanno determinato le prestazioni. Usa queste informazioni per fare scelte informate durante il fine-tuning sui tuoi dati.

Ispezione degli argomenti di addestramento

Ogni checkpoint Ultralytics memorizza la configurazione di addestramento completa utilizzata per produrlo. Puoi ispezionare queste impostazioni in qualsiasi momento:

Ispeziona gli argomenti di addestramento del checkpoint
from ultralytics import YOLO

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

Questo funziona per qualsiasi .pt checkpoint — sia le versioni ufficiali che i tuoi modelli personalizzati. Per l'elenco completo degli argomenti di addestramento configurabili, consulta la riferimento alla configurazione di addestramento.

Panoramica sull'addestramento

Tutti i modelli base YOLO26 sono stati addestrati su COCO a 640x640 risoluzione utilizzando l'ottimizzatore MuSGD con batch size 128. I modelli sono stati inizializzati da pesi pre-addestrati intermedi e perfezionati con iperparametri trovati tramite ricerca evolutiva. I log di addestramento completi e le metriche per ogni dimensione del 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
  • ottimizzatore MuSGD combinando SGD con aggiornamenti ortogonalizzati in stile Muon per i pesi conv
  • Pesante mosaic aumento (~0.9-1.0 di probabilità) disabilitato nelle ultime 10 epoche (close_mosaic=10)
  • Aggressivo aumento della scala (0.56-0.95) per gestire oggetti a diverse dimensioni
  • Rotazione/taglio minimo per la maggior parte delle dimensioni, mantenendo bassa la distorsione geometrica

Iperparametri per dimensione del modello

Ottimizzatore e tasso di apprendimento

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 tasso di apprendimento

Il modello N ha utilizzato un tasso di apprendimento 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 un programma più gentile (lrf=0.882). Ciò 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 di perdita

ImpostazioneNSMLX
box5,639.839.839.839.83
cls0.560.650.650.650.65
dfl9.040.960.960.960.96

Il modello N dà priorità alla perdita DFL, mentre i modelli S/M/L/X spostano l'enfasi sulla bounding box regressione. La perdita di classificazione rimane relativamente coerente in tutte le dimensioni.

Pipeline di aumento

Per una spiegazione dettagliata di ogni tecnica, consulta la guida all'aumento 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 modelli più grandi utilizzano un aumento complessivamente più aggressivo (maggiore mixup, copy-paste, e scala), poiché hanno maggiore capacità e beneficiano di un regolarizzazione più forte. Il modello N è l'unica dimensione con una significativa rotazione, taglio, e BGR aumentazione.

Parametri di addestramento interni

Avanzato: parametri della pipeline interna

I checkpoint contengono anche parametri che sono stati utilizzati nella pipeline di addestramento interna ma che non sono esposti come impostazioni configurabili dall'utente in default.yaml:

ImpostazioneDescrizioneNSMLX
muon_wPeso di aggiornamento Muon in MuSGD0.5280.4360.4360.4360.436
sgd_wPeso di 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

Questi sono registrati per la riproducibilità ma non devono essere impostati durante il fine-tuning. Consulta la FAQ per ulteriori dettagli.

Guida al fine-tuning

Quando effettui il fine-tuning di YOLO26 sul tuo dataset, non hai bisogno di replicare l'intera procedura di preaddestramento. I pesi preaddestrati codificano già la conoscenza sull'aumentazione e sull'ottimizzazione derivante dall'addestramento su COCO. Per le migliori pratiche di addestramento generali, vedi Suggerimenti per l'addestramento dei modelli.

Inizia in modo semplice

Fine-tuning con 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 è una solida base di partenza. Regola gli iperparametri solo se hai una ragione specifica per farlo.

Quando regolare

Dataset piccoli (< 1.000 immagini):

  • Riduci la forza dell'aumentazione: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Abbassa il learning rate: lr0=0.001
  • Usa meno epochs con patience: epochs=50, patience=20
  • Valuta il congelamento dei layer del backbone: freeze=10

Dataset grandi (> 50.000 immagini):

  • Segui più fedelmente la procedura di preaddestramento
  • Considera optimizer=MuSGD per esecuzioni più lunghe
  • Aumenta l'aumentazione: 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
  • Regola hsv_s e hsv_v se le condizioni di illuminazione differiscono significativamente da COCO

Per l'ottimizzazione automatizzata degli iperparametri, vedi la Guida al tuning degli iperparametri.

Scegliere la dimensione del modello

ModelloIdeale perGuida alla Batch Size
YOLO26nDispositivi edge, mobile, tempo reale su CPUBatch grandi (64-128) su GPU consumer
YOLO26sVelocità e precisione bilanciateBatch medi (32-64)
YOLO26mPrecisione superiore con calcolo moderatoBatch più piccoli (16-32)
YOLO26lPrecisione elevata quando la GPU è disponibileBatch piccoli (8-16) o multi-GPU
YOLO26xMassima precisione, distribuzione su serverBatch piccoli (4-8) o multi-GPU

Per le opzioni di export e deployment, vedi la Guida all'export e Opzioni di deployment dei modelli.

FAQ

Come posso vedere gli iperparametri esatti utilizzati per un qualsiasi checkpoint?

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

Perché il numero di epoche è diverso per ogni dimensione del modello?

I modelli più grandi convergono più velocemente su COCO perché hanno maggiore capacità. Il modello N ha richiesto 245 epoche mentre il modello X ne ha richieste solo 40. Quando effettui il fine-tuning sul tuo dataset, il numero ottimale di epoche dipende dalla dimensione e dalla complessità del tuo dataset, non dalla dimensione del modello. Usa l'early stopping (patience) per trovare automaticamente il punto di arresto corretto.

Dovrei usare MuSGD per il fine-tuning?

Quando optimizer=auto (l'impostazione predefinita), Ultralytics seleziona automaticamente MuSGD per esecuzioni di addestramento più lunghe (>10.000 iterazioni) e AdamW per quelle più brevi. Puoi impostare esplicitamente optimizer=MuSGD se preferisci. Per saperne di più sulla selezione dell'ottimizzatore, vedi la documentazione sull'addestramento.

Cosa sono muon_w, sgd_w, cls_w, o2m, e topk nel checkpoint?

Questi sono parametri interni della pipeline di addestramento che ha prodotto i checkpoint di base. Sono memorizzati per la riproducibilità ma non sono impostazioni configurabili dall'utente in default.yaml. Non hai bisogno di impostarli durante il fine-tuning. Vedi Parametri di addestramento interni per i dettagli.

Posso replicare l'esatto preaddestramento da zero?

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

Commenti