IN THIS BREAKDOWN · 10 SECTIONS
You can read 22% of this breakdown.
The paper in one minute
Speculative decoding speeds up generation without changing outputs: a cheap draft guesses several tokens, the target model checks them all in one pass, and a probabilistic acceptance rule keeps the result exactly distributed as the target's. The speedup depends on how many guesses survive.
The EAGLE family drafts with a tiny head attached to the target rather than a separate small model. EAGLE fed the head the target's top-layer hidden states (the features just before the output layer) and trained it to predict the next feature, then used the target's output head to get a token. EAGLE-2 added a dynamic tree of guesses shaped by the draft's confidence.
The authors tried the obvious next step, more training data, and found EAGLE barely improved. Their diagnosis: requiring the draft to predict the target's next feature is an extra constraint on a model whose real job is predicting tokens. Removing it raised acceptance of the first guess but broke the second: from step 2 on, the draft has no target features for its own guesses and must feed back its own outputs, which now look nothing like the features it was trained on.
EAGLE-3 makes two changes:
- Training-time test. During training, the draft runs its own multi-step drafting and is trained on those self-generated inputs too, using adjusted attention masks so the extra steps are cheap. Acceptance stays flat across draft depth.
- Multi-layer feature fusion. With no need to reproduce the top layer, the draft can read a concatenation of low, middle and high-layer features from the target, compressed by a linear layer, plus the embedding of the latest sampled token, through a single decoder layer.
With these, more data keeps helping (a scaling trend EAGLE never showed). Trained on ShareGPT plus UltraChat (about 8x EAGLE's data) with target-generated responses, EAGLE-3 reached 3.0-6.5x speedups over standard decoding on Vicuna 13B, LLaMA 3.1 8B, LLaMA 3.3 70B and DeepSeek-R1-Distill-LLaMA 8B, and in SGLang it still added 38% throughput at batch size 64.
Research notes: the problem, approach and results
faster lossless decoding for Vicuna 13B on HumanEval, with 7.5 tokens accepted per draft-verify cycle
SGLang throughput at batch size 64 on one H100 with LLaMA 3.1 8B, where the original EAGLE gave 0.99x
more draft training data than EAGLE (ShareGPT plus UltraChat), which EAGLE-3 can now benefit from
Speculative decoding needs a cheap draft that agrees often with the target. EAGLE drafts by predicting the target's next top-layer feature, which worked well but stopped improving when given more training data, because the feature-prediction constraint limits the draft and later draft steps run on the draft's own, drifting predictions.
Drop feature prediction and predict tokens directly. Feed the draft a fusion of the target's low, middle and high-layer features instead of only the top layer. Because later draft steps must use the draft's own outputs as inputs, simulate those steps during training (training-time test) so the draft learns to work from its own predictions.
Across chat and reasoning models on five tasks, EAGLE-3 sped up lossless decoding 3.0-6.5x (up to 6.47x on HumanEval), about 1.3-1.45x faster than EAGLE-2 on average. In SGLang on one H100 it raised throughput 1.81x at batch 2 and 1.38x at batch 64, where EAGLE's gain had vanished.
Why it matters to an FDE
Speculative decoding is now a standard switch in SGLang, vLLM and TensorRT-LLM, and EAGLE-style draft heads are a common choice for open models. Knowing what drives their gains helps set expectations and decide when to train a custom head.
A draft head is model-specific. It reads the target's internal features, so each target model (and each fine-tune that shifts its features) needs its own trained head. Check one exists for the customer's model, or budget to train one.
Training data should look like production traffic. The paper trains on the target's own responses to ShareGPT and UltraChat prompts, plus math reasoning data for the reasoning model. Acceptance rates, and so speedups, depend on how close drafting data is to real use; code-heavy and template-heavy workloads accept the most.
It can help at moderate batch sizes. Speculation is usually assumed to hurt throughput under load. EAGLE-3 still gave 1.38x at batch 64 in SGLang because more guesses survive per verification; check where the crossover sits on the customer's hardware.
Understand the mechanism. Try it on a real problem.
Unlock this breakdown and 149 more papers.
Premium opens every paper in full, plus every answer, concept, course and guide on the site. One payment for six months of access.
6 months · One payment · No auto-renewal
- ◇1 architecture diagram
- </>1 runnable code experiment
- ▦2 results tables
- ?5 interview questions with answers
- 03Key takeaways
Training-time test, feature fusion, the data scaling result, batch behavior and three misreadings
Free account - 04How it works
The draft pipeline, step-by-step inputs, training-time test masks and the training setup
Premium - 05The numbers that matter
Speedups by task and model, ablation, acceptance by depth, and batch-size results
Premium - 06Try it yourself
Check the tables for impossible rows, model acceptance by depth, and find the batch-size crossover
Premium - 07Where it breaks
Model-specific heads, training cost, large batches, untested scales and slips
Premium - 08Using it on a deployment
Getting a draft head, measuring acceptance, and setting batch-size limits
Premium - 09Interview angles
Five questions this paper prepares you for, with answer hints
Premium - 10Read next
Where to go from here on this site
Premium
