Műszaki ÚTMUTATÓ

ZeRO és Sharded Optimizers

A ZeRO (Zero Redundancy Optimizer) kiküszöböli az adatok párhuzamosságának pazarló memória-duplikációját azáltal, hogy felosztja az optimalizáló állapotát, a gradienseket és a súlyokat a GPU-k között.

Áttekintés

A ZeRO (Zero Redundancy Optimizer) kiküszöböli az adatok párhuzamosságának pazarló memória-duplikációját azáltal, hogy felosztja az optimalizáló állapotát, a gradienseket és a súlyokat a GPU-k között. Óriási modellek betanítását teszi lehetővé az adatok párhuzamosságának egyszerűségével, de a GPU-nkénti memória töredékével.

A ZeRO és a Sharded Optimizers egy olyan műszaki építőelem, amely befolyásolja a modell minőségét, az infrastruktúra költségeit, a késleltetést és a megbízhatóságot.

Mély merülés

A szokásos adatpárhuzamban minden GPU tárolja az optimalizáló állapotának, a gradienseknek és a paramétereknek egy redundáns teljes másolatát, ami rendkívül pazarló, különösen Adam esetében, ahol az optimalizáló állapota többszöröse lehet magának a modellnek. A ZeRO, amelyet Microsoft vezetett be a DeepSpeedben, eltávolítja ezt a redundanciát azáltal, hogy particionálja ezeket a tenzorokat a GPU-k között, így minden eszköz csak egy szeletet birtokol. A ZeRO három fokozatos szakaszban érhető el: az 1. szakasz szilánkok optimalizáló állapota, a 2. szakasz gradiens felosztást ad hozzá, a 3. szakasz pedig magukat a paramétereket. Szükség szerint a GPU-k kommunikáción keresztül összegyűjtik a hiányzó szeleteket, kiszámítják, majd felszabadítják őket. Az eredmény drámaian kevesebb memória GPU-nként, ami milliárd-trillió paraméteres betanítást tesz lehetővé, miközben megtartja az adatok párhuzamosságának egyszerű programozási modelljét.

Technikai betekintés

A ZeRO extra kommunikációt cserél memóriamegtakarításra. A 3. szakaszban, egy réteg előrehaladása előtt, egy all-Gather összegyűjti az adott réteg teljes paramétereit minden GPU-ra; ezt követően a nem birtokolt szeleteket a rendszer eldobja a memória visszanyerése érdekében. A színátmenetek csökkentett-szórtak, így minden GPU csak a tulajdonában lévő paramétereknek megfelelő gradiensszeletet tart meg. A PyTorch FSDP (Fully Sharded Data Parallel) ugyanazt az ötletet valósítja meg natív módon, és menet közben tördeli és újradarabolja a modulokat.

A ZeRO és a Sharded Optimizers elsajátítása

A ZeRO (Zero Redundancy Optimizer) kiküszöböli az adatok párhuzamosságának pazarló memória-duplikációját azáltal, hogy felosztja az optimalizáló állapotát, a gradienseket és a súlyokat a GPU-k között. Óriási modellek betanítását teszi lehetővé az adatok párhuzamosságának egyszerűségével, de a GPU-nkénti memória töredékével. A ZeRO és a Sharded Optimizers egy olyan műszaki építőelem, amely befolyásolja a modell minőségét, az infrastruktúra költségeit, a késleltetést és a megbízhatóságot. A mélyebb megértés érdekében kezelje a ZeRO-t és a Sharded Optimizers-t működési modellként, nem pedig egyetlen funkcióként: határozza meg a kívánt eredményeket, tisztázza a feltételezéseket, és válassza el, hogy a rendszer mire képes megbízhatóan, és ami még szakértői megítélést igényel.

