Ga naar de hoofdinhoud
BVDNET
Arnhem · websites & automatiseringBVDNET
Modellen & Architectuur

Speculative decoding

Speculative decoding laat een groot AI-model sneller schrijven: een klein model raadt de volgende woorden, en het grote model controleert die gokken in één stap.

Ook bekend als: speculatief decoderen, speculative sampling, assisted generation, draft-and-verify

Speculative decoding laat een groot AI-model sneller schrijven zonder kwaliteitsverlies. Een klein, snel model raadt de volgende paar woorden, en het grote model controleert alle gokken tegelijk in plaats van elk woord zelf te schrijven. In december 2024 meldde Google dat het de techniek gebruikt voor AI-overzichten in Google Zoeken. In gepubliceerde tests ging het schrijven twee tot drie keer zo snel op dezelfde hardware.

Hoe werkt het?

Een taalmodel schrijft één token tegelijk, een woord of een deel van een woord, en elk token vraagt een volledige run van het model (autoregressieve generatie). Volgens de onderzoekers van Google leest elke run alle gewichten van het model uit het geheugen, voor een groot model mogelijk in de orde van een terabyte per woord, terwijl de rekeneenheden van de chip capaciteit over hebben. Bovendien zijn sommige tokens veel makkelijker dan andere. In "What is the square root of 7? The square root of 7 is 2.646" kan een klein model de tweede "7" uit de vraag overnemen; voor "2.646" is het grote model nodig. Speculative decoding benut de vrije capaciteit:

  1. Een klein draftmodel raadt de volgende paar tokens, een voor een.
  2. Het grote doelmodel beoordeelt alle gokken in één parallelle run.
  3. De gokken worden van links naar rechts geaccepteerd. Bij de eerste afgewezen gok kiest het grote model dat token zelf, en de overige gokken vervallen.
  4. De volgende ronde begint na het laatste geaccepteerde token.

De acceptatietest behoudt een gok altijd als het grote model hem minstens zo waarschijnlijk vindt als het draftmodel, en anders met een kans die gelijk is aan de verhouding tussen die twee. Leviathan e.a. bewijzen dat de tekst dan precies dezelfde verdeling volgt als die van het grote model alleen. Kiest het model steeds het waarschijnlijkste token (greedy decoding), dan is de uitvoer zelfs identiek.

Waar komt het vandaan?

Yaniv Leviathan, Matan Kalman en Yossi Matias van Google publiceerden de methode in november 2022. Met T5-XXL (11 miljard parameters) als doelmodel en T5-small (77 miljoen) als draftmodel maten ze 2,6 tot 3,4 keer snellere vertaling en 2,3 tot 3,1 keer snellere samenvatting op één TPU v4. Bij DeepMind ontwikkelden Chen e.a. hetzelfde idee onafhankelijk als speculative sampling, en in februari 2023 rapporteerden ze 2 tot 2,5 keer sneller decoderen voor Chinchilla (70 miljard parameters) in een gedistribueerde opstelling. Hugging Face voegde het in mei 2023 aan zijn Transformers-bibliotheek toe als assisted generation.

Welke varianten zijn er?

Latere methoden doen het zonder apart draftmodel, dat je moet vinden of trainen en dat eigen geheugen kost:

  • Medusa (Cai e.a., 2024) geeft het model extra decoding heads die meerdere volgende tokens voorspellen; meer dan 2,2 keer zo snel zonder kwaliteitsverlies.
  • EAGLE (Li e.a., 2024) maakt zijn gokken op basis van de interne features van het model in plaats van tokens: 2,7 tot 3,5 keer lagere latency voor LLaMA2-Chat 70B.
  • Self-speculative decoding (Zhang e.a., 2023) laat het model zelf gokken door een deel van zijn lagen over te slaan: tot 1,99 keer zo snel op LLaMA-2.

Waar gaat het mis?

  • De winst hangt af van hoe vaak de gokken worden geaccepteerd. Elke afgewezen gok is verspilde rekenkracht. Een groter draftmodel gokt beter maar is zelf trager: in de vertaaltest van Leviathan e.a. werd T5-large (800 miljoen parameters) vaker geaccepteerd dan T5-small, maar daalde de versnelling van 3,4 naar 1,7 keer.
  • Het vraagt vrije rekenkracht. De documentatie van vLLM (september 2026) presenteert het als manier om de tijd tussen tokens te verkorten bij een middelmatig tot laag aantal verzoeken, als het geheugen de beperkende factor is.
  • "Verliesvrij" geldt tot op de precisie van de hardware: volgens vLLM en Chen e.a. kunnen afrondingsfouten in drijvendekommagetallen de verdeling van de uitvoer licht doen afwijken.

Voorbeeld

In de vertaaltest van Leviathan e.a. raadde T5-small 7 tokens per ronde, en 75% van zijn gokken werd geaccepteerd. Vergelijking 1 van het paper geeft het verwachte aantal tokens per run van het grote model: (1 − 0,75⁸) / (1 − 0,75) ≈ 3,6. De gemeten versnelling was 3,4 keer, iets lager, omdat ook de runs van het draftmodel tijd kosten.