Deepseek.ai is an independent website and is not affiliated with, sponsored by, or endorsed by Hangzhou DeepSeek Artificial Intelligence Co., Ltd.

    June 29, 2026 • Frank Haarman

    How Speculative Decoding Makes LLMs Faster Without Retraining (and What DSpark Adds)

    In short: Speculative decoding speeds up LLM inference with byte-identical output and no retraining. Here's how it works — and how DeepSeek's DSpark pushes per-user speed 57–85%.

    If you run large language models, the single biggest cost and latency problem is decoding: the model produces text one token at a time, and there is a whole family of techniques designed to break that bottleneck without touching the model's weights. The most important of these is speculative decoding. This article explains what it is, why it works, and what DeepSeek's DSpark — a concrete, open-source implementation — changes to squeeze out 57–85% more per-user speed on the exact same hardware, with identical outputs.

    Why decoding is slow: a memory problem, not a compute problem

    A language model is usually described as a "next-token predictor": it produces one token, feeds it back in, and produces the next. For a six-token answer, that's six full forward passes through the network, so latency grows linearly with output length.

    The deeper issue is that this loop is memory-bound, not compute-bound. During generation the GPU isn't "thinking harder" — it spends most of its time waiting, reloading the model's weights from memory to process a single token at a time. The hardware is underused. Every serious inference-speed technique is really trying to get more useful work done per memory load, rather than simply adding more compute.

    Diagram of naive autoregressive decoding showing six sequential forward passes for six tokens, with the GPU bottlenecked by memory loads.
    Why naive decoding is slow: 6 forward passes for 6 tokens, GPU memory-bound.

    What speculative decoding actually does

    Speculative decoding attacks that waste by pairing two models: a small, fast draft model and the big target model you actually want to serve. The draft model guesses an entire block of upcoming tokens at once — say six — and the target model checks all six in a single forward pass. You keep the longest correct prefix "for free," stop at the first wrong guess, let the target correct it, and continue from there.

    The crucial property is that the result is byte-for-byte identical to what the target model would have produced on its own. It is lossless in that sense — you are not trading quality for speed — and you have collapsed what would have been several expensive target passes into one.

    That leads to the equation that governs every variation of the idea:

    Time per token = (draft time + verify time) ÷ tokens accepted per round.

    This exposes three independent levers: a faster drafter, a better drafter (so more of its guesses get accepted), and a smarter verifier. Different methods pull different levers, and that's where the trade-offs live.

    The two older approaches — and the weakness of each

    Before DSpark, draft models tended to fall into two camps, each with a built-in flaw.

    Autoregressive drafters (such as Eagle 3) generate each guess conditioned on the previous one. That makes them accurate, but slow, and they tend to get stuck producing very small blocks — limiting how much you can win per round.

    Parallel drafters (such as DFlash) produce the whole block in one shot. That's fast and allows much larger blocks, but each guessed token ignores the others, so the tail of the block "drifts" and gets rejected by the verifier. The DSpark paper names this failure mode suffix decay: on Qwen-3, a parallel drafter's acceptance rate slides down sharply toward the end of each block.

    Speculative decoding pattern: a small draft model proposes six candidate tokens, the target model verifies them in one pass, and only the longest correct prefix is kept.
    The speculative decoding pattern: draft proposes 6, target verifies in one pass, keep longest correct prefix.

    DSpark's first idea: a lightweight serial head

    DSpark keeps a parallel draft backbone — so it stays fast and emits every position at once, like DFlash — but bolts on one lightweight serial head whose only job is to let each token glance at the one before it. That's just enough autoregressivity to kill suffix decay without giving up the parallel speedup.

    The measured effect on Qwen-3: DSpark accepts roughly 30% longer blocks than Eagle 3 and 16–18% more than DFlash. More accepted tokens per round means fewer expensive target passes overall.

    DSpark architecture: a parallel draft backbone, a lightweight serial head linking adjacent tokens, a confidence head scoring each token, and a hardware-aware scheduler choosing how much of the block to verify.
    DSpark architecture: parallel backbone + lightweight serial head + confidence-scheduled verifier.

    DSpark's second idea: confidence-scheduled verification

    The second contribution targets a problem that only shows up under real serving load. Normally the target verifies every token in a proposed block — including tail tokens that are probably going to be rejected anyway. Under heavy traffic, that's GPU time stolen from other users.

    DSpark adds a confidence head that scores each proposed token, predicting which ones will survive verification, plus a hardware-aware scheduler that watches how loaded the server is. Under light load it verifies the full block; under heavy load it verifies only the confident prefix and skips the doomed tail. This is what turns speculative decoding from a single-request trick into a fleet-level serving optimization.

    The production numbers — and why they generalize

    DeepSeek's headline figures come from its own V4 Flash and V4 Pro serving stacks: at the same total throughput, each user receives their tokens 57% to 85% faster, with no extra hardware. The wider "50 to 400%" range you'll sometimes see refers to corner cases on the serving frontier; 57–85% is the typical, conservative outcome.

    Just as important, the DSpark head is a single attachable component rather than a DeepSeek-specific architecture. With the right draft checkpoints it also works on Qwen and Gemma, which is why it's reasonable to expect other labs to adopt the same approach in their own inference stacks. DeepSeek open-sourced the training code and draft-model checkpoints, so the method is reproducible rather than a closed internal trick.

    A reality check on reproducing the speedup

    One of the most useful parts of the source video is a hands-on replication attempt on an Apple M2 Max, pairing a 0.6B draft model with an 8B target. The behavior matched the paper qualitatively — high acceptance on code and reasoning prompts, lower on open-ended chat — and three of four outputs were byte-identical to the target, with one flipping on a near-tie during batched verification.

    But it ran slower, not faster. The reason is instructive: the draft model was only about 3.5× faster than the target, while speculative decoding generally needs a 10–30× speed ratio to pay off — and the author didn't have the actual trained DSpark draft head. The mechanism worked; the speedup didn't. The lesson is that the headline numbers depend entirely on having a properly trained, properly sized draft model, which is exactly what the released checkpoints provide.

    Frequently Asked Questions

    What is speculative decoding in simple terms?

    It's a technique where a small "draft" model guesses several upcoming tokens and a large "target" model verifies them all in one pass, keeping the correct ones. It produces the same output the large model would have, but faster.

    Does speculative decoding change the model's output quality?

    No. Done correctly it is lossless — the output is byte-for-byte identical to what the target model would generate alone. You are speeding up how tokens are produced, not what they are.

    What problem does DSpark solve that earlier methods didn't?

    It fixes "suffix decay" — the tendency of fast parallel drafters to produce a block whose tail gets rejected — by adding a lightweight serial head, and it adds confidence-scheduled verification so the server skips doomed tokens under load.

    How much faster does DSpark make inference?

    On DeepSeek's own V4 Flash and V4 Pro serving stacks, it delivers roughly 57–85% faster per-user generation at the same throughput, on the same hardware. Wider numbers like "up to 400%" describe corner cases, not the typical result.

    Does DSpark only work on DeepSeek models?

    No. The draft head is an attachable component that also works on models such as Qwen and Gemma, given appropriate draft checkpoints, which is why it's expected to generalize across inference stacks.

    Can I reproduce these speedups on a laptop?

    Usually not. Speculative decoding needs a draft model roughly 10–30× faster than the target and a properly trained draft head; on consumer hardware with a weak speed ratio it can run slower than plain decoding, even when the outputs are correct.

    Bottom line

    Speculative decoding is the most practical way to make LLM inference faster without retraining or quantizing — and it's lossless. DSpark is two clean ideas stacked together: a semi-autoregressive draft head that kills suffix decay so more tokens are accepted per round, and a confidence-scheduled verifier that stops wasting GPU on doomed tail tokens under load. Together they yield roughly 57–85% per-user speedups in real production serving, on models including DeepSeek V4, Qwen and Gemma, with the training code and checkpoints openly available. If you serve LLMs at scale, it's worth a serious look.