Stapelweise spekulative Dekodierung richtig gemacht.
Batch Speculative Decoding Done Right
October 26, 2025
papers.authors: Ranran Haoran Zhang, Soumik Dey, Ashirbad Mishra, Hansi Wu, Binbin Li, Rui Zhang
cs.AI
papers.abstract
Spekulatives Decoding beschleunigt die Inferenz von LLMs, indem ein kleiner Draft-Modell verwendet wird, um mehrere Token vorzuschlagen, die ein Target-Modell parallel verifiziert. Die Erweiterung dieses Konzepts auf Batches ist für den Produktionseinsatz unerlässlich, führt jedoch zum Problem der ungleichlangen Tensoren (Ragged Tensor Problem): Sequenzen im selben Batch akzeptieren unterschiedlich viele Draft-Token, was die Rechtsausrichtung zerstört und Positions-IDs, Attention-Masks und den KV-Cache-Zustand korrumpiert. Wir zeigen, dass mehrere existierende Batch-Implementierungen die Äquivalenz der Ausgaben verletzen – die grundlegende Anforderung, dass spekulatives Decoding identische Token-Sequenzen wie die Standard-autoregressive Generierung erzeugen muss. Diese Verletzungen treten genau aufgrund einer unsachgemäßen Handhabung des Ragged Tensor Problems auf. Als Antwort darauf (1) charakterisieren wir die Synchronisationsanforderungen, die Korrektheit garantieren, (2) präsentieren einen korrektheitsorientierten Batch-Algorithmus für spekulatives Decoding (EQSPEC), der zeigt, dass die Neuausrichtung 40 % des Overheads verursacht, und (3) führen EXSPEC ein, das einen gleitenden Pool von Sequenzen verwaltet und dynamisch Gruppen gleicher Länge bildet, um den Neuausrichtungs-Overhead zu reduzieren und gleichzeitig die spekulativen Geschwindigkeitssteigerungen pro Sequenz beizubehalten. Auf dem SpecBench-Datensatz erzielt unser Ansatz über Vicuna-7B/68M, Qwen3-8B/0.6B und GLM-4-9B/0.6B Target/Draft-Paare hinweg einen bis zu 3-fachen Durchsatzgewinn bei einer Batch-Größe von 8 im Vergleich zur Batch-Größe 1, mit effizienter Skalierung bis zur Batch-Größe 8, bei gleichzeitiger Wahrung von 95 % Ausgabeäquivalenz. Unsere Methode benötigt keine benutzerdefinierten Kernel und lässt sich sauber in bestehende Inferenz-Stacks integrieren. Unser Code ist verfügbar unter https://github.com/eBay/spec_dec.
English
Speculative decoding speeds up LLM inference by using a small draft model to
propose multiple tokens that a target model verifies in parallel. Extending
this idea to batches is essential for production serving, but it introduces the
ragged tensor problem: sequences in the same batch accept different numbers of
draft tokens, breaking right-alignment and corrupting position IDs, attention
masks, and KV-cache state. We show that several existing batch implementations
violate output equivalence-the fundamental requirement that speculative
decoding must produce identical token sequences to standard autoregressive
generation. These violations occur precisely due to improper handling of the
ragged tensor problem. In response, we (1) characterize the synchronization
requirements that guarantee correctness, (2) present a correctness-first batch
speculative decoding EQSPEC that exposes realignment as consuming 40% of
overhead, and (3) introduce EXSPEC, which maintains a sliding pool of sequences
and dynamically forms same-length groups, to reduce the realignment overhead
while preserving per-sequence speculative speedups. On the SpecBench dataset,
across Vicuna-7B/68M, Qwen3-8B/0.6B, and GLM-4-9B/0.6B target/draft pairs, our
approach achieves up to 3times throughput improvement at batch size 8
compared to batch size 1, with efficient scaling through batch size 8, while
maintaining 95% output equivalence. Our method requires no custom kernels and
integrates cleanly with existing inference stacks. Our code is available at
https://github.com/eBay/spec_dec.