Direct naar inhoud
Alle termenAI-infrastructuur, MLOps & frameworks

Wat is ZeRO?

Een slimme techniek om AI-modellen te trainen die te groot zijn voor één GPU, door het geheugengebruik slim te verdelen over meerdere chips zonder dat de training veel langzamer wordt.

Wat is ZeRO

Wat is ZeRO eigenlijk?

ZeRO staat voor Zero Redundancy Optimizer, en het lost een gigantisch praktisch probleem op: moderne AI-modellen zijn zo groot dat ze letterlijk niet meer in het geheugen van één GPU passen. Stel je voor dat je een enorme legpuzzel hebt, maar je tafel is te klein. ZeRO verdeelt die puzzel slim over meerdere tafels, zodat iedereen tegelijk kan werken zonder dat dezelfde stukjes dubbel liggen.

Bij het trainen van een AI-model houdt je computer drie grote dingen bij: de modelparameters (alle instellingen van het netwerk), de optimalisatie-informatie (welke kant moet je op om het model beter te maken), en tijdelijke berekeningen tijdens de training. Normaal houdt elke GPU z'n eigen kopie van alles bij — enorm verspillend als je met 64 GPU's werkt. ZeRO zegt: laten we die kopieën opsplitsen en alleen delen wat echt nodig is.

Hoe werkt het eigenlijk?

ZeRO werkt in drie stappen, steeds agressiever:

Stage 1 verdeelt alleen de optimizer-informatie (zoals momentum en gradiënten) over GPU's. Elke GPU beheert een deel, en ze delen info wanneer nodig. Dit scheelt al 4x in geheugengebruik.

Stage 2 voegt daar de gradiënten aan toe — de tussenberekeningen die aangeven hoe het model moet worden aangepast. Nu zit je al op 8x minder geheugen per GPU.

Stage 3 gaat helemaal los: zelfs de modelparameters worden verdeeld. Elke GPU heeft alleen z'n eigen stukje van het model in het werkgeheugen. Wanneer een andere laag nodig is, wordt die tijdelijk ingeladen. Dit kan 64x of meer besparen, maar vraagt wel slimme coördinatie.

Het mooie: je verliest nauwelijks snelheid, omdat ZeRO de communicatie tussen GPU's minimaliseert en alleen deelt wat strikt noodzakelijk is.

Waarom zou jij hier iets aan hebben?

Als je grote taalmodellen wilt trainen of fine-tunen, loop je snel tegen geheugenproblemen aan. Een model met 7 miljard parameters vergt al gauw 28 GB alleen voor de parameters, en tijdens training komt daar nog een veelvoud bij. Met ZeRO kun je veel grotere modellen trainen op dezelfde hardware, of hetzelfde model veel sneller trainen door meer GPU's tegelijk te gebruiken.

Voor bedrijven betekent dit: je kunt geavanceerde AI bouwen zonder een fortuin uit te geven aan de allernieuwste GPU's. Voor onderzoekers: je kunt experimenteren met grotere architecturen zonder constant tegen geheugenmuren aan te lopen.

Waar kom je het tegen?

ZeRO is ontwikkeld door Microsoft en zit ingebakken in DeepSpeed, hun populaire trainingsbibliotheek. Als je met DeepSpeed werkt, gebruik je vaak ZeRO zonder er expliciet over na te denken — het wordt automatisch geactiveerd bij multi-GPU setups.

Daarnaast zie je ZeRO-principes terugkomen in:

  • PyTorch FSDP (Fully Sharded Data Parallel) — PyTorch's eigen implementatie van vergelijkbare ideeën

  • Hugging Face Transformers — ondersteunt ZeRO via DeepSpeed-integratie

  • Megatron-LM — NVIDIA's framework voor megagrote modellen

Bedrijven als OpenAI, Meta en Google gebruiken vergelijkbare technieken (soms met eigen implementaties) om hun grootste modellen te trainen. Het basisprincipe — verdeel het geheugen slim zonder onnodige kopieën — is inmiddels industriestandaard.

Een concreet voorbeeld

Stel: je wilt een model met 13 miljard parameters fine-tunen op je eigen data. Zonder ZeRO heb je per GPU zo'n 80-100 GB geheugen nodig — dat zijn dure A100- of H100-chips. Met ZeRO Stage 3 kun je datzelfde model trainen op 8 gewone GPU's met elk 24 GB, omdat het geheugen slim verdeeld wordt. Je betaalt minder, en de training duurt nauwelijks langer.

Wil je zelf grote modellen trainen? Check of je framework (PyTorch, Transformers) al ZeRO of FSDP ondersteunt. Vaak is het een kwestie van één configuratieregel toevoegen, en plots past dat grote model wél in je beschikbare hardware.

FAQ

Veelgestelde vragen over ZeRO

De drie meest gestelde vragen over dit onderwerp, kort beantwoord.

Wat is ZeRO?

Een slimme techniek om AI-modellen te trainen die te groot zijn voor één GPU, door het geheugengebruik slim te verdelen over meerdere chips zonder dat de training veel langzamer wordt.

Waarom is ZeRO belangrijk?

ZeRO staat voor Zero Redundancy Optimizer, en het lost een gigantisch praktisch probleem op: moderne AI-modellen zijn zo groot dat ze letterlijk niet meer in het geheugen van één GPU passen. Stel je voor dat je een enorme legpuzzel hebt, maar je tafel is te klein. ZeRO verdeelt die puzzel slim over meerdere tafels, zodat iedereen tegelijk kan werken zonder dat dezelfde stukjes dubbel liggen.

Hoe wordt ZeRO toegepast?

Bij het trainen van een AI-model houdt je computer drie grote dingen bij: de modelparameters (alle instellingen van het netwerk), de optimalisatie-informatie (welke kant moet je op om het model beter te maken), en tijdelijke berekeningen tijdens de training. Normaal houdt elke GPU z'n eigen kopie van alles bij — enorm verspillend als je met 64 GPU's werkt. ZeRO zegt: laten we die kopieën opsplitsen en alleen delen wat echt nodig is.

Deel: