Speculative decoding
Werking van speculative decoding
Speculative decoding is een techniek om de inferentiesnelheid van grote taalmodellen te verhogen zonder de outputkwaliteit aan te tasten. Het idee is om een klein, snel 'draft'-model meerdere tokens te laten genereren. Het grote, nauwkeurige model verifieert vervolgens deze voorgestelde tokens in één keer. Als een token wordt goedgekeurd, kan het grote model meerdere tokens parallel verwerken in plaats van één voor één. Als een token wordt afgewezen, wordt de generatie vanaf dat punt hervat met het grote model. Dit leidt tot een aanzienlijke versnelling, vooral wanneer het draft-model goed presteert. De mate van versnelling hangt af van de acceptatiegraad van de voorgestelde tokens. Speculative decoding is model-agnostisch en kan worden gecombineerd met andere optimalisaties zoals kwantisatie. Het wordt gebruikt in productiesystemen waar latentie belangrijk is, zoals chatbots en realtime vertaling. Het vereist wel extra geheugen voor het draft-model, maar de snelheidswinst weegt vaak op tegen de kosten.
Varianten en beperkingen
Er zijn verschillende varianten van speculative decoding. Self-speculative decoding gebruikt hetzelfde model met een aangepaste aandachtspatroon om een draft te maken. Medusa en Lookahead decoding zijn alternatieve benaderingen die meerdere toekomstige tokens voorspellen. Deze methoden kunnen efficiënter zijn dan een apart draft-model. Beperkingen van speculative decoding zijn onder andere de noodzaak van een goed draft-model dat dezelfde tokenizer en vocabulaire gebruikt. Als het draft-model te veel afwijkt, daalt de acceptatiegraad en verdwijnt de snelheidswinst. Ook is de implementatie complexer dan standaard inferentie. Desondanks is speculative decoding een van de meest effectieve technieken voor het versnellen van LLM's. Het is vooral nuttig in scenario's waar latentie cruciaal is en er voldoende rekenkracht is voor twee modellen. Naarmate modellen groter worden, wordt het belang van dergelijke optimalisaties steeds groter. Het is een actief onderzoeksgebied met regelmatig nieuwe verbeteringen.