Teljesen megosztott adatok párhuzamosan
A Fully Sharded Data Parallel (FSDP) egy elosztott betanítási technika, amely felosztja a modell paramétereit, gradienseit és optimalizáló állapotait sok GPU között, így minden eszköz csak egy szeletet tartalmaz.
Áttekintés
It makes training huge models possible on hardware that could never fit the whole model in one GPU's memory.
Mély merülés
A hagyományos adatpárhuzamosság minden GPU-n megőrzi a modell teljes példányát, ami memóriát pazarol, és korlátozza a modell méretét. Az FSDP, amelyet a Meta PyTorch-ja népszerűsített, és a Microsoft ZeRO-ja ihlette, ehelyett három dolgot bont ki az eszközök között: a paramétereket, a színátmeneteket és az optimalizáló állapotait. Az előrehaladás során minden GPU ideiglenesen összegyűjti az általa kiszámolt réteg teljes súlyát egy all-Gather segítségével, lefuttatja a számítást, majd azonnal felszabadítja az összegyűjtött másolatot. A visszafelé haladás is hasonlóan működik, amit egy szóráscsökkentés követ, amely visszaosztja a gradiens szeleteket a saját GPU-kra. Mivel minden eszköz csak a modell töredékét tárolja tartósan, a memóriahasználat nagyjából lineárisan csökken a GPU-k számával, így a csapatok több tíz- vagy százmilliárd paraméterrel rendelkező modelleket képezhetnek ki.
Technikai betekintés
Az FSDP extra kommunikációt cserél memóriamegtakarításra. Az egyes rétegek súlyait igény szerint rekonstruálják, közvetlenül a használat előtt, majd azonnal eldobják, a színátmeneteket pedig szóráscsökkentéssel kombinálják és felosztják. A kommunikációt átfedheti a számítással a következő réteg paramétereinek előzetes lekérésével, miközben az aktuális réteg fut, elrejtve a hálózati késleltetés nagy részét. A felosztási részletesség hangolása (csomagolási szabályzat) egyensúlyba hozza a memória lábnyomát a kommunikációs többletterheléssel.
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 teljesen megosztott adatok párhuzamos jövője
Az FSDP válik a nyílt nagymodell-képzés alapértelmezésévé, a PyTorch FSDP2-je javítja a használhatóságot és a paraméterenkénti felosztást. Szorosabb integrációra számíthat a tenzor és a csővezeték párhuzamosságával a billió paraméteres modelleknél, a vegyes precizitás és az fp8 jobb támogatása, valamint az intelligensebb automatikus burkolás, amely kijelöli a szilánkos határokat. Ahogy a GPU-k közötti összeköttetések, például az NVLink és az InfiniBand felgyorsulnak, a szilánkolás kommunikációs költsége folyamatosan csökken, így ez egyre nagyobb méretekben is praktikus.
Valós megvalósítás
Egy 70 milliárd paraméterű Llama modell finomhangolása 8 GPU-n keresztül, amelyek külön-külön nem bírják a teljes súlyt.
Nagy nyelvi modellek előképzése mesterséges intelligencia laboratóriumokban az optimalizáló állapotainak felosztásával (amelyek Ádámmal együtt uralják a memóriát) több száz gyorsítón keresztül.
A PyTorch FSDP burkolóját használó kutatók látástranszformátorok képzésére egy egyetemi klaszteren anélkül, hogy zászlóshajó 80 GB-os GPU-kat vásárolnának.
Az FSDP és a vegyes precíziós bfloat16 kombinálása a memória nagyjából felére csökkentése és a képzési sebesség felgyorsítása a multimodális modelleken.
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 Fully Sharded Data Parallel 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ó
Adatpárhuzamosság
Gyakran ismételt kérdések
What is Fully Sharded Data Parallel?
A Fully Sharded Data Parallel (FSDP) egy elosztott betanítási technika, amely felosztja a modell paramétereit, gradienseit és optimalizáló állapotait sok GPU között, így minden eszköz csak egy szeletet tartalmaz. Lehetővé teszi hatalmas modellek képzését olyan hardveren, amely soha nem fér el a teljes modell egyetlen GPU memóriájába.
Mit tör meg az FSDP a GPU-k között, amit a szabványos adatpárhuzam NEM?
Az FSDP a modell paramétereit, színátmeneteit és optimalizáló állapotait szilánkokra osztja az eszközökön keresztül, míg a szabványos adatpárhuzam minden GPU-n megismétli a teljes modellt.
Melyik kollektív műveletet használja az FSDP egy réteg teljes súlyának rekonstruálására közvetlenül a számítás előtt?
Egy réteg lefutása előtt az FSDP mindent összegyűjt, hogy ideiglenesen összeállítsa a teljes paramétert az összes szilánkból, majd felszabadítja azokat.
Miért szabadítja fel az FSDP az összegyűjtött teljes súlyokat közvetlenül a réteg számítása után?
A tartósan csak egy szilánk megtartása és a teljes súlyok átmeneti összegyűjtése alacsonyan tartja a memóriahasználatot, és nagyjából arányos a modell egy töredékével.
Az FSDP-t nagyrészt melyik korábbi memóriaoptimalizálási megközelítés ihlette?
Az FSDP paraméterek, színátmenetek és optimalizáló állapotok felosztása szorosan követi a Microsoft ZeRO-jában a DeepSpeed könyvtárból bevezetett ötleteket.
Hogyan rejti el az FSDP a hálózati késleltetés nagy részét a súlygyűjtés elől?
Az FSDP előre letölti a következő réteg paramétereit, miközben az aktuális réteg még számításokat végez, átfedve a mindenre kiterjedő kommunikációt hasznos munkával.