Aktiválási újraszámítási kompromisszumok
Az aktiválás újraszámítása (gradiens vagy aktiválási ellenőrzőpont) megtakarítja a GPU-memóriát edzés közben azáltal, hogy elveti a közbenső aktiválásokat az előremenetben, és újraszámítja azokat a visszalépés során.
Áttekintés
It trades extra compute for the ability to train larger models or longer sequences on the same hardware.
Mély merülés
A visszaterjesztéshez a gradiensek kiszámításához előrehaladó aktiválásokra van szükség, így alapértelmezés szerint minden réteg kimenete tárolva van – ez óriási memóriaköltség, amely a modell méretével, kötegméretével és sorozathosszával nő. Az aktiválási újraszámítás csak néhány „ellenőrzőpont” tenzort tart meg (gyakran csak réteghatárokat), a többit pedig kidobja. A visszafelé haladás során újra lefutja az előremenő számítást az ellenőrző pontok között, hogy igény szerint újragenerálja az eldobott aktiválásokat. A klasszikus eredmény az, hogy minden sqrt(N) rétegben elhelyezett ellenőrzőpontokkal a memória nagyjából O(sqrt(N))-ra csökken, miközben körülbelül egy plusz előrelépést ad hozzá (~33%-kal több számítás). A szelektív változatok csak az olcsó, de memóriaigényes műveleteket (például a figyelem vagy a lemorzsolódás) számítják újra, miközben a drágákat gyorsítótárazzák, így a legtöbb memóriamegtakarítást sokkal kevesebb újraszámítási többletköltség mellett érik el.
Technikai betekintés
Az alapvető kompromisszum a memória és a FLOP. A teljes újraszámítás lépésenként nagyjából egy plusz előrelépést ad hozzá (~30-40%-kal lassabb), de egy nagyságrenddel csökkentheti az aktiválási memóriát. Az intelligens lépés a szelektív ellenőrzőpont: azonosítsa a nagy memóriaterületű, de olcsó műveleteket (softmax, layernorm, GELU, figyelem pontszámok), és csak azokat számítsa újra, miközben a drága GEMM-ek eredményeit gyorsítótárban tárolja – minimálisra csökkentve a pazarló számításokat.
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.
Az aktiválási újraszámítási kompromisszumok jövője
Az újraszámítás egyre inkább automatizált és szelektív. A keretrendszerek mostantól profilozzák az egyes műveletek memóriáját és a FLOP költségeit, hogy optimális ellenőrzőpontokat válasszanak, és kombinálják az újraszámítást a CPU/NVMe-re történő aktiválás-kitöltéssel és a párhuzamossági stratégiákkal. Ahogy a kontextus hossza és a modellméretek folyamatosan növekszenek, a fordító által vezérelt házirendekre (PyTorch, JAX/XLA esetén) számíthatunk, amelyek automatikusan választják a műveletenkénti újraszámítási döntéseket, valamint az újraszámítás és a kommunikáció közötti szorosabb átfedést, így az extra FLOP-ok részben rejtve maradnak.
Valós megvalósítás
Egy nagy transzformátor betanítása, amely egyébként nem férne el, minden rétegblokk ellenőrzésével
A PyTorch torch.utils.checkpoint használata a transzformátorblokkok becsomagolásához és az aktiválási memória levágásához
A figyelem/softmax szelektív újraszámítása a Megatron-LM-ben a memória megtakarítása érdekében minimális lassulás mellett
Hosszabb sorozathosszúságok engedélyezése rögzített GPU-költségvetés mellett az aktiválások újraszámításával ahelyett, hogy eltárolná őket
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
Határozza meg a késleltetési, minőségi és költségcélokat a megvalósítás előtt.
Benchmark reális terhelési és adatviszonyok mellett.
Műszerfigyelés a hibák, az eltolódás és a felhasználói hatások szempontjából.
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 Activation Recomputation Tradeoffs quiz
Instant feedback on every answer, and a shareable certificate with a verifiable ID once you pass a course.
Support free AI education. AI Understanding is a 501(c)(3) nonprofit — no ads, no paywall, ever. Make a donation
Következő útmutató
SmoothQuant és aktiválási kvantálás
Gyakran ismételt kérdések
What is Activation Recomputation Tradeoffs?
Az aktiválás újraszámítása (gradiens vagy aktiválási ellenőrzőpont) megtakarítja a GPU-memóriát edzés közben azáltal, hogy elveti a közbenső aktiválásokat az előremenetben, és újraszámítja azokat a visszalépés során. Extra számítást cserél a nagyobb modellek vagy hosszabb sorozatok ugyanazon a hardveren való betanítására.
Mit vált ki az aktiválási újraszámítás a memória megtakarítása érdekében?
Az újraszámítás elveti a tárolt aktiválásokat, és újragenerálja azokat a visszafelé lépésben, így extra számítási időt fordít a memóriahasználat csökkentésére.
Miért tárolják általában az előre-pass aktiválásokat?
A visszafelé lépés az előremenő aktiválásokat használja a gradiensek kiszámításához, így alapértelmezés szerint a memóriában maradnak, amíg a visszafelé lépés le nem fut.
Körülbelül mennyi plusz számítást ad hozzá a teljes aktiválási újraszámítás?
A teljes újraszámítás újrafuttatja az előremenő számítást a visszafelé lépés során, hozzávetőleg egy plusz előrelépést – nagyjából 30-40%-kal több számítást.
Mi az ötlet a szelektív (nem teljes) újraszámítás mögött?
A szelektív újraszámítás olyan műveleteket céloz meg, amelyek sok memóriát használnak, de kevés számítást végeznek (mint például a softmax vagy a layernorm), miközben a drága GEMM-eredményeket gyorsítótárazza az elpazarolt FLOP-ok minimalizálása érdekében.
Melyik kiegészítő technikát kombinálják gyakran újraszámítással, hogy még több memóriát takarítsanak meg?
Az aktiválási tehermentesítés egyes aktiválásokat a CPU/NVMe tárolóba helyez át, és gyakran kombinálják újraszámítással és párhuzamosítással a további memóriamegtakarítás érdekében.