Was ist Spekulatives Decoding?
Spekulatives Decoding ist eine Inferenz-Optimierungstechnik, die die Textgenerierung von großen Sprachmodellen beschleunigt. Anstatt Token einzeln mit dem großen Modell zu generieren, schlägt ein kleineres "Draft"-Modell schnell mehrere Kandidaten-Token vor, die das größere "Ziel"-Modell dann in einem einzigen Forward-Pass verifiziert.
Die Schlüsselerkenntnis ist, dass Verifikation viel günstiger ist als Generierung. Das Zielmodell kann mehrere Token parallel prüfen, weil es alle Positionen während eines Forward-Pass gleichzeitig verarbeitet, während autoregressive Generierung einen Forward-Pass pro Token erfordert.
Der Inferenz-Engpass
Standard autoregressives Decoding ist inhärent langsam, weil jedes Token von allen vorherigen Token abhängt und sequentielle Generierung erzwingt.
Sequentielle Abhängigkeit
Jedes neue Token erfordert einen vollständigen Forward-Pass durch das Modell. Für ein 70B-Parameter-Modell bedeutet die Generierung von 100 Token 100 separate Forward-Passes.
Speicherbandbreiten-Limitiert
LLM-Inferenz ist oft durch die Geschwindigkeit limitiert, mit der wir Modellgewichte aus dem Speicher laden können, nicht durch Berechnung. Die GPU wartet untätig auf Daten.
Wie es funktioniert
Spekulatives Decoding folgt einem Draft-dann-Verify-Muster, das die parallele Natur der Transformer-Verifikation ausnutzt.
Draft-Generierung
Ein kleines, schnelles Draft-Modell (z.B. 7B Parameter) generiert K Kandidaten-Token autoregressiv. Das ist schnell, weil das Draft-Modell klein ist.
Parallele Verifikation
Das Zielmodell verarbeitet den Prompt plus alle K Draft-Token in einem einzigen Forward-Pass und berechnet Wahrscheinlichkeiten für jede Position.
Token-Akzeptanz
Jedes Draft-Token wird akzeptiert oder abgelehnt durch Vergleich der Draft- und Ziel-Wahrscheinlichkeiten. Ein Rejection-Sampling-Schema stellt sicher, dass die Ausgabeverteilung exakt dem Zielmodell entspricht.
Fortfahren oder Neu-Samplen
Akzeptierte Token werden behalten. Bei der ersten Ablehnung sampelt das Zielmodell ein Korrektur-Token. Der Prozess wiederholt sich von der neuen Position.
Visuelles Beispiel
So verarbeitet spekulatives Decoding eine einfache Fortsetzung:
Draft-Modell-Anforderungen
Die Wahl des Draft-Modells beeinflusst die erreichte Beschleunigung erheblich. Das ideale Draft-Modell balanciert Geschwindigkeit mit Übereinstimmung zum Zielmodell.
Viel Kleiner
Das Draft-Modell sollte 5-10x kleiner sein als das Ziel. Ein 7B-Draft für ein 70B-Ziel, oder ein 1B-Draft für ein 7B-Ziel.
Ähnliche Verteilung
Höhere Akzeptanzraten kommen von Draft-Modellen, die auf ähnlichen Daten trainiert oder vom Zielmodell destilliert wurden.
Gleicher Wortschatz
Draft und Ziel müssen denselben Tokenizer teilen, um Token-Level-Kompatibilität während der Verifikation sicherzustellen.
Schnelle Inferenz
Das Draft-Modell muss schnell genug sein, dass das Drafting von K Token weniger Zeit braucht als K Forward-Passes des Zielmodells.
Was beeinflusst die Beschleunigung?
Typische Beschleunigungen liegen bei 2-3x, aber mehrere Faktoren beeinflussen die tatsächliche Verbesserung.
Varianten und Erweiterungen
Forscher haben mehrere Variationen entwickelt, um das grundlegende spekulative Decoding zu verbessern.
Self-Speculative Decoding
Nutzt Early-Exit aus dem Zielmodell selbst als Draft, wodurch ein separates Draft-Modell überflüssig wird.
Medusa
Fügt dem Zielmodell mehrere Vorhersage-Köpfe hinzu, um Draft-Token parallel zu generieren und sequentielle Draft-Generierung zu vermeiden.
Lookahead Decoding
Generiert mehrere parallele Spekulationszweige unter Verwendung von N-Gramm-Mustern aus dem Kontext, kein Draft-Modell nötig.
Staged Speculative Decoding
Verwendet eine Kaskade von zunehmend größeren Draft-Modellen für bessere Akzeptanzraten bei schwierigen Token.
Limitierungen
Obwohl spekulatives Decoding erhebliche Beschleunigungen bietet, hat es wichtige Einschränkungen, die begrenzen, wann und wie es effektiv eingesetzt werden kann.
Draft-Modell-Overhead
Du musst ein separates Draft-Modell betreiben und warten. Das fügt Speicher-Overhead hinzu (das Draft-Modell muss neben dem Zielmodell in den GPU-Speicher passen) und erhöht die operationelle Komplexität.
Abnehmende Erträge bei Batch-Größe
Spekulatives Decoding glänzt bei Einzelsequenz-Inferenz. Bei größeren Batch-Größen wird das Zielmodell rechengebunden statt speichergebunden, was den Vorteil reduziert.
Variable Beschleunigung
Die Beschleunigung hängt stark von der Akzeptanzrate ab, die je nach Aufgabe variiert. Kreatives Schreiben mit hoher Temperatur sieht möglicherweise wenig Vorteil, während strukturierte Code-Generierung stark profitiert.
Implementierungs-Komplexität
Korrektes Rejection-Sampling ist schwierig zu implementieren. Naive Implementierungen können Ausgaben erzeugen, die von der wahren Verteilung des Zielmodells abweichen.
Nicht immer schneller
Wenn das Draft-Modell zu langsam, zu ungenau ist, oder das Zielmodell bereits schnell genug ist, kann spekulatives Decoding tatsächlich langsamer sein als Standard-Decoding.
Interaktive Simulation
Spekulatives Decoding in Aktion beobachten
Das Draft-Modell schlägt schnell Token vor (lila). Das Zielmodell verifiziert sie in einem Pass (cyan). Akzeptierte Token sind grün, Korrekturen orange. Höhere Draft-Ziel-Übereinstimmung bedeutet mehr akzeptierte Token und bessere Beschleunigung.
Wichtige Erkenntnisse
- 1Spekulatives Decoding nutzt ein kleines Draft-Modell, um Token vorzuschlagen, die vom Zielmodell parallel verifiziert werden
- 2Es bietet 2-3x Beschleunigung bei identischer Ausgabe zum Standard-Decoding
- 3Die Technik nutzt aus, dass Transformer-Verifikation parallel ist, während Generierung sequentiell ist
- 4Die Effektivität hängt von der Draft-Ziel-Übereinstimmung ab: ähnliche Modelle und vorhersagbare Aufgaben ergeben höhere Akzeptanzraten