Műszaki ÚTMUTATÓ

Gradiens Akkumuláció

A színátmenet-felhalmozás lehetővé teszi, hogy nagy kötegméretet szimuláljon korlátozott GPU-memórián azáltal, hogy a súlyok frissítése előtt összeadja a színátmeneteket több kis mini kötegben.

2 perc olvasásUtoljára frissítve

Áttekintés

It is the standard workaround for training big models when memory is the bottleneck.

Mély merülés

Általában egy tanítási lépés egy köteget dolgoz fel, kiszámolja a gradienseket, és azonnal frissíti a paramétereket. A gradiens-gyűjtéssel több előre és hátra lépést futtathat kisebb mikrokötegeken, ezek színátmeneteit összeadja a paraméterpufferekben, és csak N mikroköteg után hívja meg az optimalizáló lépést (és nullázza a gradienseket). Az effektív kötegméret a mikro kötegméret N-szeresére válik, még akkor is, ha a csúcsmemória mindig csak egy mikrokötegelt tartalmaz aktiválásokat. Ez azért fontos, mert sok képzési recept nagy tételeket feltételez a stabil statisztikák érdekében, és mivel az olyan modellek, mint a nagy transzformátorok, nem férnek el egy teljes célkötegre egyetlen eszközön. A fogás: a kötegnormalizálási statisztikákat mikrokötegelenként számítják ki, így a rétegnormák vagy a csoportnormák jobban párosulnak a felhalmozással, és a veszteséget helyesen kell skálázni, hogy a hatékony tanulási sebesség megfelelő legyen.

Technikai betekintés

Mivel az összegzett veszteség gradiensei additívak, az N mikroadag feletti gradiensek felhalmozása matematikailag egy nagy tételnek felel meg, feltéve, hogy megfelelően átlagolja. A megvalósítások jellemzően minden egyes mikro-tételes veszteséget elosztanak N-vel, mielőtt visszafelé fordítanák, így a felhalmozott gradiens megegyezik a teljes effektív tétel átlagával. Kihagyja az optimizer.step() és a zero_grad() függvényeket az N-edik mikrokötegig, így extra számítási időt keres a csökkentett csúcsmemória érdekében.

Stratégiai hatás

Költség és költségvetés

Az építészeti döntések évekig növelik a teljesítményt és a működési költségeket.

Tisztább döntések

A technikai oktatás segít a csapatoknak a megfelelő verem kiválasztásában, nem csak a legújabb készletben.

Minőségellenőrzés

A jobb mérnöki döntések csökkentik a termelés megbízhatósági incidenseit.

A gradiens-felhalmozás jövője

A gradiens felhalmozódása továbbra is az alapértelmezett kar marad, mivel a modellek mérete meghaladja az egyeszközös memóriát. Egyre gyakrabban kombinálódik a vegyes pontossággal, az aktiválási ellenőrzési pontozással, a nullapontos felosztással és a csővezeték párhuzamosságával olyan keretrendszerekben, mint a DeepSpeed ​​és az FSDP. Szigorúbb automatizálásra lehet számítani, ahol a könyvtárak automatikusan behangolják a felhalmozási lépéseket a memória-költségvetéshez, és továbbra is fontos a nagy modellek finomhangolása szerény hardvereken, beleértve a fogyasztói GPU-kat is, ahol feloldja a képzést, amely egyébként lehetetlen lenne.

Valós megvalósítás

Nagy nyelvi modell finomhangolása egyetlen fogyasztói GPU-n több mint 8 vagy 16 mikrokötegeléssel, hogy elérje a több százas tényleges köteget.

Nagy felbontású látási vagy szegmentációs modellek betanítása, ahol még egy 2-es tétel is belefér, de a recepthez 32-es hatékony tétel szükséges.

A Hugging Face Trainer és a PyTorch Lightning egy gradient_accumulation_steps beállítást tesz közzé, amelyet rutinszerűen használnak a korlátozott VRAM-os beállításokban.

A papír nagy tételes eredményeinek reprodukálása kisebb hardvereken a tényleges kötegméretnek a felhalmozáson keresztül történő összehangolásával.

Kockázatok és védőkorlátok

Egy benchmark optimalizálása elrejtheti a rendszer általános hiányosságait.

Az infrastrukturális és karbantartási költségeket gyakran alábecsülik.

A biztonsági és megfigyelhetőségi hiányosságok a rendszerek bonyolultabbá válásával nőhetnek.

Végrehajtási ütemterv

1

Határozza meg a késleltetési, minőségi és költségcélokat a megvalósítás előtt.

2

Benchmark reális terhelési és adatviszonyok mellett.

3

Műszerfigyelés a hibák, az eltolódás és a felhasználói hatások szempontjából.

4

A méretezés előtt készítse elő a visszagörgetési és az incidensre adott válaszútvonalakat.

Folytassa a felfedezést

Free newsletter

Get the daily AI briefing

Three verified AI stories every weekday morning, written in plain English. Free forever, no ads.

One email each weekday. Unsubscribe in one click. We never sell or share your address.

Test yourself

Take the Gradient Accumulation quiz

Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.

Kezdő kvíz

Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation

Következő útmutató

Eltűnő és felrobbanó színátmenetek

Gyakran ismételt kérdések

What is Gradient Accumulation?

A színátmenet-felhalmozás lehetővé teszi, hogy nagy kötegméretet szimuláljon korlátozott GPU-memórián azáltal, hogy a súlyok frissítése előtt összeadja a színátmeneteket több kis mini kötegben. Ez a standard megoldás a nagy modellek képzéséhez, amikor a memória jelenti a szűk keresztmetszetet.

Mit tesz elsősorban lehetővé a gradiens felhalmozás?

Ha a frissítés előtt összeadja a gradienseket több mikrokötegre vonatkozóan, akkor egy nagy köteget utánoz anélkül, hogy egyszerre tárolná a memóriában.

Akkumuláció során mikor hívja meg az optimalizáló lépését és nullázza le a gradienseket?

N mikro-kötegelt halmoz fel gradienst, és csak egyszer frissít a ciklus végén.

Melyik normalizációs réteg párosodik tisztábban a gradiens-halmozással?

A Batch-norm mikrokötegelenként számítja ki a statisztikát, így a réteg- vagy csoportnorma elkerüli a kis mikro-kötegek közötti eltérést.