GO TO A SECTION

↑ ↓ to navigate · Enter to openExplore all sections →
FDEInterviews logo
arXiv preprint

EAGLE-3: Scaling up Inference Acceleration of Large Language Models via Training-Time Test

EAGLE-3's draft head reads the target model's own hidden states from three layers and is trained on its own guesses. Lossless decoding runs 3-6.5x faster, and it still helps at batch 64 in SGLang.

Breakdown by FDE Interviews · 11 min read · Updated

About the original · 2025
AUTHORS
Li, Wei, Zhang, Zhang
FROM
Peking University, Microsoft Research, University of Waterloo, Vector Institute
PUBLISHED
Mar 2025 · arXiv preprint
CITED BY
376Semantic Scholar · Oct 2026
IN THIS BREAKDOWN · 10 SECTIONS

You can read 22% of this breakdown.

01

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.

THE IDEA, VISUALLY
THE DRAFT HEAD (SECTION 3.1) target model forward pass on 'How can' → 'I' low layer middle layer high layer concat → FC + emb('I') 1 decoder layer LM head → 'do' STEP 2+: NO TARGET FEATURE YET the draft feeds back its own output a('I') with emb('do'), and so on for each further guess training-time test train on those self-generated inputs too (custom attention masks) WHAT CHANGED FROM EAGLE (SECTIONS 1, 3) no feature-prediction loss: predict tokens directly fused low/mid/high features instead of the top layer only acceptance stays flat at later draft steps (Figure 7) now gains from more data: ShareGPT + UltraChat, ~8x EAGLE's Still lossless: standard speculative sampling acceptance Still uses EAGLE-2's dynamic draft tree MEAN SPEEDUP, TEMPERATURE 0, 5 TASKS (TABLE 1) Vicuna 13B 4.22x EAGLE-2 5.51x LLaMA 3.1 8B 3.23x EAGLE-2 4.44x LLaMA 3.3 70B 2.85x EAGLE-2 4.12x R1-Distill 8B 3.26x EAGLE-2 4.16x peak 6.47x on HumanEval (Vicuna 13B), 7.54 tokens per cycle THROUGHPUT VS BATCH, SGLANG, 1x H100 (TABLE 3) LLaMA 3.1 8B, MT-bench, vs no speculation EAGLE EAGLE-3 batch 2 1.40 1.81 batch 8 1.23 1.62 batch 24 0.93 1.39 batch 64 0.99 1.38 batch 1 in SGLang: 158 → 244 (EAGLE-2) → 373 tokens/s vLLM, batch 56: EAGLE 0.71x, EAGLE-3 1.01x code: github.com/SafeAILab/EAGLE
Instead of a separate small model, EAGLE-3 drafts with one extra decoder layer that reads the target model's internal features, and it is trained on its own multi-step guesses so later guesses stay accurate.
Research notes: the problem, approach and results
6.5x

faster lossless decoding for Vicuna 13B on HumanEval, with 7.5 tokens accepted per draft-verify cycle

1.38x

SGLang throughput at batch size 64 on one H100 with LLaMA 3.1 8B, where the original EAGLE gave 0.99x

~8x

more draft training data than EAGLE (ShareGPT plus UltraChat), which EAGLE-3 can now benefit from

THE PROBLEM

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.

THE IDEA

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.

THE RESULT

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.

02

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.

THE FULL BREAKDOWN

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

Get Premium · ₹2,000 / $25
  • ◇1 architecture diagram
  • </>1 runnable code experiment
  • ▦2 results tables
  • ?5 interview questions with answers
  1. 03Key takeaways

    Training-time test, feature fusion, the data scaling result, batch behavior and three misreadings

    Free account
  2. 04How it works

    The draft pipeline, step-by-step inputs, training-time test masks and the training setup

    Premium
  3. 05The numbers that matter

    Speedups by task and model, ablation, acceptance by depth, and batch-size results

    Premium
  4. 06Try it yourself

    Check the tables for impossible rows, model acceptance by depth, and find the batch-size crossover

    Premium
  5. 07Where it breaks

    Model-specific heads, training cost, large batches, untested scales and slips

    Premium
  6. 08Using it on a deployment

    Getting a draft head, measuring acceptance, and setting batch-size limits

    Premium
  7. 09Interview angles

    Five questions this paper prepares you for, with answer hints

    Premium
Back to the paper library →