ZeRO na Viboreshaji vilivyoshirikiwa
ZeRO (Zero Redundancy Optimizer) huondoa urudiaji mbaya wa kumbukumbu wa ulinganifu wa data kwa kugawanya hali ya viboreshaji, vinyumeo na uzani kwenye GPU.
Muhtasari
It lets you train enormous models with the simplicity of data parallelism but a fraction of the per-GPU memory.
Dive ya kina
Katika ulinganifu wa kawaida wa data, kila GPU huhifadhi nakala kamili isiyo ya kawaida ya hali ya kiboreshaji, viwango vya juu, na vigezo, ambavyo ni vya upotevu mkubwa, haswa kwa Adamu, ambapo hali ya kiboreshaji inaweza kuwa mara kadhaa ya ukubwa wa muundo yenyewe. ZeRO, iliyoletwa na Microsoft katika DeepSpeed, huondoa upungufu huu kwa kugawanya vipino hivi kwenye GPU ili kila kifaa kimiliki kipande pekee. ZeRO huja katika hatua tatu zinazoendelea: Hatua ya 1 ya hali ya kuongeza shards, Hatua ya 2 inaongeza kugawanyika kwa gradient, na Hatua ya 3 hupasua vigezo vyenyewe. Inapohitajika, GPU hukusanya vipande vilivyokosekana kupitia mawasiliano, kukokotoa, kisha kuachilia. Matokeo yake ni kumbukumbu ya chini sana kwa kila GPU, kuwezesha mafunzo ya vigezo vya mabilioni hadi trilioni, huku ikiweka muundo rahisi wa uratibu wa data.
Ufahamu wa Kiufundi
ZeRO hufanya biashara ya mawasiliano ya ziada kwa ajili ya kuokoa kumbukumbu. Katika Hatua ya 3, kabla ya safu kupita mbele, mkusanyiko wote unakusanya vigezo kamili vya safu hiyo kwenye kila GPU; baadaye vipande visivyomilikiwa hutupwa ili kurejesha kumbukumbu. Gradients hutawanywa kwa njia ndogo kwa hivyo kila GPU huhifadhi tu kipande cha upinde rangi kinacholingana na vigezo inavyomiliki. FSDP ya PyTorch (Uwiano wa Data Iliyoshirikiwa kikamilifu) hutekeleza wazo lile lile kiasili, ikifunga moduli ili kupasua na kuchambua upya kwenye nzi.
Athari za kimkakati
Cost and budget
Maamuzi ya usanifu huendesha utendaji na gharama ya uendeshaji kwa miaka.
Maamuzi ya wazi zaidi
Elimu ya kiufundi husaidia timu kuchagua safu sahihi, sio tu mpya zaidi.
Quality control
Chaguo bora za uhandisi hupunguza matukio ya kuaminika katika uzalishaji.
Mustakabali wa ZeRO na Viboreshaji Vilivyoshirikiwa
Sharding inakuwa chaguo msingi kwa mafunzo ya kiwango kikubwa badala ya chaguo geni. Tarajia muunganisho wa kina zaidi na upakuaji (kusukuma vipande kwa CPU au NVMe kupitia ZeRO-Infinity), mwingiliano bora wa kukusanya na kupunguza-kutawanya kwa hesabu ili kuficha gharama zao, na michanganyiko ya usawa wa tensor na bomba. Kadiri miundo inavyoendelea kukua, viboreshaji vilivyo na kumbukumbu vyema ni muhimu katika kuziweka kwenye bajeti halisi ya maunzi.
Utekelezaji wa Ulimwengu Halisi
Kwa kutumia DeepSpeed ZeRO Hatua ya 2 kusawazisha muundo wa lugha wa mabilioni ya vigezo ambao ungejaza kumbukumbu ya GPU.
Kufanya mazoezi na PyTorch FSDP, ambayo hutenganisha vigezo, gradient, na hali ya kiboreshaji kwenye GPU na kuzikusanya kwa kila safu inapohitajika.
Inaweka ZeRO-Offload ili kusukuma hali ya kiboreshaji kwenye kumbukumbu ya CPU, ikiruhusu GPU moja ifunze muundo mara nyingi zaidi ya VRAM yake.
Kuongeza muundo wa kigezo cha trilioni kwa kutumia ZeRO-Infinity kwa kutiririsha shadi za vigezo kutoka kwa hifadhi ya NVMe wakati kumbukumbu ya GPU na CPU inapoisha.
Hatari & Walinzi
Kuboresha kiwango kimoja kunaweza kuficha udhaifu mkubwa wa mfumo.
Gharama za miundombinu na matengenezo mara nyingi hupunguzwa.
Mapengo ya usalama na uonekanaji yanaweza kukua kadiri mifumo inavyozidi kuwa ngumu.
Ramani ya Utekelezaji
Bainisha muda, ubora na malengo ya gharama kabla ya utekelezaji.
Benchmark chini ya mzigo halisi na hali ya data.
Ufuatiliaji wa ala kwa makosa, kuteleza, na athari za mtumiaji.
Tayarisha njia za urejeshaji na majibu ya matukio kabla ya kuongeza ukubwa.
Endelea Kuchunguza
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 ZeRO and Sharded Optimizers 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
Mwongozo unaofuata
Lookahead na Simba Optimizers
Maswali yanayoulizwa mara kwa mara
What is ZeRO and Sharded Optimizers?
ZeRO (Zero Redundancy Optimizer) huondoa urudiaji mbaya wa kumbukumbu wa ulinganifu wa data kwa kugawanya hali ya viboreshaji, vinyumeo na uzani kwenye GPU. Inakuruhusu kufunza miundo mikubwa na usahili wa usambamba wa data lakini sehemu ya kumbukumbu ya per-GPU.
Je, ZeRO inaondoa upungufu gani ikilinganishwa na usawaziko wa data?
Usambamba wa data wa kawaida huhifadhi nakala kamili ya hali ya kiboreshaji, kipenyo, na uzani kwenye kila GPU; ZeRO hupasua hizi ili kila GPU ishike kipande tu.
Kwa nini hali ya optimizer mara nyingi ni nguruwe kubwa ya kumbukumbu na Adamu?
Adam anadumisha makadirio ya kukimbia kama vile muda wa kwanza na wa pili kwa kila kigezo, ambazo zikiunganishwa na uzani mkuu wa fp32 zinaweza kupunguza ukubwa wa modeli yenyewe.
Je! Hatua ya 3 ya ZeRO haina nini ambayo Hatua ya 1 na 2 haifanyi?
Hali ya kiboreshaji cha shards ya Hatua ya 1, Hatua ya 2 inaongeza viwango vya juu, na Hatua ya 3 inaenda mbali zaidi kwa kugawanya vigezo vya muundo kwenye GPU pia.
Katika Hatua ya 3 ya ZeRO, GPU inapataje vigezo kamili vinavyohitaji kwa safu ya mbele ya kupita?
Kabla ya kuhesabu safu, mkusanyiko wote hukusanya vigezo vyake kamili kwenye kila GPU; ikikamilika, vipande visivyomilikiwa huachiliwa ili kurejesha kumbukumbu.
Ni kipengele gani cha PyTorch ambacho asili yake kinatekelezea kugawanyika kwa mtindo wa ZeRO?
PyTorch's Fully Sharded Data Sambamba (FSDP) huchanja vigezo, vipenyo, na hali ya kiboreshaji, ikizikusanya na kuzishiriki upya kwenye nzi, ikiakisi ZeRO.