Speculative Decoding: Der Inference-Trick, der LLMs 3x schneller macht – ohne Qualitätseinbußen

Speculative Decoding senkt die Latenz von LLM-Inference um das 2- bis 3-fache, ohne Modellgewichte, Output-Qualität oder die zugrunde liegende Wahrscheinlichkeitsverteilung zu verändern. Der Trick nutzt eine strukturelle Asymmetrie, die die meisten Inference-Pipelines ignorieren: Token zu verifizieren ist deutlich günstiger, als sie von Grund auf zu generieren.
Die Technik wurde in DeepMinds Paper von 2023 formalisiert und wird inzwischen in Produktionssystemen bei Google, Meta und einer wachsenden Zahl von Inference-Optimierungs-Frameworks wie vLLM und TensorRT-LLM eingesetzt. Zu verstehen, warum sie funktioniert – und wo sie an ihre Grenzen stößt – ist essenziell für jedes Team, das LLMs in größerem Maßstab betreibt.
Wie Speculative Decoding tatsächlich funktioniert
Standard-autoregressive Generierung ist von Natur aus sequenziell: Das Modell erzeugt Token für Token, wobei jeder Schritt von allen vorherigen Token abhängt. Ein 70B-Parameter-Modell auf einer einzelnen A100 generiert so etwa 20–30 Token pro Sekunde und verbringt den Großteil seiner Rechenleistung mit Memory-Bandwidth statt mit Arithmetik. Die GPU wartet meist darauf, dass Gewichte aus dem HBM geladen werden, anstatt Zahlen zu crunchieren.
Speculative Decoding führt ein zweites, deutlich kleineres "Draft Model" ein – typischerweise mit 7B Parametern oder weniger – das einen Sequenz von Kandidaten-Token vorschlägt (meist 4–8 auf einmal), noch bevor das größere "Target Model" zum Zug kommt. Das Target Model evaluiert dann alle Draft-Token in einem einzigen Forward Pass. Da die Attention über eine kurze Sequenz bei großen Modellen nahezu genauso schnell ist wie ein Single-Token-Pass, kann das Target Model jeden Draft-Token parallel verifizieren oder ablehnen.
Wenn die Draft-Token dem entsprechen, was das Target Model generiert hätte (also innerhalb seiner Akzeptanzwahrscheinlichkeit liegen), werden alle akzeptiert, und der Prozess rückt gleich mehrere Positionen voran. Wird ein Draft-Token abgelehnt, fällt die Pipeline auf das Sampling aus der Target-Verteilung an dieser Position zurück und beginnt von dort neu zu draften. Die zentrale Erkenntnis – streng bewiesen im Original-Paper – ist, dass dieses Rejection-Sampling eine Output-Verteilung erzeugt, die identisch mit der des Target Models allein ist – die Qualität bleibt also mathematisch erhalten.
Akzeptanzraten und warum die Qualität des Drafts zählt
Der Speedup-Multiplikator ist direkt proportional zur durchschnittlichen Akzeptanzrate der Draft-Token. Liegt die Akzeptanzrate bei 80% und Sie spekulieren 4 Token voraus, verarbeiten Sie effektiv etwa 3,2 Token pro Target-Forward-Pass statt 1. Reale Akzeptanzraten variieren stark je nach Aufgabe:
- Repetitive oder vorlagenbasierte Outputs (Code-Boilerplate, strukturierte Daten): 85–95% Akzeptanz, 3–4x Speedup üblich
- Allgemeiner Chat und Instruction Following: 60–80% Akzeptanz, 1,5–2,5x Speedup typisch
- Kreative Generierung und Reasoning-Ketten: 40–65% Akzeptanz, eher moderate Gewinne
Das bedeutet, dass Speculative Decoding am besten funktioniert, wenn die Aufgabe vorhersagbare Strukturen aufweist – was auf einen Großteil der Produktions-LLM-Workloads zutrifft: Code-Generierung, Dokumentzusammenfassung mit konsistentem Format und Chatbot-Antworten, die Prompt-Vorlagen folgen. Bei offenen kreativen Aufgaben, bei denen das Draft Model systematisch vom Target Model abweicht, sind die Ergebnisse weniger überzeugend.
Self-Speculative Decoding und Medusa Heads
Ein separates Draft Model zu betreiben, bringt zusätzliche operationelle Komplexität: Beide Modelle müssen kollokiert, der Speicher für beide verwaltet und sie synchron gehalten werden. Mehrere Ansätze adressieren dieses Problem.
Self-speculative Decoding nutzt das Target Model selbst als Draft-Generator, aber mit Early-Exit-Ebenen. Das Llama 3.1 70B-Modell kann beispielsweise so konfiguriert werden, dass es Layer 32 (statt der vollen 80 Layer) für das Drafting verwendet und dann für die Verifikation in den vollständigen Stack zurückkehrt. Das eliminiert die Notwendigkeit eines separaten Modells, erfordert aber Architekturunterstützung für Layer-Skipping.
Medusa, entwickelt an der Princeton University und 2024 als Open Source veröffentlicht, verfolgt einen anderen Ansatz: Es fügt den finalen Hidden States des Target Models mehrere zusätzliche Prediction Heads hinzu, die Token an den Positionen +1, +2, +3 usw. vorhersagen. Diese Heads werden kostengünstig durch Supervised Fine-Tuning auf bestehenden Modell-Outputs trainiert. Medusa-2 in Kombination mit tree-basierter Verifikation erreicht einen 2,8x Speedup auf Vicuna-13B ohne separates Draft Model und mit minimalem Genauigkeitsverlust.
SpecInfer von der Carnegie Mellon University erweitert die Idee weiter, indem es einen Baum von Draft-Sequenzen statt einer einzigen Sequenz verwendet, die in einem einzigen gebündelten Forward Pass verifiziert werden. Das erhöht die Akzeptanzwahrscheinlichkeit, da das Target Model nur einen gültigen Pfad im Baum finden muss.
Produktionsaspekte
Die Implementierung von Speculative Decoding in der Produktion erfordert die Berücksichtigung mehrerer Faktoren, die Benchmarks oft unterschätzen:
- Batch-Größen-Interaktion: Speculative Decoding erzielt die größten Gewinne bei Batch Size 1 (interaktive Anwendungsfälle). Mit steigender Batch Size wird der Memory-Bandwidth-Engpass relativ zur Arithmetik kleiner, und der Overhead durch das Draft Model wird weniger gerechtfertigt. Bei Batch Sizes über 32–64 schneidet die Standard-Generierung oft besser ab als Speculative Decoding.
- KV-Cache-Management: Sowohl das Draft Model als auch das Target Model unterhalten eigene KV-Caches. Die Speicherallokation muss beide berücksichtigen, was Serving-Frameworks, die die Cache-Nutzung optimieren (wie vLLMs PagedAttention), verkompliziert.
- Auswahl des Draft Models: Das Draft Model sollte aus derselben Familie stammen wie das Target Model. Die Verwendung von Llama-3-8B zum Drafting für Llama-3-70B liefert deutlich höhere Akzeptanzraten als ein Modell, das auf einem anderen Datensatz oder mit einer anderen Tokenization trainiert wurde.
- Latenz vs. Throughput-Tradeoff: Speculative Decoding optimiert eher auf Latenz (Zeit für die Bearbeitung einer einzelnen Anfrage) als auf Throughput (Token pro Sekunde über alle Anfragen hinweg). Teams, die High-QPS Inference Serving betreiben, müssen evaluieren, welche Metrik für ihre SLA wichtiger ist.
Wohin die Technik sich entwickelt
Googles Implementierung von Speculative Decoding in der Gemini-Serving-Infrastruktur hat Berichten zufolge die Inference-Kosten für latenzsensitive Workloads um 40% gesenkt. NVIDIA hat die Unterstützung für Speculative Decoding in TensorRT-LLM 0.8 mit Multi-Token Prediction (MTP) Heads integriert, und der Ansatz ist inzwischen ein First-Class-Feature und kein experimentelles Plugin mehr.
Die nächste Grenze ist das Cascade Speculative Decoding: die Verwendung von drei oder mehr Modellen in einer Hierarchie (z.B. 1B → 7B → 70B), wobei das kleinste Modell für das mittlere Modell draftet, das wiederum für das große Modell draftet. Erste Ergebnisse des Meta-Forschungsteams deuten auf eine 4- bis 5-fache Latenzreduktion bei strukturierten Aufgaben mit diesem Ansatz hin, allerdings steigen der Memory-Footprint und die Orchestrierungskomplexität entsprechend.
Es gibt zudem aktive Arbeiten zum Speculative Decoding für Mixture-of-Experts-Modelle, wo die unregelmäßigen Compute-Muster des sparse Expert Routings auf nicht offensichtliche Weise mit der Draft-Verifikation interagieren. Mistrals Mixtral-Architektur wurde speziell daraufhin untersucht; erste Ergebnisse zeigen, dass sich die Dynamik der Akzeptanzraten deutlich von dichten Modellen unterscheidet.
Handlungsempfehlungen
- Wenn Ihr Workload latenzsensitiv ist und die Batch Size niedrig (1–8) ist, sollte Speculative Decoding Ihre erste Optimierungsoption sein – Frameworks wie vLLM unterstützen es mit einem einzigen Config-Flag.
- Stellen Sie sicher, dass Ihr Draft Model aus derselben Familie und mit denselben Trainingsdaten wie Ihr Target Model stammt; nicht passende Drafts führen zu schlechten Akzeptanzraten und können den Prozess sogar verlangsamen.
- Messen Sie die Akzeptanzraten an Ihren tatsächlichen Produktions-Prompts, nicht an Benchmarks. Die Aufgabenstruktur ist für die Vorhersage des Speedups wichtiger als die Modellgröße.
- Für Teams, die kein zweites Modell betreiben können, bewerten Sie Medusa Heads als Kompromiss – sie verursachen minimalen Memory-Overhead und können in wenigen Stunden auf einer einzelnen GPU finegetuned werden.
- Wenden Sie Speculative Decoding nicht auf High-Throughput-Batch-Inference an, es sei denn, Sie haben die Batch-Größen-Dynamik für Ihren spezifischen Betriebspunkt verifiziert.