A gyakorlatban a ZeRO-t és a Sharded Optimizers-t használó erős csapatok optimalizálják az architektúrát, az adatokat és az infrastruktúrát a megbízhatóság és a költségek szempontjából. Dokumentálják az explicit sikerkritériumokat, tesztelik a valósághű adatokat és munkafolyamatokat, és a megfigyelt hibaminták alapján iterálnak, nem pedig egyszeri benchmark győzelmek alapján. Ez az a hely, ahol az elméleti megértés tartós képességgé válik a termék, a politika és a műveletek között.

Az építészeti döntések évekig növelik a teljesítményt és a működési költségeket. Ugyanakkor az egyik benchmark optimalizálása elrejtheti a rendszer általános gyengeségeit. A legrugalmasabb megközelítés a kísérleti sebesség és az irányítási fegyelem kombinálása: kísérleti kísérletek futtatása, bizonyítékok rögzítése, döntési naplók közzététele és a biztosítékok folyamatos frissítése a modell viselkedésének, a felhasználói elvárásoknak és a szabályozási követelményeknek megfelelően.

Stratégiai hatás

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

Az építészeti döntések évekig növelik a teljesítményt és a működési költségeket. A kiváló minőségű telepítéseknél ez mérhető működési szabályokká, tulajdonosi határokká és ismétlődő felülvizsgálati rituálékká alakul át, így a csapatok növelhetik a bizalmat a kétértelműség skálázása helyett.

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

A technikai oktatás segít a csapatoknak a megfelelő verem kiválasztásában, nem csak a legújabb készletben. A kiváló minőségű telepítéseknél ez mérhető működési szabályokká, tulajdonosi határokká és ismétlődő felülvizsgálati rituálékká alakul át, így a csapatok növelhetik a bizalmat a kétértelműség skálázása helyett.

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

A jobb mérnöki döntések csökkentik a termelés megbízhatósági incidenseit. A kiváló minőségű telepítéseknél ez mérhető működési szabályokká, tulajdonosi határokká és ismétlődő felülvizsgálati rituálékká alakul át, így a csapatok növelhetik a bizalmat a kétértelműség skálázása helyett.

A ZeRO és a Sharded Optimizers jövője

A megosztás a nagyszabású képzések alapértelmezésévé válik, nem pedig egzotikus lehetőséggé. Mélyebb integrációra számíthat a tehermentesítéssel (a szeletek CPU-ra vagy NVMe-re tolása a ZeRO-Infinity-n keresztül), az összes összegyűjtés és a szórás csökkentésének jobb átfedése a számítással, hogy elrejtse a költségeket, valamint a tenzor- és folyamatpárhuzamos kombinációk. Ahogy a modellek folyamatosan bővülnek, a memória-hatékony szilánkos optimalizálók központi szerepet játszanak abban, hogy reális hardverköltségvetésekhez illesszék őket.

Valós megvalósítás

A DeepSpeed ​​ZeRO Stage 2 segítségével finomhangolhatunk egy többmilliárd paraméteres nyelvi modellt, amely egyébként túlcsordulna a GPU memóriájában.

Képzés a PyTorch FSDP-vel, amely a paramétereket, a színátmeneteket és az optimalizáló állapotát szétosztja a GPU-k között, és igény szerint rétegenként összegyűjti.

A ZeRO-Offload alkalmazása az optimalizáló állapotának a CPU-memóriába való tolására, lehetővé téve, hogy egyetlen GPU a VRAM-nál többszörösen nagyobb modellt képezzen.

Egy billió paraméteres modell méretezése a ZeRO-Infinity segítségével az NVMe-tárhelyről származó paraméterszilánkok streamelésével, amikor a GPU és a CPU memória kimerül.

Megvalósítási minták

ZeRO és Sharded Optimizers a gyakorlatban

A DeepSpeed ​​ZeRO Stage 2 segítségével finomhangolhatunk egy többmilliárd paraméteres nyelvi modellt, amely egyébként túlcsordulna a GPU memóriájában.

A DeepSpeed ZeRO Stage 2 használata egy többmilliárd paraméteres nyelvi modell finomhangolására, amely egyébként túlcsordulna a GPU-memóriában. A csapatok általában jobb eredményeket érnek el, ha előre meghatározzák a minőségi küszöbértékeket, megtartják az emberi eszkalációs útvonalat az éles esetekben, és nyomon követik a termelékenység növekedését és a hibaköltségeket az idő múlásával.

ZeRO és Sharded Optimizers a gyakorlatban

Képzés a PyTorch FSDP-vel, amely a paramétereket, a színátmeneteket és az optimalizáló állapotát szétosztja a GPU-k között, és igény szerint rétegenként összegyűjti.

Képzés a PyTorch FSDP-vel, amely a GPU-k közötti paramétereket, gradienseket és optimalizáló állapotokat szilánkokra osztja, és igény szerint rétegenként gyűjti össze. A csapatok általában jobb eredményeket érnek el, ha előre meghatározzák a minőségi küszöbértékeket, megtartják az emberi eszkalációs útvonalat a szélsőséges eseteknél, és nyomon követik a termelékenységnövekedést és a hibaköltségeket az idő múlásával.

ZeRO és Sharded Optimizers a gyakorlatban

A ZeRO-Offload alkalmazása az optimalizáló állapotának a CPU-memóriába való tolására, lehetővé téve, hogy egyetlen GPU a VRAM-nál többszörösen nagyobb modellt képezzen.

A ZeRO-Offload alkalmazása az optimalizáló állapotának a CPU-memóriába való tolására, lehetővé téve, hogy egyetlen GPU betanítsa a VRAM-nál többszörösen nagyobb modellt. A csapatok általában jobb eredményeket érnek el, ha előre meghatározzák a minőségi küszöböket, megtartják az emberi eszkalációs útvonalat a szélsőséges esetekhez, és nyomon követik mind a termelékenységnövekedést, mind a hibaköltségeket az idő múlásával.

ZeRO és Sharded Optimizers a gyakorlatban

Egy billió paraméteres modell méretezése a ZeRO-Infinity segítségével az NVMe-tárhelyről származó paraméterszilánkok streamelésével, amikor a GPU és a CPU memória kimerül.

Billióparaméteres modell skálázása ZeRO-Infinity segítségével az NVMe tárolóból származó paraméterszilánkok streamelésével, amikor a GPU és a CPU memória kimerül A csapatok általában jobb eredményeket érnek el, ha előre meghatározzák a minőségi küszöböket, emberi eszkalációs útvonalat tartanak a szélsőséges esetekben, és nyomon követik a termelékenység növekedését és a hibaköltségeket az idő múlá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

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

A megvalósítás előtt határozza meg a késleltetési, minőségi és költségcélokat. Minden lépést bizonyítékkapuként kell kezelni: ha a feltételek nem teljesülnek, szüneteltesse a közzétételt, zárja be a rést, és csak ezután bővítse a felhasználást.

2

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

Benchmark reális terhelési és adatviszonyok mellett. Minden lépést bizonyítékkapuként kell kezelni: ha a feltételek nem teljesülnek, szüneteltesse a közzétételt, zárja be a rést, és csak ezután bővítse a felhasználást.

3

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

Műszerfigyelés a hibák, az eltolódás és a felhasználói hatások szempontjából. Minden lépést bizonyítékkapuként kell kezelni: ha a feltételek nem teljesülnek, szüneteltesse a közzétételt, zárja be a rést, és csak ezután bővítse a felhasználást.

4

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

A méretezés előtt készítse elő a visszagörgetési és az incidensre adott válaszútvonalakat. Minden lépést bizonyítékkapuként kell kezelni: ha a feltételek nem teljesülnek, szüneteltesse a közzétételt, zárja be a rést, és csak ezután bővítse a felhasználást.

Folytassa a felfedezést