AI-training versus inferentie: rekenwerk, geheugen, formaten en hardware
Training is het proces waarbij de gewichten van een model worden bepaald door heel vaak te herhalen: data door de forward pass sturen om het verlies te berekenen, met de backward pass de gradiënten bepalen en met een optimizer de gewichten bijwerken. Inferentie is het proces waarbij met vaste gewichten alleen de forward pass wordt uitgevoerd om een antwoord op nieuwe invoer te geven. Bij training worden naast de gewichten ook gradiënten, de optimizertoestand en activaties voor de backward pass bewaard, zodat veel meer geheugen en rekenwerk nodig is dan bij inferentie met hetzelfde model. Eén inferentieberekening is klein, maar wordt bij elk gebruik uitgevoerd, en de reactiesnelheid is daarbij belangrijk.
| Kenmerk | Training | Inferentie |
|---|---|---|
| Doel | De gewichten van het model uit data bepalen | Met vaste gewichten een antwoord geven op nieuwe invoer |
| Soort berekening | Herhaling van forward pass → verliesberekening → gradiënten via de backward pass → gewichten bijwerken met de optimizer | Alleen de forward pass |
| Indicatie van het rekenvolume | Per invoer ongeveer 3 keer de forward pass (de backward pass kost ongeveer 2 keer de forward pass). Bij transformers in totaal ongeveer 6 × aantal parameters × aantal tokens | Voor een model met N parameters ongeveer 2N per token |
| Benodigd geheugen | Gewichten, gradiënten, optimizertoestand (twee bij Adam) en activaties voor de backward pass. Alles in FP32 betekent 16 bytes per parameter, plus de activaties | Gewichten en activaties tijdens de berekening (bij grote taalmodellen ook de KV-cache). In FP16 2 bytes per parameter |
| Getalformaten | Gemengde precisie met BF16 of FP16 (masterweights in FP32) | FP16 of BF16, of gekwantiseerde formaten zoals INT8 of INT4 |
| Batchgrootte | Grote batches om de bezetting van de rekeneenheden te verhogen | Klein als een snel antwoord nodig is (soms 1). Servers bundelen meerdere verzoeken om de efficiëntie te verhogen |
| Belangrijkste prestatiemaat | Doorvoer (tijd tot de training klaar is, bezetting van de rekeneenheden) | Een evenwicht tussen latentie (reactietijd op één verzoek) en doorvoer, en kosten per verwerking |
| Hardware | Grote aantallen GPU's of accelerators met veel HBM en hoge rekenkracht, verbonden via een snel netwerk | Breed: van datacenter-GPU's en accelerators voor inferentie tot NPU's in smartphones en microcontrollers |
| Parallellisatie | Dataparallellisme, tensorparallellisme en pipelineparallellisme. Gradiënten worden met all-reduce verzameld | Meerdere verzoeken parallel verwerken. Grote modellen worden met onder meer tensorparallellisme over meerdere chips verdeeld |
| Energie | Eén trainingsrun laat veel chips lange tijd draaien en verbruikt veel elektriciteit | Per keer klein, maar wordt bij elk gebruik uitgevoerd; bij intensief gebruik wordt het totaal groot |
De getalswaarden zijn typische ordegroottes en variëren per procesgeneratie en product.