YOLO Vision 2026:
Torna al glossario Ultralytics

Gradient Accumulation

Scopri come l'accumulo dei gradienti consente dimensioni di batch effgaci superiori su memoria GPU limitata, con guide pratiche sull'addestramento di PyTorch e Ultralytics YOLO.

L'accumulo dei gradienti è una tecnica di addestramento che somma i gradienti provenienti da diversi piccoli batch, chiamati microbatch, prima di eseguire un singolo aggiornamento dei pesi del modello. Approssima l'addestramento con una batch size maggiore quando la memoria della GPU disponibile non riesce a contenere l'intero batch in una sola volta. Ciò rende praticabile la discesa del gradiente ad alto consumo di memoria senza modificare l'architettura del modello o ridurre la risoluzione di input.

Come Funziona l'Accumulo dei Gradienti#

Durante l'addestramento normale, ogni batch segue tre passaggi principali: calcola la loss, usa la backpropagation per calcolare i gradienti e lascia che l'ottimizzatore aggiorni i pesi del modello. I gradienti vengono quindi azzerati prima del batch successivo.

L'accumulo dei gradienti ritarda l'aggiornamento dell'ottimizzatore. Ciascun microbatch esegue un passaggio in avanti (forward pass) e all'indietro (backward pass), ma i suoi gradienti rimangono in memoria e vengono aggiunti a quelli dei microbatch successivi. Questo comportamento deriva naturalmente dall'operazione backward di PyTorch, che accumula i valori nel campo dei gradienti di ciascun parametro.

Dopo il numero configurato di passaggi di accumulo:

  1. L'ottimizzatore aggiorna i pesi del modello.
  2. I gradienti vengono reimpostati utilizzando un'operazione come Optimizer.zero_grad.
  3. Inizia una nuova finestra di accumulo.

La batch size effettiva è:

microbatch size x accumulation steps x number of training devices

Ad esempio, un microbatch di 4 immagini accumulato su 8 passaggi si comporta all'incirca come un batch di 32 immagini su una singola GPU. Con quattro GPU, la batch size effettiva globale diventa 128.

Effetti su Memoria, Velocità e Apprendimento#

L'accumulo dei gradienti riduce la memoria di picco richiesta per le attivazioni poiché un solo microbatch alla volta passa attraverso la rete. Non riduce in modo sostanziale la memoria utilizzata dai parametri del modello, dai gradienti o dallo stato dell'ottimizzatore.

Inoltre, solitamente non accelera l'addestramento. L'elaborazione di otto microbatch richiede comunque otto passaggi in avanti e all'indietro, e batch più piccoli potrebbero utilizzare la GPU in modo meno efficiente. Il vantaggio principale consiste nel fare rientrare un batch effettivo desiderato in una memoria limitata. Un vantaggio secondario può verificarsi nell'addestramento distribuito, in cui le implementazioni possono evitare di sincronizzare i gradienti fino alla fine di una finestra di accumulo utilizzando funzionalità come DistributedDataParallel no_sync.

Un'implementazione manuale divide comunemente la loss di ciascun microbatch per il numero di passaggi di accumulo, in modo che il gradiente risultante rappresenti una media anziché una somma. I trainer di livello superiore possono gestire la normalizzazione automaticamente, quindi applicare un ridimensionamento aggiuntivo può produrre aggiornamenti errati.

L'accumulo può approssimare un vero batch grande, ma i risultati non sono sempre identici. Le statistiche di normalizzazione del batch vengono calcolate da singoli microbatch, mentre operazioni stocastiche e ordinamento in virgola mobile possono anch'essi introdurre differenze. Il learning rate potrebbe quindi richiedere una convalida anziché un ridimensionamento automatico.

Tecniche Correlate e Differenze Chiave#

