Technische GIDS

ZeRO en Sharded Optimizers

ZeRO (Zero Redundancy Optimizer) elimineert de verspillende geheugenduplicatie van gegevensparallellisme door de optimalisatiestatus, gradiënten en gewichten over GPU's te verdelen.

2 min readLaatst bijgewerkt

Overzicht

It lets you train enormous models with the simplicity of data parallelism but a fraction of the per-GPU memory.

Diepe duik

Bij gewoon dataparallellisme slaat elke GPU een redundante volledige kopie op van de optimalisatiestatus, gradiënten en parameters, wat enorm verspillend is, vooral voor Adam, waar de optimalisatiestatus meerdere keren zo groot kan zijn als het model zelf. ZeRO, geïntroduceerd door Microsoft in DeepSpeed, verwijdert deze redundantie door deze tensors over GPU's te verdelen, zodat elk apparaat slechts een segment bezit. ZeRO wordt geleverd in drie progressieve fasen: Stage 1 shards optimizer-status, Stage 2 voegt gradiënt-sharding toe en Stage 3 shardt de parameters zelf. Indien nodig verzamelen GPU's de ontbrekende segmenten via communicatie, berekenen ze en geven ze vervolgens vrij. Het resultaat is een dramatisch lager geheugen per GPU, waardoor training van miljarden tot biljoenen parameters mogelijk wordt, terwijl het eenvoudige programmeermodel van data-parallellisme behouden blijft.

Technisch inzicht

ZeRO ruilt extra communicatie in voor geheugenbesparing. In fase 3 verzamelt een all-gather, vóór de voorwaartse doorgang van een laag, de volledige parameters van die laag op elke GPU; daarna worden de niet-eigen segmenten weggegooid om geheugen terug te winnen. Verlopen zijn minder verspreid, zodat elke GPU alleen het gradiëntsegment behoudt dat overeenkomt met de parameters waarvan hij eigenaar is. PyTorch's FSDP (Fully Sharded Data Parallel) implementeert hetzelfde idee native, waarbij modules direct worden gesplitst en opnieuw worden gehard.

Strategische impact

Cost and budget

Architectuurbeslissingen bepalen jarenlang de prestaties en bedrijfskosten.

Clearer decisions

Technisch onderwijs helpt teams bij het kiezen van de juiste stapel, niet alleen de nieuwste.

Quality control

Betere technische keuzes verminderen het aantal betrouwbaarheidsincidenten in de productie.

De toekomst van ZeRO en Sharded Optimizers

Sharding wordt de standaard voor grootschalige training in plaats van een exotische optie. Verwacht een diepere integratie met offloading (push-slices naar CPU of NVMe via ZeRO-Infinity), betere overlap van all-gather en reduce-scatter met berekeningen om de kosten ervan te verbergen, en combinaties met tensor- en pipeline-parallellisme. Naarmate modellen blijven groeien, zijn geheugenefficiënte sharded-optimizers van cruciaal belang om ze in te passen in realistische hardwarebudgetten.

Implementatie in de echte wereld

DeepSpeed ​​ZeRO Stage 2 gebruiken om een ​​taalmodel met meerdere miljarden parameters te verfijnen dat anders het GPU-geheugen zou overstromen.

Trainen met PyTorch FSDP, dat parameters, gradiënten en optimalisatiestatussen over GPU's verdeelt en deze op aanvraag per laag verzamelt.

Het toepassen van ZeRO-Offload om de optimalisatiestatus naar het CPU-geheugen te pushen, waardoor een enkele GPU een model kan trainen dat vele malen groter is dan zijn VRAM.

Schaal een model met biljoen parameters met ZeRO-Infinity door parameterscherven van NVMe-opslag te streamen wanneer het GPU- en CPU-geheugen opraken.

Risico's en vangrails

Het optimaliseren van één benchmark kan bredere systeemzwakheden verbergen.

Infrastructuur- en onderhoudskosten worden vaak onderschat.

De lacunes op het gebied van beveiliging en waarneembaarheid kunnen groter worden naarmate systemen complexer worden.

Implementatie routekaart

1

Definieer latentie-, kwaliteits- en kostendoelen vóór implementatie.

2

Benchmark onder realistische belasting- en gegevensomstandigheden.

3

Instrumentbewaking op fouten, drift en gebruikersimpact.

4

Bereid rollback- en incidentresponspaden voor voordat u gaat schalen.

Blijf verkennen

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.

Start quiz

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

Next guide

Lookahead en Lion Optimizers

Frequently asked questions

What is ZeRO and Sharded Optimizers?

ZeRO (Zero Redundancy Optimizer) elimineert de verspillende geheugenduplicatie van gegevensparallellisme door de optimalisatiestatus, gradiënten en gewichten over GPU's te verdelen. Hiermee kunt u enorme modellen trainen met de eenvoud van gegevensparallellisme, maar met een fractie van het geheugen per GPU.

Welke redundantie elimineert ZeRO vergeleken met gewoon dataparallellisme?

Standaard gegevensparallellisme slaat een volledige kopie op van de optimalisatiestatus, gradiënten en gewichten op elke GPU; ZeRO scherft deze zodat elke GPU slechts een segment bevat.

Waarom is de optimalisatiestatus vaak het grootste geheugenzwijn bij Adam?

Adam houdt lopende schattingen bij, zoals het eerste en tweede moment per parameter, die in combinatie met fp32-mastergewichten de eigen grootte van het model kunnen verkleinen.

Wat doet ZeRO Stage 3 met wat Stage 1 en 2 niet doen?

Fase 1 vernietigt de optimalisatiestatus, Fase 2 voegt gradiënten toe en Fase 3 gaat nog verder door de modelparameters ook over GPU's te verdelen.

Hoe krijgt een GPU in ZeRO Stage 3 de volledige parameters die hij nodig heeft voor de voorwaartse doorgang van een laag?

Voordat een laag wordt berekend, verzamelt een all-gather de volledige parameters op elke GPU; Zodra dit is gedaan, worden de niet-eigen segmenten vrijgegeven om geheugen terug te winnen.

Welke PyTorch-functie implementeert native sharding in ZeRO-stijl?

PyTorch's Fully Sharded Data Parallel (FSDP) scherft parameters, gradiënten en optimalisatiestatussen, verzamelt ze en herhardt ze ter plekke, in navolging van ZeRO.