
Wat is Speculative Decoding?
Speculative decoding is een inferentie-optimalisatietechniek die de generatiesnelheid van grote taalmodellen versnelt door een klein, snel model (het "draft model") meerdere tokens vooruit te laten voorspellen, waarna het grote model alle voorspellingen tegelijk verifieert. Het is als een assistent die een concept schrijft dat de expert vervolgens in bulk controleert.
Waarom het ertoe doet
Autoregressive generatie is inherent langzaam: elk token vereist een volledige forward pass door het model. Voor grote modellen (GPT-4, Claude) kost dit significante rekentijd. Speculative decoding versnelt inference 2-3x zonder de outputkwaliteit te verminderen — het grote model produceert exact dezelfde output, alleen sneller.
Hoe het werkt
Het kernidee:
- Draft fase — een klein, snel model genereert k tokens vooruit (bijv. k=5)
- Verificatie fase — het grote model verwerkt alle k tokens in één forward pass
- Acceptatie/afwijzing — elk draft-token wordt vergeleken met wat het grote model zou genereren
- Als match — het token wordt geaccepteerd (gratis, geen extra compute)
- Als mismatch — het eerste afwijkende token wordt vervangen door het grote model's keuze, de rest wordt weggegooid
- Herhaal — vanaf het laatste geaccepteerde token
Waarom het werkt:
- Het grote model kan meerdere tokens parallel verifiëren (één forward pass voor k tokens)
- Veel tokens zijn "makkelijk" (functiewoorden, veelvoorkomende patronen) — het kleine model voorspelt ze correct
- De versnelling is proportioneel aan de acceptatieratio van het draft model
Garantie:
- De output is mathematisch identiek aan wat het grote model zelfstandig zou genereren
- Geen kwaliteitsverlies — alleen snelheidswinst
Varianten:
- Draft model — apart klein model (Medusa, Eagle)
- Self-speculative — het model speculeert met zijn eigen lagere lagen
- Lookahead decoding — parallelle speculatie vanuit meerdere posities
Voorbeeld
Bij het genereren van "Amsterdam is de hoofdstad van Nederland" voorspelt het draft model snel alle 7 tokens. Het grote model verifieert ze in één pass: tokens 1-6 matchen (geaccepteerd), maar bij token 7 zou het grote model "het Koninkrijk der Nederlanden" kiezen. Token 7 wordt vervangen, tokens 1-6 zijn "gratis" gegenereerd — 6x sneller dan sequentiële generatie voor die tokens.