L'accumulo dei gradienti viene spesso confuso con altre tecniche di memoria o stabilità:

  • Il gradient checkpointing riduce la memoria delle attivazioni ricalcolando determinate operazioni del forward pass durante la backpropagation. La documentazione sul checkpointing delle attivazioni di PyTorch descrive questo compromesso tra calcolo e memoria. L'accumulo invece divide un batch grande in microbatch più piccoli.
  • La mixed precision memorizza o calcola determinate operazioni con tipi di dati a precisione inferiore. Può ridurre la memoria e migliorare il throughput, mentre l'accumulo cambia la frequenza con cui l'ottimizzatore si aggiorna. Le tecniche possono essere combinate seguendo il corretto flusso di lavoro per l'accumulo in mixed precision automatica.
  • Il gradient clipping limita l'ampiezza del gradiente per ridurre l'instabilità dovuta ad aggiornamenti insolitamente grandi. Non crea un batch effettivo più grande. Se combinato con l'accumulo, il clipping dovrebbe normalmente avvenire dopo che il gradiente completo è stato accumulato, utilizzando un'operazione come clip_grad_norm.

Applicazioni nel mondo reale#

Nella segmentazione di immagini mediche ad alta risoluzione, una GPU da 12 GB potrebbe contenere solo due scansioni grandi alla volta. L'accumulo dei gradienti su otto microbatch produce un batch effettivo di 16, preservando al contempo la risoluzione necessaria per identificare piccole strutture anatomiche. Il compromesso è un intervallo più lungo tra gli aggiornamenti dell'ottimizzatore.

Per il rilevamento di oggetti aerei, un team di ingegneri potrebbe eseguire l'addestramento su quattro GPU con sei immagini per dispositivo e quattro passaggi di accumulo. Il batch globale effettivo è di 96 immagini. Questo può stabilizzare gli aggiornamenti per scene contenenti molti piccoli veicoli o edifici, mantenendo al contempo ogni dispositivo entro il proprio limite di memoria. I team possono gestire esperimenti cloud, dataset ed esecuzioni di addestramento tramite il cloud training di Ultralytics Platform.

Accumulo dei Gradienti con Ultralytics YOLO#

Il flusso di lavoro di addestramento del modello di Ultralytics deriva il comportamento di accumulo dalle impostazioni fisiche batch e nominali nbs. Con batch=4 e nbs=64, il trainer punta a un batch nominale di 64 rinviando gli aggiornamenti dell'ottimizzatore su più microbatch.

from ultralytics import YOLO

# Load a pretrained YOLO26 detection model
model = YOLO("yolo26n.pt")

# Use a small physical batch and a larger nominal batch
results = model.train(
    data="coco8.yaml",
    epochs=10,
    batch=4,
    nbs=64,
)

Il trainer di alto livello gestisce la backpropagation, l'accumulo, i passaggi dell'ottimizzatore e la pulizia dei gradienti. Il suo comportamento è documentato nel riferimento di Ultralytics BaseTrainer. In pratica, scegli il microbatch più grande che si adatta in modo affidabile, calcola il batch effettivo desiderato e confronta i risultati della convalida quando modifichi i passaggi di accumulo, il learning rate o il numero di dispositivi.

Explore solutions

Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.
Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.
Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.
Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.
Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.
Scopri di più
Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.
Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.
Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.
Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.
Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.
Scopri di più
Real-time AI that works with your team

AI nella Robotica

Potenzia macchine più intelligenti con i modelli Ultralytics YOLO. La Vision AI nella robotica guida la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Real-time AI that works with your team

IA nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. La Vision AI abilita l'ispezione dei pacchi, lo smistamento, il tracciamento dei veicoli e il monitoraggio della sicurezza in magazzino in tempo reale.
Scopri di più
Real-time AI that works with your team

AI nel settore Retail

Reimmagina il retail con i modelli Ultralytics YOLO. La Vision AI alimenta il tracciamento dell'inventario, il monitoraggio degli scaffali, la gestione delle code e insight più intelligenti sui clienti.
Scopri di più
Real-time AI that works with your team

IA nel settore sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. La vision AI nella sanità potenzia l'imaging medico più rapido, diagnosi più intelligenti e il monitoraggio dei pazienti.
Scopri di più
Real-time AI that works with your team

IA nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La Vision AI guida il controllo qualità, il rilevamento dei difetti, la conformità ai DPI e l'automazione della linea di assemblaggio.
Scopri di più
Real-time AI that works with your operation

AI nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La vision AI migliora la sicurezza stradale, l'assistenza alla guida e l'automazione dei veicoli per strade più intelligenti.
Scopri di più
Real-time AI tailored to your operation

AI in Agricoltura

Porta la vision AI nell'agricoltura intelligente con i modelli Ultralytics YOLO. Potenzia il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per rese più elevate e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'AI!

Inizia il tuo viaggio con il futuro del machine learning