speculative decoding-pipeline
En teknik der fremskynder generering af tekst i store sprogmodeller ved at lade en hjælper-model generere foreløbige tokens, som hovedmodellen verificerer parallelt.
Kort fortalt
Spekulativ afkodning er en metode til at gøre sprogmodeller hurtigere ved at lade en hurtig, mindre model gætte de næste ord, mens den store model tjekker gættene på én gang.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En inferens-accelerationsmetode for store sprogmodeller, hvor en mindre, hurtigere 'draft-model' genererer flere tokens i et enkelt autoregressivt trin, og en større 'target-model' verificerer disse tokens i parallel; kun de tokens, der accepteres, beholdes, og processen gentages.
- Ved at implementere en speculative decoding-pipeline opnåede vi en 2-3x speedup uden tab af outputkvalitet. — Leviathan et al., 2022
- Pipelinen fungerer ved at draft-modellen først genererer k kandidater, og target-modellen accepterer dem med en sandsynlighedsbaseret betingelse.
Hvornår bruges det
Bruges i praksis til at speed-up inferens af store sprogmodeller uden at ofre kvalitet, typisk i produktionssystemer som chatbots og tekstgeneratorer, hvor latens er afgørende. Implementeres ofte som en pipeline med en lille 'draft model' og en stor 'target model', der verificerer i parallele forward passes.
Kodeeksempel
def speculative_decode(draft_model, target_model, input_ids, k=4):
# draft step: generate k tokens autoregressively
draft_tokens = draft_model.generate(input_ids, output_length=k)
# verify step: target model processes full sequence
target_logits = target_model.forward(input_ids + draft_tokens)
# acceptance criterion: compare target and draft probabilities
accepted = []
for i in range(k):
if target_logits[i] >= draft_tokens[i]: # simplified
accepted.append(draft_tokens[i])
else:
break
return input_ids + acceptedEksempel på en simpel implementering af en spekulativ afkodningspipeline, hvor en draft-model genererer tokens, og target-modellen verificerer.
Oprindelse
Termen opstod i forskningslitteraturen omkring 2022-2023 som en metode til at udnytte redundans i autoregressiv generering. 'Speculative' refererer til at modellen gætter på fremtidige tokens.
Kilder
2- Leviathan et al., Fast Inference from Transformers via Speculative Decoding, ICML 2023
- Chen et al., Accelerating Large Language Model Decoding with Speculative Decoding, 2023