Meet YOLO26: next-gen vision AI.

Ricetta di addestramento YOLO26

Introduzione

Questa guida documenta l'esatta ricetta di addestramento utilizzata per produrre i checkpoint ufficiali preaddestrati YOLO26 su COCO. Ogni iperparametro qui mostrato è già incorporato nei pesi .pt rilasciati e può essere esaminato programmaticamente.

Comprendere come sono stati addestrati i modelli base ti aiuta a prendere decisioni migliori durante il fine-tuning: quali aumentazioni dei dati mantenere, quali pesi della funzione di perdita 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 è stato incluso nei checkpoint ufficiali YOLO26: non solo l'architettura, ma anche gli schemi del learning rate, le pipeline di aumentazione e i pesi della 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 esaminare 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 checkpoint .pt, sia per i rilasci ufficiali che per i tuoi modelli sottoposti a fine-tuning. Per l'elenco completo degli argomenti di addestramento configurabili, consulta il riferimento alla configurazione di addestramento.

Panoramica sull'addestramento

Tutti i modelli base YOLO26 sono stati addestrati su COCO a una risoluzione di 640x640 utilizzando l'ottimizzatore MuSGD con batch size 128. I modelli sono stati inizializzati da pesi preaddestrati 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 progettuali chiave per tutte le dimensioni:

  • Addestramento end-to-end (end2end=True) con head one-to-one senza NMS
  • Ottimizzatore MuSGD che combina SGD con aggiornamenti ortogonalizzati in stile Muon per i pesi di convoluzione
  • Aumentazione mosaic pesante (probabilità ~0.9-1.0) disabilitata negli ultimi 10 epoche (close_mosaic=10)
  • Aumentazione di scala aggressiva (0.56-0.95) per gestire oggetti di dimensioni diverse
  • Rotazione/taglio minimi per la maggior parte delle dimensioni, mantenendo bassa la distorsione geometrica

Iperparametri per dimensione del modello

Ottimizzatore e Learning Rate

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 decadimento ripido (lrf=0.0495), mentre i modelli S/M/L/X hanno utilizzato un LR iniziale molto più basso con uno schema più graduale (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 in modo efficace.

Pesi della 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 regressione del bounding box. La perdita di classificazione rimane relativamente coerente in tutte le dimensioni.

Pipeline di aumentazione

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

Parametri di addestramento interni

Avanzato: parametri interni della pipeline

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

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

Guida al fine-tuning

Quando effettui il fine-tuning di YOLO26 sul tuo dataset, non hai bisogno di replicare l'intera ricetta di pretraining. I pesi preaddestrati codificano già la conoscenza sull'aumento e sull'ottimizzazione derivata dal training su COCO. Per le migliori pratiche generali di training, consulta Suggerimenti per il training del modello.

Inizia in modo semplice

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 hai un motivo specifico per farlo.

Quando apportare modifiche

Dataset piccoli (< 1.000 immagini):

  • Riduci l'intensità dell'aumento: mosaic=0.5, mixup=0.0, copy_paste=0.0
  • Abbassa il learning rate: lr0=0.001
  • Usa meno epoch con patience: epochs=50, patience=20
  • Prendi in considerazione il congelamento degli strati del backbone: freeze=10

Dataset grandi (> 50.000 immagini):

  • Segui più fedelmente la ricetta di pretraining
  • 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 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.

Scelta della dimensione del modello

ModelloIdeale perGuida alla dimensione del batch
YOLO26nDispositivi edge, mobile, tempo reale su CPUBatch grandi (64-128) su GPU consumer
YOLO26sEquilibrio tra velocità e precisioneBatch medi (32-64)
YOLO26mPrecisione superiore con calcolo moderatoBatch più piccoli (16-32)
YOLO26lAlta precisione quando è disponibile una GPUBatch piccoli (8-16) o multi-GPU
YOLO26xMassima precisione, distribuzione serverBatch piccoli (4-8) o multi-GPU

Per le opzioni di export e distribuzione, vedi la guida all'Export e le Opzioni di Distribuzione del Modello.

FAQ

Come vedo gli iperparametri esatti utilizzati per qualsiasi checkpoint?

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

Perché i conteggi delle epoch sono diversi per ogni dimensione del modello?

I modelli più grandi convergono più velocemente su COCO perché hanno maggiore capacità. Il modello N ha richiesto 245 epoch, mentre il modello X ne ha richieste solo 40. Durante il fine-tuning sul tuo dataset, il numero ottimale di epoch dipende dalla dimensione e dalla complessità del tuo dataset, non dalla dimensione del modello. Usa l'arresto anticipato (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 training run più lunghe (>10.000 iterazioni) e AdamW per quelle più brevi. Puoi impostare esplicitamente optimizer=MuSGD se preferisci. Per ulteriori informazioni sulla selezione dell'ottimizzatore, consulta la documentazione sul training.

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

Si tratta di parametri interni della pipeline di training che ha prodotto i checkpoint di base. Sono archiviati per la riproducibilità ma non sono impostazioni configurabili dall'utente in default.yaml. Non è necessario impostarli durante il fine-tuning. Vedi Parametri di Training Interni per i dettagli.

Posso replicare l'esatto pretraining da zero?

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

Commenti