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. 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 + accepted

Eksempel 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