Direct naar inhoud
Alle termenAI-infrastructuur, MLOps & frameworks

Wat is Sharding?

Een techniek om grote AI-modellen over meerdere computers te verdelen, zodat ze nog te trainen en te gebruiken zijn — net zoals je een enorme taart in stukken snijdt om hem te kunnen serveren.

Wat is Sharding

Wat is sharding eigenlijk?

Stel je voor: je hebt een enorm AI-model dat 100 gigabyte aan geheugencellen nodig heeft, maar je computer heeft maar 16 gigabyte. Dan kun je het model niet eens opstarten, laat staan trainen. Sharding is de oplossing: je verdeelt het model in stukken (shards) en legt elk stuk op een andere computer of videokaart. Net zoals je een gigantische taart in punten snijdt zodat iedereen een stuk kan krijgen.

Elke 'shard' bevat een deel van de parameters — de miljoenen of miljarden instelwaartjes waar een AI-model uit bestaat. Computer A bewaart en berekent laag 1 tot 10, computer B laag 11 tot 20, enzovoort. Tijdens het trainen of gebruiken sturen die computers tussendoor informatie naar elkaar door, zodat het model als geheel blijft werken.

Waarom is dit nodig?

De allergrootste taalmodellen — zoals GPT-4 of Claude — zijn zo enorm dat ze letterlijk niet meer op één chip passen. Een model met honderden miljarden parameters heeft honderden gigabytes geheugen nodig. Sharding maakt het mogelijk om toch met zulke reuzenmodellen te werken:

  • Trainen van grote modellen — verspreid het model over tientallen GPU's tegelijk

  • Sneller antwoorden — meerdere computers werken parallel aan het genereren van één tekst

  • Kostenefficiëntie — je kunt kleinere, goedkopere machines gebruiken in plaats van één superdure supercomputer

Hoe werkt het in de praktijk?

Er zijn verschillende manieren om te sharden:

  • Model parallelism — elk stuk van het netwerk zit op een aparte machine. De input gaat eerst naar machine A, die stuurt zijn resultaat door naar machine B, die weer doorgeeft aan C.

  • Tensor parallelism — zelfs individuele lagen worden opgesplitst. Eén matrixberekening wordt verdeeld over meerdere chips.

  • Pipeline parallelism — verschillende batches data worden gelijktijdig verwerkt door verschillende delen van het model, als een lopende band in een fabriek.

Het nadeel: al die computers moeten constant met elkaar praten. Dat kost tijd en bandbreedte. Bij slecht ontworpen sharding sta je meer te wachten op dataverzending dan dat je aan rekenen toekomt.

Waar kom je het tegen?

Sharding is vooral onzichtbaar achter de schermen van grote AI-labs en cloudplatforms:

  • DeepSpeed (Microsoft) en Megatron-LM (NVIDIA) — frameworks die automatisch modellen verdelen over GPU-clusters

  • PyTorch FSDP (Fully Sharded Data Parallel) — ingebouwde sharding in het populaire PyTorch-framework

  • JAX met pjit — Googles manier om modellen over TPU's te verdelen

  • Hugging Face Accelerate — maakt sharding toegankelijker voor kleinere teams

Als je zelf een groot model traint of fine-tunet op meerdere GPU's, gebruik je waarschijnlijk al sharding zonder het te beseffen — moderne frameworks doen het automatisch.

Wat betekent dit voor jou?

Als gebruiker van AI-diensten merk je weinig van sharding — het is infrastructuur achter de schermen. Maar als je zelf modellen wilt trainen of hosten, is het goed om te weten dat je niet vast zit aan één supercomputer. Met sharding kun je zelfs met beperkte hardware aan grote modellen werken, door slimmer te verdelen in plaats van groter te kopen. Het is de reden waarom steeds meer bedrijven en onderzoeksgroepen met state-of-the-art modellen kunnen experimenteren zonder miljoenenbudgetten.

FAQ

Veelgestelde vragen over Sharding

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

Wat is Sharding?

Een techniek om grote AI-modellen over meerdere computers te verdelen, zodat ze nog te trainen en te gebruiken zijn — net zoals je een enorme taart in stukken snijdt om hem te kunnen serveren.

Waarom is Sharding belangrijk?

Stel je voor: je hebt een enorm AI-model dat 100 gigabyte aan geheugencellen nodig heeft, maar je computer heeft maar 16 gigabyte. Dan kun je het model niet eens opstarten, laat staan trainen. Sharding is de oplossing: je verdeelt het model in stukken (shards) en legt elk stuk op een andere computer of videokaart. Net zoals je een gigantische taart in punten snijdt zodat iedereen een stuk kan krijgen.

Hoe wordt Sharding toegepast?

Elke 'shard' bevat een deel van de parameters — de miljoenen of miljarden instelwaartjes waar een AI-model uit bestaat. Computer A bewaart en berekent laag 1 tot 10, computer B laag 11 tot 20, enzovoort. Tijdens het trainen of gebruiken sturen die computers tussendoor informatie naar elkaar door, zodat het model als geheel blijft werken.

Deel: