Mai departeUrmătorul ghid
Gradiente care dispar și explodează
Tehnic
GHID tehnic
Acumularea de gradient vă permite să simulați o dimensiune mare a lotului pe o memorie limitată a GPU prin însumarea gradientelor pe mai multe mini-loturi mici înainte de a actualiza greutățile.
Ascultă acest ghidNarativ AI · ~2 min
It is the standard workaround for training big models when memory is the bottleneck.
În mod normal, un pas de antrenament procesează un lot, calculează gradienți și actualizează imediat parametrii. Cu acumularea de gradient, executați mai multe treceri înainte și înapoi pe micro-loturi mai mici, adunând gradienții lor împreună în tampoanele de parametri și apelați doar pasul de optimizare (și zero gradienții) după N micro-loturi. Dimensiunea efectivă a lotului devine dimensiunea micro-loturii ori N, chiar dacă memoria maximă deține doar un micro-lot de activări. Acest lucru contează deoarece multe rețete de antrenament presupun loturi mari pentru statistici stabile și pentru că modelele precum transformatoarele mari nu pot încadra un lot țintă complet pe un singur dispozitiv. Captura: statisticile de normalizare a loturilor sunt calculate pe micro-lot, astfel încât norma de nivel sau norma de grup se îmbină mai bine cu acumularea și trebuie să scalați corect pierderea pentru a menține rata efectivă de învățare corectă.
Reglați fin un model de limbă mare pe un singur GPU de consum, acumulând peste 8 sau 16 micro-loturi pentru a ajunge la un lot efectiv de sute.
Antrenament de viziune de înaltă rezoluție sau modele de segmentare în care se potrivește chiar și un lot de 2, dar rețeta are nevoie de un lot eficient de 32.
Hugging Face Trainer și PyTorch Lightning expun o setare gradient_accumulation_steps utilizată în mod obișnuit în setările VRAM limitate.
Reproducerea unui lot mare de hârtie are ca rezultat un hardware mai mic prin potrivirea dimensiunii efective a lotului prin acumulare.
Acumularea gradientului va rămâne o pârghie implicită, deoarece dimensiunile modelului depășesc memoria pentru un singur dispozitiv. Se combină din ce în ce mai mult cu precizie mixtă, punct de control al activării, fragmentare ZeRO și paralelism în conducte în cadre precum DeepSpeed și FSDP. Așteptați-vă la o automatizare mai strânsă, în care bibliotecile ajustează automat pașii de acumulare la un buget de memorie și o importanță continuă pentru reglarea fină a modelelor mari pe hardware modest, inclusiv GPU-uri pentru consumatori, unde deblochează formarea care altfel ar fi imposibilă.
Buletin gratuit
Trei povești AI verificate în fiecare dimineață de zi lucrătoare, scrise în engleză simplă. Gratuit pentru totdeauna, fără reclame.
Un e-mail în fiecare zi lucrătoare. Dezabonare cu un singur clic. Nu vindem niciodată și nu împărtășim adresa ta.
Testează-te
Feedback instantaneu la fiecare răspuns și un certificat partajabil cu un ID verificabil după ce parcurgi un curs.
Susține educația AI gratuită. AI Understanding este o organizație nonprofit 501(c)(3) — fără reclame, fără barieră de plată, pentru totdeauna. Fă o donație
Acumularea de gradient vă permite să simulați o dimensiune mare a lotului pe o memorie limitată a GPU prin însumarea gradientelor pe mai multe mini-loturi mici înainte de a actualiza greutățile. Este soluția standard pentru antrenarea modelelor mari atunci când memoria este blocajul.
Însumând gradienții pe mai multe micro-loturi înainte de actualizare, imită un lot mare fără a-l păstra în memorie simultan.
Accumulate gradients across N micro-batches, call optimizer.step() once for the effective batch, then clear gradients before the next window; begin training with cleared buffers.
Norma batch-ului calculează statistici pe micro-loturi, astfel încât norma de nivel sau grup evită nepotrivirea cu micro-loturi mici.
Batch-dependent forward computations break exact equivalence.
Continuați să învățați
Mai multe ghiduri alese pentru acest subiect
Mai departeUrmătorul ghid
Gradiente care dispar și explodează
Tehnic