Guide all'addestramento LoRA con AI Toolkit

Risolvere gli errori CUDA Out of Memory in AI Toolkit

Guida rapida alla risoluzione dei problemi OOM di AI Toolkit: identifica se il crash avviene durante il caricamento del modello, l'addestramento o il campionamento, quindi regola batch size, gradient checkpointing, risoluzioni, frame o impostazioni dell'anteprima.

Addestra modelli di diffusione con Ostris AI Toolkit

AI Toolkit CUDA Out of Memory: risolvere OOM durante caricamento modello, addestramento e campionamento

Se il tuo job AI Toolkit fallisce con CUDA out of memory, OOM during training step 3 times in a row o 0 bytes is free, non continuare a rilanciare lo stesso job senza modifiche.

Nella pratica, la maggior parte degli errori OOM in AI Toolkit proviene da uno di questi quattro punti:

  1. caricamento del modello (prima che l'addestramento reale inizi)
  2. i primi passi di addestramento
  3. campionamento dell'anteprima / generazione del sample di riferimento
  4. picchi specifici del video dovuti a troppi frame, bucket troppo grandi, o entrambi

Questa guida è il percorso rapido di recupero: identifica quale OOM hai, cambia le impostazioni giuste in RunComfy AI Toolkit e arriva più velocemente a un retry riuscito.


Checklist rapida (inizia qui)

  • ✅ In Training, riduci il Batch Size
  • ✅ In Datasets, disattiva il bucket di risoluzione più alto per primo
  • ✅ In Sample, riduci Width / Height / Sample Steps o attiva temporaneamente Disable Sampling
  • ✅ Clicca su Show Advanced e assicurati che gradient_checkpointing: true
  • ✅ Per i modelli video, riduci Num Frames prima di toccare il learning rate
  • ✅ Se l'errore si verifica anche con una config molto conservativa, trattalo come un possibile problema di stato del worker / GPU, non solo di configurazione

1) Confermare che è lo stesso problema

Sei nel posto giusto se i tuoi log includono messaggi come:

CUDA out of memory
torch.OutOfMemoryError
OOM during training step 3 times in a row
Tried to allocate ...
0 bytes is free
CUBLAS_STATUS_ALLOC_FAILED

Situazioni comuni:

  • il job fallisce prima dello step 1
  • il job raggiunge lo step 2–10 poi va ripetutamente in OOM
  • l'addestramento sembra ok, ma il crash avviene generando i sample
  • la stessa config a volte funziona, a volte no

2) Prima di tutto: che tipo di OOM è?

A. OOM durante il caricamento del modello o prima dell'addestramento

Di solito significa una di queste cose:

  • il modello è troppo pesante per il setup attuale di risparmio memoria
  • la generazione del sample di riferimento / anteprima è già troppo costosa
  • il worker / GPU è in cattivo stato e non parte con memoria pulita

Segni tipici:

  • fallimento prima che inizino passi di addestramento significativi
  • l'errore si verifica subito dopo il caricamento del modello o durante il primo sample
  • i log mostrano quasi niente VRAM libera o un errore di allocazione CUBLAS

B. OOM nei primi passi di addestramento

È il caso più comune legato alla configurazione.

Cause tipiche:

  • gradient_checkpointing è disattivato
  • Batch Size troppo alto
  • il bucket più grande del dataset è troppo ambizioso
  • per il video, Num Frames è il vero picco di memoria

C. OOM durante il campionamento / generazione dell'anteprima

È una trappola molto comune.

La tua config di addestramento potrebbe essere quasi ok, ma l'anteprima è troppo costosa:

  • Sample Width / Height troppo grandi
  • Sample Steps troppo alti
  • Sample Every troppo frequente
  • il video di anteprima usa troppi frame

D. OOM solo a volte

Di solito è una config al limite, non un mistero.

Esempi:

  • il run sopravvive ai bucket piccoli, poi crasha con il bucket più grande
  • i run video falliscono solo con i clip più pesanti
  • il core dell'addestramento ci sta, ma la generazione dei sample lo fa sforare

3) Fix più rapidi in RunComfy AI Toolkit

Fix A — Riattivare gradient checkpointing

È la prima cosa da controllare per OOM di modelli di immagini.

Dove cambiarlo

  1. Apri il job fallito
  2. Clicca su Show Advanced
  3. Sotto train:, assicurati che:
gradient_checkpointing: true

In caso di dubbio, lascialo attivato.


Fix B — Abbassare Batch Size, usare Gradient Accumulation per stabilità

Dove cambiarlo

  • Apri l'editor del job
  • Nel pannello Training:
    • riduci il Batch Size
    • mantieni o aumenta Gradient Accumulation se vuoi un batch effettivo leggermente più grande senza aumentare il picco VRAM

Regola di retry sicuro

  • Modelli di immagini: in caso di OOM, scendi a Batch Size = 1 per primo
  • Modelli video: considera Batch Size = 1 come default a meno che la config non si sia già dimostrata stabile

Non trattare il learning rate come la prima leva di memoria. Di solito non lo è.


Fix C — Rimuovere prima il bucket di dataset più alto

Dove cambiarlo

  • Vai al pannello Datasets
  • Sotto Resolutions, disattiva il bucket più alto per primo

Ordine di rollback sicuro

  • 1024 / 1536 → rimuovere per primo
  • mantenere 512 / 768 mentre verifichi la stabilità
  • una volta stabile, riaggiungi i bucket più grandi uno alla volta

È uno dei modi più rapidi per trasformare un run al limite in uno riproducibile.


Fix D — Rendere economico il campionamento dell'anteprima o disattivarlo temporaneamente

Se il crash avviene prima che l'addestramento inizi davvero, o ogni volta che il campionamento si avvia, correggi prima l'anteprima.

Dove cambiarlo

  • Apri il pannello Sample

Poi fai una o più di queste cose:

  • riduci Width
  • riduci Height
  • riduci Sample Steps
  • aumenta Sample Every
  • attiva Disable Sampling per un run di validazione

Buon primo retry

Se l'obiettivo è "provare che il job può addestrare", un run temporaneo senza campionamento va bene.

Una volta stabile, riattiva le anteprime con impostazioni più piccole.


Fix E — Modelli video: ridurre Num Frames prima di tutto

Per i modelli video, i frame sono di solito la leva di memoria più grande.

Dove cambiarlo

  • Pannello DatasetsNum Frames
  • Pannello SampleNum Frames

Se stai addestrando video e vedi OOM, riduci i frame per primo, poi il batch size, poi la risoluzione.

Non iniziare cambiando optimizer o LR.


Fix F — Usare il percorso a bassa memoria del modello

Alcune architetture sono progettate per essere addestrate con impostazioni di risparmio memoria quando la VRAM è limitata.

Dove cambiarlo

  • Clicca su Show Advanced
  • Sotto model:, cerca:
low_vram: true

Per alcuni modelli, il percorso corretto include anche quantizzazione o gestione del text-encoder specifica. Segui la guida del modello invece di indovinare.


4) Diagnosi rapida per momento del crash

Quando crasha Causa più probabile Primo cambiamento
Prima dello step 1 / durante il sample iniziale anteprima troppo pesante, pressione al caricamento o worker sporco disattivare campionamento o ridurre anteprima
Step 1–10 GC disattivato, batch troppo alto, bucket troppo grande attivare GC, batch a 1, rimuovere bucket più grande
Solo al campionamento impostazioni anteprima troppo costose abbassare Width/Height/Sample Steps o disattivare campionamento
A volte sì, a volte no config al limite ridurre bucket / frame più grande e stabilizzare
Config conservativa fallisce istantaneamente possibile problema stato GPU / worker ricreare su un worker fresco o contattare il supporto

5) Come distinguere OOM di config da problemi di ambiente / stato GPU

Trattalo come non solo un problema di config quando tutto questo è vero:

  • Batch Size = 1
  • gradient_checkpointing: true
  • risoluzione / frame conservativi
  • il job fallisce comunque prima che l'addestramento inizi in modo significativo
  • i log mostrano 0 bytes is free o errore di allocazione CUBLAS

In quella situazione:

  1. smettere di ripetere lo stesso retry
  2. creare un nuovo tentativo su un worker fresco se possibile
  3. se la stessa config conservativa funzionava prima e ora fallisce istantaneamente, escalare al supporto

Questo è importante perché i retry ripetuti possono sprecare sia tempo che budget GPU.


6) L'ordine di rollback più sicuro

Per modelli di immagini

  1. gradient_checkpointing: true
  2. Batch Size → 1
  3. rimuovere il bucket di risoluzione più grande
  4. ridurre o disattivare Sample
  5. attivare low_vram o il percorso a bassa memoria del modello

Per modelli video

  1. ridurre Num Frames
  2. Batch Size → 1
  3. rimuovere il bucket di risoluzione più grande
  4. ridurre o disattivare Sample
  5. attivare low_vram o offloading / quantizzazione specifica del modello

7) Dopo il primo retry riuscito

Una volta ottenuto un run stabile:

  • riaggiungi solo un parametro più pesante alla volta
  • annota cosa hai cambiato
  • non reintrodurre più impostazioni ad alto rischio insieme

Buon ordine per scalare:

  1. mantenere le stesse impostazioni di memoria stabili
  2. aumentare gli Steps
  3. riattivare un bucket più grande
  4. riattivare un campionamento più ricco
  5. solo allora testare batch più grande o video più lungo

Riepilogo in una riga

Se AI Toolkit dà OOM, smetti di provare a caso.

Attiva gradient_checkpointing, abbassa il Batch Size, rimuovi il bucket di risoluzione più grande e rendi il campionamento dell'anteprima più economico prima di riprovare.


Guide correlate

Pronto per iniziare l'addestramento?