Dit artikel bespreekt het concept van de 'efficiënte grens' bij LLM-inferentie, waarbij de focus ligt op de afweging tussen latentie (snelheid per gebruiker) en doorvoersnelheid (throughput/kosten).
De auteur maakt onderscheid tussen twee soorten optimalisatietechnieken:
- Technieken voor het beheren van compromissen: Deze verplaatsen de implementatie langs de bestaande grens. Voorbeelden zijn:
- Batch-grootte: Kleine batches verlagen de latentie, terwijl grote batches de doorvoersnelheid verhogen.
- Parallelisme-strategieën: Tensor Parallelism (TP) richt zich op latentie, terwijl Expert Parallelism (EP) en Attention Data Parallelism (ADP) vaker de doorvoersnelheid stimuleren.
- Kwantisering: Verbetert zowel latentie als doorvoersnelheid, maar introduceert een potentieel compromis met de modelkwaliteit.
- Technieken die de grens verschuiven: Deze zorgen voor universele winst waardoor de algehele efficiëntie toeneemt. Voorbeelden zijn:
- Kernel-optimalisatie: Low-level verbeteringen in CUDA-kernels die minder resources per token vereisen.
- Speculatieve decoding: Het voorspellen van tokens om forward passes over te slaan, wat vooral effectief is bij voorspelbare output zoals code.
- Disaggregatie: Het scheiden van de prefill- en decode-fasen op verschillende workers om elke fase optimaal te configureren.
De efficiënte grens van LLM-inferentie
Inferentietechnieken verplaatsen een implementatie ofwel langs de grens van latentie en doorvoersnelheid (throughput), of ze verschuiven de volledige grens, waardoor er meer efficiëntie beschikbaar komt om te alloceren.
In de AI-industrie hebben we de term "efficiënte grens" (efficient frontier) geleend van economen. We gebruiken deze om te spreken over het beheren van compromissen, meest vaak het compromis tussen kosten en mogelijkheden voor modellen. Een model is een "frontier-model" als het de hoogste graad van intelligentie biedt bij een gegeven kostprijs of omvang.
Een efficiënte grens toont het bereik van optimale combinaties wanneer er een afweging wordt gemaakt tussen twee waardevolle resultaten in een omgeving met beperkte middelen.
Ook in inference engineering hebben we efficiënte grenzen. Meestal wordt dit uitgedrukt als een afweging tussen latentie en doorvoersnelheid (wat de kosten bepaalt), hoewel we ook kwaliteit kunnen inruilen voor doorvoersnelheid (via kwantisering, distillatie en pruning) of intelligentie voor snelheid (in de vorm van het redeneringsniveau).
Er zijn twee soorten technieken beschikbaar voor inference-engineers:
- Technieken die een compromis sluiten tussen twee factoren om een implementatie langs een efficiënte grens te verplaatsen.
- Technieken die de volledige grens verschuiven voor een bepaalde implementatie, waardoor er meer algemene efficiëntie ontstaat die kan worden toegewezen aan het resultaat dat het meest gunstig is.
Beide soorten technieken zijn waardevol.
Het is nuttig om elk punt op een efficiënte grens te kunnen targeten door compromissen te sluiten. Het opofferen van de snelheid per gebruiker maakt het mogelijk om pipelines met een hoge doorvoersnelheid en lage kosten te bouwen voor batch-workloads. Het opofferen van doorvoersnelheid om de snelheid te verbeteren is zinvol wanneer latentiegevoelige gebruikers een hoge bereidheid hebben om te betalen.
En natuurlijk is het ongelooflijk nuttig om de volledige grens te verschuiven. Het ontsluiten van meer efficiëntie creëert winsten die kunnen worden toegewezen aan een lagere latentie, een hogere doorvoersnelheid, of een combinatie van beide.
Dit artikel beschrijft welke inference engineering-technieken je in staat stellen een punt op de grens te targeten, en welke technieken de volledige grens verschuiven. Voor dit artikel gaan we ervan uit dat we een LLM draaien zoals GLM-5.3 of Kimi K3 voor agentic coding, met ingeschakelde KV-cache-hergebruik en optimale KV-bewuste routing.
Technieken die compromissen beheren
Het behalen van een specifiek doel in productie gaat vaak minder over het ontdekken van een vernieuwende aanpak en meer over het vinden van de juiste set configuraties, gegeven de aard van het verkeer.
Technieken voor het beheren van compromissen stellen je in staat om een resultaat langs een efficiënte grens te targeten.
In de praktijk is de efficiënte grens erg grillig. In plaats van een vloeiende, continue lijn tussen resultaten, kunnen kleine wijzigingen grote effecten hebben. Deze omslagpunten zijn vaak onintuïtief en moeten empirisch worden ontdekt via sweeps.
Batch-grootte (Batch sizing)
Het meest voor de hand liggende compromis tussen latentie en doorvoersnelheid komt voort uit de batch-grootte. Een batch is het aantal verzoeken dat gelijktijdig wordt verwerkt. Hoewel token-level continuous batching betekent dat er geen latentie is door te wachten tot batches starten, bepaalt de geconfigureerde batch-grootte de latentie per gebruiker en de totale doorvoersnelheid.
- Kleine batch-groottes: De latentie per gebruiker is uitstekend, maar er worden weinig totale tokens per GPU gegenereerd. Dit betekent dat de kosten per token vrij hoog zijn.
- Grotere batch-groottes: Dit heeft het tegenovergestelde effect: slechtere latenties per gebruiker, maar een betere totale doorvoersnelheid tegen lagere kosten.
Parallelisme-strategie
De LLM's van vandaag meten in de honderden miljarden of biljoenen parameters en moeten over meerdere GPU's worden verspreid. De manier waarop ze worden gedeeld, of geparallelliseerd, over GPU's kan ofwel de latentie of de doorvoersnelheid stimuleren.
Parallelisme splitst grote modellen over meerdere GPU's.
- Tensor Parallelism (TP): Voor implementaties die gevoelig zijn voor latentie, ligt de focus op het verhogen van TP. Hoewel TP dure all-to-all communicatie heeft, is het effectief voor het verlagen van latenties, aangezien deze operaties snel verlopen over high-bandwidth NVLink-interconnects.
- Expert Parallelism (EP): EP kan helpen bij zowel latentie als doorvoersnelheid. Een lagere graad van EP wordt vaak geassocieerd met betere latenties, terwijl brede EP, inclusief EP over een volledig rack GPU's, over het algemeen een hogere doorvoersnelheid ondersteunt.
- Attention Data Parallelism (ADP): Een andere parallelisme-techniek om de doorvoersnelheid te verbeteren. Deze techniek repliceert attention-lagen voor parallelle berekening, wat de systeemdoorvoersnelheid verhoogt ten koste van de snelheid per verzoek.
Kwantisering (Quantization)
Kwantisering — het draaien van een model met een lager precisieniveau in gewichten, activaties en/of KV-cache-waarden — verbetert zowel de latentie als de doorvoersnelheid. Een gekwantiseerd model verschuift de efficiënte grens op het gebied van serving-compromissen.
Kwantisering introduceert echter een nieuwe set compromissen tussen kwaliteit en serving-efficiëntie. Dit is een bijzonder grillige grens, waarbij een grote verbetering van de serving-efficiëntie mogelijk is met weinig tot geen vermindering van de modelkwaliteit, vooral bij het gebruik van microscaling floating-point getalsformaten zoals MXFP4 en NVFP4.
Technieken die de grens verschuiven
Dit zijn de technieken die de koppen halen. Het verbeteren van de algehele prestaties is het leukste deel van inference engineering.
Technieken voor het verschuiven van de grens creëren universele winsten.
Het beste is dat deze technieken vaak cumulatief werken. Bijvoorbeeld: het verdubbelen van de prestaties door betere hardware, terwijl men tegelijkertijd de prestaties verdubbelt door betere software, betekent een verviervoudiging van de algehele serving, die vervolgens kan worden toegewezen aan latentie, doorvoersnelheid, of een combinatie van beide.
Kernel-optimalisatie en runtime-verbeteringen
Een CUDA-kernel is een low-level functie die een enkel onderdeel van het inferentieproces uitvoert, zoals een matrixvermenigvuldiging. Het verbeteren van de prestaties van individuele kernels, evenals de end-to-end prestaties van een forward pass in de inference-engine, betekent dat er minder resources nodig zijn om elk token te genereren. Deze efficiëntiewinsten stapelen zich op in de gehele stack en verschuiven de prestatienormen.
Speculatieve decoding (Speculative decoding)
Speculatieve decoding is het proces van het voorspellen welke tokens een model zou kunnen genereren, om deze voorspellingen vervolgens te valideren. Toen speculatieve decoding nieuw was, vormde dit een compromis tussen latentie en doorvoersnelheid: speculatie was duur, sequentielengtes waren kort en acceptatiegraden waren laag, wat betekende dat speculatieve decoding alleen haalbaar was bij kleine batch-groottes.
Tegenwoordig concurreren technieken zoals EAGLE-3, DSpark en DFlash nog steeds met de hoofdmodel-loop om resources, wat de maximale batch-groottes enigszins beperkt. Echter, dankzij de sterke prestaties van deze technieken — vooral bij codegeneratie waarbij output-tokensequenties relatief voorspelbaar zijn — leveren ze efficiëntiewinsten op door overgeslagen forward passes, naast de directe vermindering van latentie in de vorm van meer tokens per seconde per gebruiker.
Disaggregatie
P/D-disaggregatie, of het scheiden van prefill en decode op toegewezen workers, is een strategie voor het optimaliseren van high-volume implementaties van LLM's. Het onafhankelijk draaien van prefill en decode betekent dat workers kunnen worden geoptimaliseerd voor de unieke kenmerken van elke fase van de inferentie. Daarnaast kan de verhouding tussen prefill- en decode-workers worden aangepast om aan te sluiten bij de input- en output-sequentielengtes en de cache-hitrates van het binnenkomende verkeer.
In de praktijk is disaggregatie vaak het meest nuttig voor het verhogen van de doorvoersnelheid, terwijl de latenties gelijk blijven of iets verbeteren.
De efficiënte grens van LLM-inferentie
Inferentietechnieken verplaatsen een implementatie ofwel langs de grens van latentie en doorvoersnelheid (throughput), of ze verschuiven de volledige grens, waardoor er meer efficiëntie beschikbaar komt om te alloceren.
In de AI-industrie hebben we de term "efficiënte grens" (efficient frontier) geleend van economen. We gebruiken deze om te spreken over het beheren van compromissen, meest vaak het compromis tussen kosten en mogelijkheden voor modellen. Een model is een "frontier-model" als het de hoogste graad van intelligentie biedt bij een gegeven kostprijs of omvang.
Een efficiënte grens toont het bereik van optimale combinaties wanneer er een afweging wordt gemaakt tussen twee waardevolle resultaten in een omgeving met beperkte middelen.
Ook in inference engineering hebben we efficiënte grenzen. Meestal wordt dit uitgedrukt als een afweging tussen latentie en doorvoersnelheid (wat de kosten bepaalt), hoewel we ook kwaliteit kunnen inruilen voor doorvoersnelheid (via kwantisering, distillatie en pruning) of intelligentie voor snelheid (in de vorm van het redeneringsniveau).
Er zijn twee soorten technieken beschikbaar voor inference-engineers:
- Technieken die een compromis sluiten tussen twee factoren om een implementatie langs een efficiënte grens te verplaatsen.
- Technieken die de volledige grens verschuiven voor een bepaalde implementatie, waardoor er meer algemene efficiëntie ontstaat die kan worden toegewezen aan het resultaat dat het meest gunstig is.
Beide soorten technieken zijn waardevol.
Het is nuttig om elk punt op een efficiënte grens te kunnen targeten door compromissen te sluiten. Het opofferen van de snelheid per gebruiker maakt het mogelijk om pipelines met een hoge doorvoersnelheid en lage kosten te bouwen voor batch-workloads. Het opofferen van doorvoersnelheid om de snelheid te verbeteren is zinvol wanneer latentiegevoelige gebruikers een hoge bereidheid hebben om te betalen.
En natuurlijk is het ongelooflijk nuttig om de volledige grens te verschuiven. Het ontsluiten van meer efficiëntie creëert winsten die kunnen worden toegewezen aan een lagere latentie, een hogere doorvoersnelheid, of een combinatie van beide.
Dit artikel beschrijft welke inference engineering-technieken je in staat stellen een punt op de grens te targeten, en welke technieken de volledige grens verschuiven. Voor dit artikel gaan we ervan uit dat we een LLM draaien zoals GLM-5.3 of Kimi K3 voor agentic coding, met ingeschakelde KV-cache-hergebruik en optimale KV-bewuste routing.
Technieken die compromissen beheren
Het behalen van een specifiek doel in productie gaat vaak minder over het ontdekken van een vernieuwende aanpak en meer over het vinden van de juiste set configuraties, gegeven de aard van het verkeer.
Technieken voor het beheren van compromissen stellen je in staat om een resultaat langs een efficiënte grens te targeten.
In de praktijk is de efficiënte grens erg grillig. In plaats van een vloeiende, continue lijn tussen resultaten, kunnen kleine wijzigingen grote effecten hebben. Deze omslagpunten zijn vaak onintuïtief en moeten empirisch worden ontdekt via sweeps.
Batch-grootte (Batch sizing)
Het meest voor de hand liggende compromis tussen latentie en doorvoersnelheid komt voort uit de batch-grootte. Een batch is het aantal verzoeken dat gelijktijdig wordt verwerkt. Hoewel token-level continuous batching betekent dat er geen latentie is door te wachten tot batches starten, bepaalt de geconfigureerde batch-grootte de latentie per gebruiker en de totale doorvoersnelheid.
- Kleine batch-groottes: De latentie per gebruiker is uitstekend, maar er worden weinig totale tokens per GPU gegenereerd. Dit betekent dat de kosten per token vrij hoog zijn.
- Grotere batch-groottes: Dit heeft het tegenovergestelde effect: slechtere latenties per gebruiker, maar een betere totale doorvoersnelheid tegen lagere kosten.
Parallelisme-strategie
De LLM's van vandaag meten in de honderden miljarden of biljoenen parameters en moeten over meerdere GPU's worden verspreid. De manier waarop ze worden gedeeld, of geparallelliseerd, over GPU's kan ofwel de latentie of de doorvoersnelheid stimuleren.
Parallelisme splitst grote modellen over meerdere GPU's.
- Tensor Parallelism (TP): Voor implementaties die gevoelig zijn voor latentie, ligt de focus op het verhogen van TP. Hoewel TP dure all-to-all communicatie heeft, is het effectief voor het verlagen van latenties, aangezien deze operaties snel verlopen over high-bandwidth NVLink-interconnects.
- Expert Parallelism (EP): EP kan helpen bij zowel latentie als doorvoersnelheid. Een lagere graad van EP wordt vaak geassocieerd met betere latenties, terwijl brede EP, inclusief EP over een volledig rack GPU's, over het algemeen een hogere doorvoersnelheid ondersteunt.
- Attention Data Parallelism (ADP): Een andere parallelisme-techniek om de doorvoersnelheid te verbeteren. Deze techniek repliceert attention-lagen voor parallelle berekening, wat de systeemdoorvoersnelheid verhoogt ten koste van de snelheid per verzoek.
Kwantisering (Quantization)
Kwantisering — het draaien van een model met een lager precisieniveau in gewichten, activaties en/of KV-cache-waarden — verbetert zowel de latentie als de doorvoersnelheid. Een gekwantiseerd model verschuift de efficiënte grens op het gebied van serving-compromissen.
Kwantisering introduceert echter een nieuwe set compromissen tussen kwaliteit en serving-efficiëntie. Dit is een bijzonder grillige grens, waarbij een grote verbetering van de serving-efficiëntie mogelijk is met weinig tot geen vermindering van de modelkwaliteit, vooral bij het gebruik van microscaling floating-point getalsformaten zoals MXFP4 en NVFP4.
Technieken die de grens verschuiven
Dit zijn de technieken die de koppen halen. Het verbeteren van de algehele prestaties is het leukste deel van inference engineering.
Technieken voor het verschuiven van de grens creëren universele winsten.
Het beste is dat deze technieken vaak cumulatief werken. Bijvoorbeeld: het verdubbelen van de prestaties door betere hardware, terwijl men tegelijkertijd de prestaties verdubbelt door betere software, betekent een verviervoudiging van de algehele serving, die vervolgens kan worden toegewezen aan latentie, doorvoersnelheid, of een combinatie van beide.
Kernel-optimalisatie en runtime-verbeteringen
Een CUDA-kernel is een low-level functie die een enkel onderdeel van het inferentieproces uitvoert, zoals een matrixvermenigvuldiging. Het verbeteren van de prestaties van individuele kernels, evenals de end-to-end prestaties van een forward pass in de inference-engine, betekent dat er minder resources nodig zijn om elk token te genereren. Deze efficiëntiewinsten stapelen zich op in de gehele stack en verschuiven de prestatienormen.
Speculatieve decoding (Speculative decoding)
Speculatieve decoding is het proces van het voorspellen welke tokens een model zou kunnen genereren, om deze voorspellingen vervolgens te valideren. Toen speculatieve decoding nieuw was, vormde dit een compromis tussen latentie en doorvoersnelheid: speculatie was duur, sequentielengtes waren kort en acceptatiegraden waren laag, wat betekende dat speculatieve decoding alleen haalbaar was bij kleine batch-groottes.
Tegenwoordig concurreren technieken zoals EAGLE-3, DSpark en DFlash nog steeds met de hoofdmodel-loop om resources, wat de maximale batch-groottes enigszins beperkt. Echter, dankzij de sterke prestaties van deze technieken — vooral bij codegeneratie waarbij output-tokensequenties relatief voorspelbaar zijn — leveren ze efficiëntiewinsten op door overgeslagen forward passes, naast de directe vermindering van latentie in de vorm van meer tokens per seconde per gebruiker.
Disaggregatie
P/D-disaggregatie, of het scheiden van prefill en decode op toegewezen workers, is een strategie voor het optimaliseren van high-volume implementaties van LLM's. Het onafhankelijk draaien van prefill en decode betekent dat workers kunnen worden geoptimaliseerd voor de unieke kenmerken van elke fase van de inferentie. Daarnaast kan de verhouding tussen prefill- en decode-workers worden aangepast om aan te sluiten bij de input- en output-sequentielengtes en de cache-hitrates van het binnenkomende verkeer.
In de praktijk is disaggregatie vaak het meest nuttig voor het verhogen van de doorvoersnelheid, terwijl de latenties gelijk blijven of iets verbeteren.