Literature review · Pluralis · Part IX · September 2026
Every paper, engineering blog, repo and model release we could find that trains, adapts, selects or benchmarks draft models specialised to a domain, task, language, user, or fine-tuned target. Four search passes, ~100 queries, ~150 page fetches; every arXiv ID resolved against arxiv.org unless marked (unverified). The thesis the evidence supports: a generalist drafter loses a quarter to a third of its acceptance out of domain, the fix is almost entirely a matter of which prompts you regenerate with the target, and for multi-domain serving a pool of specialists plus a router beats one mixed head.
The domain-shift penalty is large and well quantified. A generalist drafter loses roughly a quarter to a third of its acceptance when the workload or the target moves out of its training distribution. SambaNova measured a generic Llama-3.2-1B drafter falling from 60.7% to 37.5% token acceptance on a biology-tuned target and from 49.6% to 35.7% on Chinese (2503.07807). TAPS measured HASS heads at accepted length 5.02 vs 4.09 on GSM8K depending on whether they were trained on MathInstruct or ShareGPT, and 3.98 vs 2.90 on MT-Bench the other way round (2603.27027). HedgeSpec's specialist pool shows a Python drafter at 7.89 mean accepted tokens on Python but 2.86 on biology (2510.20064). The worst case is a fine-tuned target: an EAGLE-style drafter trained for Qwen2.5-7B collapses to τ ≈ 1.2–2.2 on Qwen2.5-Math / -Coder / Meditron3 variants, versus 4.0–4.8 after re-adaptation (EDA, 2603.09527). Even for a single generic head, per-domain accepted length spreads ~1.5× (SPEED-Bench: coding/math ≈ 3.0–3.5 vs roleplay/writing ≈ 1.9–2.5).
One lever dominates: regenerate responses with the exact target, in the served mode. Every 2025–26 production recipe (SpecForge, Red Hat Speculators, NVIDIA ModelOpt/NeMo, Baseten, Nebius, Modal, AMD, Together, AngelSpec) converges on: take prompts from the deployment domain (production logs or a representative open set), have the target itself write the responses greedily in the reasoning mode that will be served, and train on that. SpecForge v0.3 calls this "the single largest lever on final acceptance". Synthetic prompts (Magpie) reach 80–93% of what real user queries give (2503.07807). Domain adaptation is a change of prompt set, not of algorithm.
Offline white-box KD > black-box SFT > online distillation, when a corpus exists (SambaNova: offline beats online by 11–25%, white-box beats black-box by 2–10%). On-policy distillation under real verification (Draft-OPD, 2605.29343) then breaks the offline plateau (+23% over EAGLE-3 on thinking models). Online adaptation is best framed as drift insurance — NVIDIA's NeMo-RL ablation shows it adds almost nothing with a good domain init (1.77× → 1.78×) but recovers a poor init (1.51× → 1.63×).
Serving many domains: pool + router beats one mixed head; weight-merging fails. TAPS shows checkpoint averaging of two domain heads is worse than either (τ ≈ 2.6), while confidence routing (4.8) or merged-tree verification (5.1) recovers the specialist number. MetaSD (UCB bandit), TaskSpec (prompt classifier), HedgeSpec (full-information no-regret) and OnlineSPEC's Ens-Eagle (Hedge ensemble) all instantiate the pool design. Parameter-efficient specialisation (EDA's private expert at 27.5% of params, TaskSpec's per-task LoRA, the vLLM DFlash-LoRA RFC at ~28× smaller, Turbo LoRA's per-adapter speculator) makes a per-domain drafter cheap enough to ship with every fine-tune.
Measured business numbers for workload-specific drafters. Fireworks: 29% → 76% draft hit rate (generic → custom), ~2× latency on Cursor code-gen. Together: +1.23–1.45× decode speed over the base speculator from 10–50M tokens of customer traffic, 23–26% fewer GPU-hours. Baseten: +20% median acceptance from live training. Nebius LK losses: +8–10% accepted length from the loss alone. Counter-example: Thoughtworks found a custom EAGLE-3 for a domain-adapted Nemotron 3.5 Lightning "could only match" the co-trained native MTP head.
Which domains are easy and hard. Code, math and structured output (JSON, SQL, function calling) give the longest accepted spans; open chat, roleplay, creative writing, summarisation, and low-resource languages the shortest. Language is a domain in its own right: per-language drafters give 1.89× vs 1.18× for a generic one (2406.16758), a 13% acceptance gap separates the fastest and slowest MGSM languages (2510.02128), and task-distilled low-resource-language drafters overfit (α 0.60 in-task but 0.43 off-task, 2605.30580). Long context and RL rollouts are also "domains" — EAGLE-3's accepted length drops from ~5.8 to 1.28 on long inputs (OWL, 2510.07535), and RL policy drift stales a fixed drafter within an epoch (ReSpec, TLT).
| # | Work | Link | Venue / year | Drafter type | Domain(s) | Adaptation method | Headline result | Code |
|---|---|---|---|---|---|---|---|---|
| 1 | Training Domain Draft Models for SD: Best Practices and Insights (Hong et al., SambaNova) | 2503.07807 | ICLR'25 SCOPE wkshp | Independent (Llama-3.2-1B) | Function calling, biology, Chinese | Offline vs online KD; white- vs black-box; synthetic (Magpie) vs real logs | Generic drafter −28–38% acceptance OOD; domain KD lifts function calling 60.3→82.6%; offline > online by 11–25%; synthetic reaches 80–93% of real | — |
| 2 | DistillSpec (Zhou et al., Google) | 2310.08461 | ICLR 2024 | Independent (T5 / GPT-2) | XSum, GSM8K, CNN/DM, WMT | On-policy KD per task, divergence matched to decoding mode | 10–45% over standard SD; GSM8K-distilled drafter still +26% avg on 23 unseen BBH tasks | — |
| 3 | FastDraft: How to Train Your Draft (Zafrir et al., Intel) | 2411.11055 | ACL'25 Findings | Independent 50–150M, pretrained from scratch | Code vs text | Pretrain ~10B tokens (code+text mix), then align on target-synthesised data | Up to 3× memory-bound on code, 2× on text; <24 h on 8× Gaudi-2 | OpenVINO HF collection |
| 4 | EDA: Efficiently Aligning Draft Models via Parameter- and Data-Efficient Adaptation (Lin et al., Xiamen/TeleAI) | 2603.09527 | arXiv Mar 2026 | EAGLE-style, shared + private experts | Fine-tuned targets: math, code, medical (Meditron3) | Retrain only private expert (27.5% params) on target-regenerated data + Mahalanobis sample selection | Training-free transfer collapses to τ 1.19–2.15; EDA restores 4.30–5.35 at 39–61% of full-retrain cost | GitHub |
| 5 | TAPS: Task-Aware Proposal Distributions (Zbib et al., KAUST/AUB) | 2603.27027 | arXiv Mar 2026 | EAGLE-2 / HASS heads on Llama-3-8B | Math vs chat | Separate domain heads; compare weight averaging, confidence routing, merged-tree verification | In/OOD gap ≈25–30% τ; averaging fails (2.6), routing 4.8, merged tree 5.1 | GitHub · HF |
| 6 | Towards Fast Multilingual LLM Inference: SD and Specialized Drafters (Yi et al., KAIST/KT) | 2406.16758 | EMNLP 2024 | Independent, per language | De/Fr/Ru/Ja/Zh→En translation | Targeted pretrain-then-finetune per language | Specialised 1.89× vs generic 1.18×; cross-language transfer loses 15–37%; log-linear in finetune tokens | GitHub |
| 7 | Speculative Decoding Across Languages (Paudel et al., U. Colorado) | 2605.30580 | arXiv May 2026 | Distilled small models + n-gram | 11 low-resource languages | Task-specific vs general distillation vs n-gram | Translation α 0.40→0.60 (task-distilled) but 0.43 on story gen (overfits); n-gram best wall-clock 1.30× | promised |
| 8 | The Disparate Impacts of Speculative Decoding (Sandler et al., UVA/Cohere) | 2510.02128 | arXiv Oct 2025 | Independent | Multilingual (MGSM) | Stochastic corrective drafter fine-tuning (s-CDF) reweighting under-fit languages | 13% acceptance gap across languages; s-CDF +12% fairness metric | — |
| 9 | EfficientEdit (Wang et al., Beihang/Huawei) | 2506.02780 | ASE 2025 | Independent code model (Qwen2.5-Coder-7B) | Code editing | Edit-oriented fine-tune, loss masks reused tokens | Up to 8.26× (CanItEdit), 13.09× (CodeIF-Bench) | GitHub |
| 10 | Direct Alignment of Draft Model for SD with Chat-Fine-tuned LLMs (Goel et al., Qualcomm) | 2403.00858 | arXiv 2024 | Independent 115M | Chat (Llama-2-Chat-7B) | Train on target-generated instruction data with TVD++ loss | 2.3× block efficiency, 2.4× speedup | — |
| 11 | Draft-OPD: On-Policy Distillation for Draft Models (Lei et al., SJTU/Shanghai AI Lab) | 2605.29343 | arXiv May 2026 | DFlash / EAGLE-3 heads | Thinking-mode reasoning, code, SWE-Bench | Rollouts under real SD verification; fwd-KL on accepted, rev-KL on rejected | >5× lossless on Qwen3 thinking; +23% vs EAGLE-3; math 5.55×, code 4.85×, chat 3.18× | GitHub |
| 12 | AngelSpec (Liu et al., Tencent) | 2607.25852 | arXiv Jul 2026 | MTP for chat; block-diffusion for code/math | Chat, QA, math, code, agent, long code-agent traces | Domain-matched drafter architecture + target-regenerated data | Acceptance decays fast with depth in chat, sustains in code/math | — |
| 13 | Temperature-Centric Investigation of SD with KD (Ouyang et al.) | 2410.10141 | EMNLP'24 Findings | Independent | Cross-domain × temperature | Distil at serving temperature | Domain and temperature mismatch compound; KD at deployment T is the fix | GitHub |
| 14 | AdaSPEC: Selective KD for drafters (Hu et al., Berkeley/Tsinghua) | 2510.19779 | arXiv Oct 2025 | Independent | Per-dataset | Token-selective KD | +0.4–15% acceptance per dataset, largest on MBPP | GitHub |
| 15 | Flatter Tokens Are More Valuable for Draft Training (Fan et al.) | 2601.18902 | arXiv Jan 2026 | EAGLE-2 | Data selection | Keep high-entropy (flat) samples | 50% data → 2.02× faster training, within 4% of full-data speedup | — |
| 16 | SD² Self-Distilled Sparse Drafters (Lasby et al., Cerebras) | 2504.08838 | arXiv Apr 2025 | Independent sparse 1.5–3B | General (UAG to Llama-3.1-70B) | Self-data distillation + sparsification | 1.59× MAL vs layer-pruned, 44% fewer MACs | — |
| 17 | Scaling Laws for SD (Scylla) (Yan et al.) | 2505.07858 | arXiv May 2025 | EAGLE-style | Cross-task | Scale drafter pretraining tokens/size | Log-linear acceptance; largest gains on summarisation & QA (weakest domains) | promised |
| 18 | LK Losses: Direct Acceptance-Rate Optimisation (Samarin et al., Nebius) | 2602.23881 | arXiv Feb 2026 | EAGLE-3 / Medusa / MLP | General (660K Infinity-Instruct, target completions) | Acceptance-optimising loss | +8–10% AL (MT-Bench/HumanEval/GSM8K) | SpecForge PR #492 |
| 19 | SpecForge paper (Li et al., SGLang/LMSYS) | 2603.18567 | arXiv Mar 2026 | EAGLE-3 | Data-mix effect | ShareGPT+UltraChat (320K) vs Perfect-Blend (1.4M, code/math-heavy) | Math500 τ 2.82 → 3.48 (+23%) from broader mix alone | GitHub |
| 20 | LongSpec (Yang et al., Sea AI Lab) | 2502.17421 | ACL 2025 | EAGLE-like, constant KV | Long context, long reasoning | Position-index scheme; train past 4K | 3.26× on 5 long-context sets; 2.25× on AIME24 (QwQ) | GitHub |
| 21 | OWL (Lee et al., Snowflake/SNU/CMU) | 2510.07535 | arXiv Oct 2025 | LSTM drafter on last hidden state | Long-context inputs | Context-independent drafter architecture | EAGLE-3 AL 5.79 → 1.28 on long inputs; OWL holds 4.0–4.1 | anon repo |
| 22 | P-EAGLE (Hui et al., AWS) | 2602.01469 | arXiv Feb 2026 | Parallel-draft EAGLE | Reasoning / long outputs (gpt-oss, Qwen3-Coder) | Scalable training on long sequences | 1.10–1.36× over AR EAGLE-3 | Speculators |
| 23 | TSS: Target-Side Sparsification for Domain-Specific LLMs (Hu et al.) | 2609.26100 | arXiv Aug 2026 | Any (drafter unchanged) | Translation etc. | Per-domain target layer-skip map | Translation AL 2.70 → 4.53, 1.68× throughput | — |
| # | Work | Link | Venue / year | Drafter type | Adaptation signal | Granularity | Headline result | Code |
|---|---|---|---|---|---|---|---|---|
| 24 | Online Speculative Decoding (OSD) (Liu et al., Berkeley/UCSD) | 2310.07177 | ICML 2024 | Independent small LMs | Verifier rejections + target logits, KD with spare serving compute | Fleet / query stream | Acceptance +0.1–0.65 abs; 1.42–2.17× latency cut; topic-switch experiments | GitHub |
| 25 | When Drafts Evolve: SD Meets Online Learning (OnlineSPEC) (Qian et al., Nanjing/UCSD) | 2603.12617 | ICML 2026 | EAGLE / Hydra heads | Verifier feedback as online-learning game; dynamic regret ↔ speedup | Per-request stream | Up to 24% over prior online methods; Ens-Eagle = Hedge-weighted head ensemble | GitHub |
| 26 | Test-Time Speculation (TTS) (Kumar, Sanghavi, Das, UT Austin) | 2605.09329 | arXiv May 2026 | EAGLE-style | Target logits from verification, distilled every few rounds | Within one generation | +41% avg / +72% max accepted length; grows with output length | — |
| 27 | Draft, Verify & Improve (DVI) (Bhansali, Heck, Georgia Tech) | 2510.05421 | arXiv Oct 2025 | LoRA self-drafter head | Accept/reject → KL then reward-masked CE | Continuous | 2.16× on Spec-Bench from 2K prompt exposures (vs 2.4M for EAGLE) | on publication |
| 28 | TIDE: Temporal Incremental Draft Engine (Park et al., Moreh) | 2602.05145 | arXiv Feb 2026 | EAGLE-style | Dual-timescale EMA of acceptance triggers async retrain; gated redeploy | Fleet | Up to 1.15× throughput vs static; 1.67× less retrain time | — |
| 29 | OmniDraft (Kinattinkara Ramakrishnan et al., Qualcomm) | 2507.02659 | arXiv Jul 2025 | Llama-68M + online n-gram vocab cache | On-policy user traffic; rev-KL + NLL hybrid | Per-device / per-user | GSM8K α 0.10→0.42, code 0.09→0.27; 1.5–2× across 3 targets | — |
| 30 | Steering Pretrained Drafters (Berdoz et al., ETH) | 2511.09844 | AAAI 2026 | Any frozen drafter | Steering vector from verifier hidden states, no weight update | Per-request | +35% accepted (sampling), +22% (greedy) | — |
| 31 | TLT: Taming the Long-Tail (Hu et al., MIT/NVIDIA/ETH) | 2511.16665 | ASPLOS 2026 | EAGLE-style | Continual training on idle GPUs during long-tail rollouts | Per RL step | >1.7× e2e RL speedup; deployable drafter as byproduct | fastrl |
| 32 | ReSpec (Chen et al., NTU/SGLang) | 2510.26475 | MLSys 2026 | EAGLE-style | KD from updating actor, reward-weighted | Per RL step | Up to 4.5× rollout on Qwen 3–14B | — |
| 33 | FastGRPO (Zhang et al.) | 2509.21792 | arXiv Sep 2025 | EAGLE | Cached hidden states/logits each GRPO iter (2–3% overhead) | Per RL step | 2.35–2.72× e2e on math | GitHub |
| 34 | SpecRoll (Pham et al., VNU/Viettel) | 2608.04962 | arXiv Aug 2026 | EAGLE-style | Fast gradient-free hidden-state correction + slow param update on persistent drift | Two timescales | 1.26–2.15× generation; beats FastGRPO 15/15 | anon repo |
| 35 | RL Post-Training Rollouts via System-Integrated SD (Iso et al., NVIDIA NeMo-RL) | 2604.26779 | arXiv Apr 2026 | EAGLE-3 | Hidden states from policy-loss pass; online adaptation optional | Per RL step | 1.8× gen at 8B; online adds 1.77→1.78× with good init but 1.51→1.63× with weak init | NeMo-RL docs |
| 36 | EfficientRollout (Kim et al., FuriosaAI/Berkeley) | 2606.18967 | arXiv Jun 2026 | Quantised copy of current policy | Adapts by construction (no training) | Per RL step | −19.6% rollout latency | GitHub |
| 37 | DAS: Distribution-Aware SD for RL (Shao et al., Together/UCSD/Stanford) | 2511.13841 | MLSys 2026 | Suffix tree over recent rollouts | Recent rollouts (training-free) | Per RL step | Up to 50% rollout-time cut, identical curves | — |
| 38 | RhymeRL / HistoSpec (He et al., SJTU/Huawei) | 2508.18588 | ASPLOS 2026 | Previous-epoch rollouts as drafts | Cross-epoch similarity | Per epoch | 2.6× over prior RL systems | — |
| 39 | SPEC-RL (ShopeeLLM) | 2509.23232 | arXiv Sep 2025 | Prefix reuse, no drafter | Previous rollouts | Per epoch | 2–3× rollout time cut (PPO/GRPO/DAPO) | GitHub |
| 40 | Speculate While You Reason: Joint Agent–Speculator RL (Ji et al., UCSB/LinkedIn) | 2607.25816 | arXiv Jul 2026 | Tool-call speculator (not token-level) | Co-trained with agent on own trajectories | Per agent | Tool-call Hit@1 44.1→61.2 (Qwen3-4B) | — |
| # | Work | Link | Venue / year | What is selected / adapted | Signal | Headline result | Code |
|---|---|---|---|---|---|---|---|
| 41 | Not-a-Bandit / HedgeSpec (Liu et al., Rice/AWS/UCSD) | 2510.20064 | arXiv Oct 2025 | One of 21 domain EAGLE drafters (7 domains: Python, math, bio, chem, medQA, CNN/DM, SQL) | Full-information: all drafters scored on accepted tokens after each verify; Hedge | Python drafter 7.89 MAT in-domain vs 2.86 on bio; +46% MAT mixed, +83.7% tok/s SQL, +49% over BanditSpec | HF drafters |
| 42 | MetaSD (Kim, Jung, Yun, LG AI/KAIST) | 2604.05417 | ACL 2026 Findings | One of 5 task drafters (68M black-box or EAGLE) | UCB on block divergence (1−TV) reward | Code 2.3×, math 2.28×, summ 1.97×, QA 1.71×, transl 1.59×; beats one-for-all | on publication |
| 43 | TaskSpec (Ge et al., Beijing Normal U.) | 2505.08600 | ICPP 2025 | Per-task LoRA drafters (LLaMA-68M) | Mamba prompt classifier (99.5% acc, 13.5 MB) | Draft accuracy math 16→58%, transl 33→60%; 1.10–2.64× | — |
| 44 | BanditSpec (Hou et al., NUS/Sea/Yale) | 2505.15141 | ICML 2025 | SD config incl. which drafter, draft length | Throughput bandit (UCBSpec / EXP3Spec) | Near-oracle throughput on mixed prompts | — |
| 45 | SpecRouter (Wu et al., Tsinghua) | 2505.07680 | arXiv May 2025 | Per-request draft/verifier chain | Latency profile + divergence similarity | Preliminary | — |
| 46 | KNN-SSD (Song et al., PKU/PolyU) | 2505.16162 | EACL 2026 Findings | Per-domain skipped-layer set for self-drafting | KNN on inputs | 1.3–1.6×; layer-skip drafters highly domain-sensitive | — |
| 47 | Speculative Streaming (Bhendawade et al., Apple) | ACL Anthology | EMNLP 2025 | ~8e4-param speculator per LoRA-adapted app | Multi-stream attention in target | 2–3.5× on device | — |
| 48 | Turbo LoRA (Predibase) | blog | Aug 2024 (no paper) | Per-adapter linear speculator co-trained with each task LoRA | — | 2–3×; NER 2.56× vs base | — |
| 49 | vLLM RFC: DFlash drafter LoRA adapters | vllm#52038 | 2026 RFC | Per-domain r=64 LoRA on shared 0.8B DFlash drafter, swappable per request | — | Claims within ~2% of fully-trained per-domain drafter, ~28× smaller | — |
| 50 | Lossless SD for Heterogeneous Vocabularies (SLEM/TLI, "Universal Assisted Generation") (Timor et al., Intel/Weizmann) | 2502.05202 | ICML 2025 oral | Any small model as drafter for any target | — | Up to 2.8×; solves pairing, not domain shift | HF blog |
| 51 | TokenTiming (Xiao et al., Zhejiang U.) | 2510.15545 | arXiv Oct 2025 | Cross-vocab via DTW alignment | — | Per-language: French 2.23×, English 1.55×, Chinese 1.06×, Japanese 1.12× | — |
| 52 | Cross-Family SD for Polish LMs (Fonał, Wrocław UST) | 2604.16368 | arXiv Apr 2026 | UAG drafters on Bielik-11B | — | Negative result: α 22–45%, ≤1.06× | GitHub |
| # | Work | Link | Venue / year | What it measures | Domain-relevant numbers | Code / data |
|---|---|---|---|---|---|---|
| 53 | SPEED-Bench (Abramovich et al., NVIDIA) | 2604.09557 · blog | ICML 2026 | 11 domains × 80 samples; AL and throughput in vLLM/TRT-LLM | Llama-3.3-70B+EAGLE-3: coding 3.00, math 2.45, writing 2.63, roleplay 2.04; gpt-oss-120b: coding 2.46 vs roleplay 1.87; vocab pruning leaves 22% of tokens unreachable in multilingual; 1K-ISL-trained drafters degrade on long inputs; native MTP beats post-hoc EAGLE-3 | HF dataset · repo |
| 54 | Spec-Bench (Xia et al.) | 2401.07851 | ACL'24 Findings | 6 subtasks (MT-bench, WMT, CNN/DM, NQ, GSM8K, RAG) | Translation/summarisation lowest AL, code/math highest; Vicuna-13B EAGLE-3 3.02×, 5.71 tokens | GitHub |
| 55 | SpecDecode-Bench: Performance or Illusion? (Liu et al., Berkeley) | 2601.11580 | arXiv Dec 2025 | SD in vLLM across positions, requests, datasets | AL "varies markedly across output positions, requests, and datasets" | site |
| 56 | Acceptance Dynamics Across Cognitive Domains ("chat paradox") (Mahmoud) | 2604.14682 | arXiv Apr 2026 | 99,768 tree nodes, TinyLlama→Llama-2-7B-Chat | Untrained drafter: chat 0.565 > code 0.538 > reasoning 0.532 > math 0.518 — ordering flips vs distilled drafters, i.e. training data decides which domain wins | GitHub |
| 57 | EAGLE-3 per-task table (Li et al.) | 2503.01840 | NeurIPS 2025 | Llama-3.1-8B-Instruct τ at T=0 | HumanEval 6.74, Alpaca 6.70, GSM8K 6.23, MT-bench 6.13, CNN/DM 5.34 | GitHub |
| 58 | HASS per-task table (Zhang et al.) | 2408.15766 | ICLR 2025 | Llama-3-8B-Instruct τ | HumanEval 5.54, GSM8K 5.02, MT-bench 4.68 | GitHub |
| 59 | AgentSpec (Wang et al.) | 2608.24004 | EMNLP 2026 | Agent-batch workloads | Diagnoses high rejection on agent traces; structure-isolated drafting | — |
| 60 | MagicDec (Sadhukhan et al., CMU/Together) | 2408.11049 | ICLR 2025 | Long-context, self-draft with sparse KV | Up to 2.51× at batch 32–256; sidesteps drafter mis-alignment | site |
| # | Resource | Link | Owner · type · date | What it provides for domain adaptation | Headline numbers |
|---|---|---|---|---|---|
| 61 | SpecForge | GitHub · docs · v0.3 blog · launch | LMSYS/SGLang · repo+blog · Jul 2025 / Aug 2026 | 19 dataset presets (chat + code/math/reasoning); regenerate_train_data.py with --reasoning save / disable; custom JSONL; EAGLE3/P-EAGLE/DFlash/Domino/DSpark/MTP; 11 SpecBundle heads | Qwen3.6-27B Domino 5.72× MATH500, 4.98× HumanEval at bs=1; "regenerating with the target … single largest lever" |
| 62 | Speculators | GitHub · v0.3 training blog · data-generation study · P-EAGLE · HF | Red Hat / vLLM · library+blogs · Nov 2025–Sep 2026 | vLLM-native offline pipeline; self- vs same-family cross-distillation study (500K prompts, 7 workloads); per-domain AL on every card | Same-family cross-distil helps small targets (Qwen3-30B-A3B τ 2.77→3.05), self-distil wins at 120B (2.65 vs 2.40); gpt-oss-120b head HumanEval 3.01, math 3.29, MT-bench 2.61 |
| 63 | NVIDIA Model Optimizer speculative_decoding | README | NVIDIA · repo/docs | EAGLE-1/3, Medusa, DFlash; synthetic-conversation script regenerating with target; online/offline/streaming hidden states; export to TRT-LLM/vLLM/SGLang | Pipeline behind all nvidia/*-Eagle3 heads |
| 64 | NeMo AutoModel "Train an EAGLE Drafter, End-to-End" | docs | NVIDIA · docs · 2026 | Rule: assistant turns must come from the target; bring-your-own JSONL; MVP 1K samples/10 min on 1 A100, prod 200K/~2 h on 8×A100 | Target AL "3.0+" |
| 65 | TorchSpec | PyTorch blog · GitHub · dataset | EAGLE-Research · repo+blog · Mar 2026 | Disaggregated online training via RDMA; any prompt set up to 200K context; open 600K-sample Kimi dataset | Kimi-K2.5 EAGLE3: +60/+30/+26% throughput at bs 1/8/16 |
| 66 | Baseten "How to train custom EAGLE-3 heads" | blog | Baseten · blog · Apr 2026 | Generic (UltraChat-200k regenerated) vs task-specific (production prompt–output pairs regenerated by target) recipes; 200–300K samples generic, ~100K narrow (JSON) | T=1 costs 15–25% of speedup; 1.5–2.5× on code/agentic/structured; live training +20% median acceptance (X post, unverified) |
| 67 | Nebius "Train the draft model for your workload" | blog · service · LK paper | Nebius · blog+service · Jun 2026 | Customer logs → EAGLE-3 with LK losses → dedicated endpoint | +8–10% AL from loss alone |
| 68 | Together "Customized SD for DeepSeek-R1" | blog | Together AI · blog · May 2025 | Fine-tune base speculator on customer R1 traffic (doc extraction, chat assistant, résumé screening) | Custom vs base 1.23–1.45×; 1.85–2.97× vs none; 23–26% fewer GPU-h; 20M tokens → >1.10×, 50M → >1.20× |
| 69 | Together ATLAS | blog | Together AI · blog · Oct 2025 | Static heavyweight + lightweight adaptive speculator learning from live traffic + confidence controller | DeepSeek-V3.1 500 tok/s on 4×B200 (2.65× vs static spec); RL workload acceptance <10%→>80% |
| 70 | Fireworks FireOptimizer | blog · docs | Fireworks · blog · Aug 2024 | Per-customer drafter from traced production data | Hit rate 29% generic → 76% custom; ~2× (Cursor), up to 3× |
| 71 | Snowflake Arctic Inference / SuffixDecoding | MLP speculators · SuffixDecoding · GitHub · paper | Snowflake · blog+repo · 2025 | YAML-recipe MLP/LSTM speculator training on target-synthesised UltraChat+MagiCoder; model-free suffix-tree drafting that adapts per request | SWE-Bench agentic 1.8–4.5× (MLP), SuffixDecoding up to 5.3× agentic, only 1.0–1.28× on SpecBench |
| 72 | Modal "SOTA latencies with speculative decoding" | blog | Modal · blog · Jun 2026 | DFlash speculator mid-trained on task-specific synthetic data (public prompts regenerated by target) with OOD monitoring | p50 290→190 ms; DFlash >50% better than MTP baseline |
| 73 | BentoML "3× faster inference with the right draft model" | blog | BentoML · blog · Aug 2025 | Own EAGLE-3 head on UltraChat+ShareGPT, 8×H200 | AL 3.02 @5; ~2× |
| 74 | Thoughtworks Nemotron 3.5 Lightning test | blog · HF head | Thoughtworks · blog · Aug 2026 | Negative result: custom EAGLE-3 on domain-adapted hybrid Mamba target only matched native MTP | Native MTP 1.46–1.96× over 2,091 runs |
| 75 | AMD MiniMax-M3 EAGLE3.1 on Instinct | vLLM blog | AMD · blog · Jul 2026 | On-policy chat + raw completions regenerated by MXFP4 target, streamed vLLM→FSDP2 | SPEED-Bench avg 2.80, coding 3.32 → roleplay 2.01; stable 1K→32K ctx |
| 76 | NVIDIA Eagle3 HF releases | gpt-oss-120b-Eagle3-v3 · Llama-3.3-70B-Eagle3 | NVIDIA · model cards · Dec 2025–May 2026 | Variants by context regime (short/long/throughput); mix = 8 Nemotron-Post-Training-v3 subsets (science, IF, code, math, SWE, multilingual, agentic) | gpt-oss AL@7: math 3.50, multilingual 3.39, coding 3.28, writing 2.52, roleplay 2.31 |
| 77 | z-lab DFlash | GitHub · Qwen3-Coder-30B-A3B-DFlash | z-lab · repo+models · Feb 2026 | Explicitly code-domain drafter: 289K samples (Nemotron-PT-v2 code, evol-codealpaca, ~2.8K Cline agent traces) | HumanEval 3.5× / AL 8.09; MBPP 3.2×; LiveCodeBench 2.6×; ~3.1× at bs=32 |
| 78 | AngelSlim EAGLE3 collection | HF | Tencent · models · Jan 2026 | 15 heads incl. modality-specific (Qwen3-VL, HunyuanOCR, Qwen2-Audio, CosyVoice3 TTS) | Qwen3-14B AL 1.74–1.87 (modest) |
| 79 | lmsys / SpecBundle & community code heads | lmsys Qwen3-235B · SpecBundle blog · cm00cm Kimi-K2.7-Code | LMSYS / community · models | Code-specialised targets now trained on Nemotron post-training mixes; vocab trimming 163K→32K (97.5% coverage) | Qwen3-235B: GSM8K 3.54, MT-Bench 3.02 |
| 80 | Intel FastDraft / OpenVINO draft collection | HF collection · notebook | Intel · models · 2024–25 | Phi-3-mini-50M, Llama-3.1-8B-150M, Phi-4-mini-120M drafters; code vs text reported separately | Code 3×, text 2× (memory-bound) |
| 81 | Meta LayerSkip | GitHub · HF blog · Code Llama ckpt | Meta · repo+models · Nov 2024 | Self-speculative early-exit; recipe applies "during pretraining or domain-specific fine-tuning"; code-domain checkpoints | 1.8–2.06× |
| 82 | EAGLE official repo | GitHub | SafeAILab · repo | traineagle3 scripts; explicit note that Qwen2 head is English-only ShareGPT — "train with the corresponding data" for Chinese | EAGLE-3 up to 5.6× |
| 83 | Medusa | GitHub · TGI tutorial | FasterDecoding · repo | Medusa-2 self-distillation "for fine-tuned LLMs without original training data" — the original domain-adaptation recipe | 2.2–3.6× |
| 84 | HF Universal Assisted Generation | blog · docs | Hugging Face · blog+docs · Oct 2024 | Use any off-the-shelf domain SLM (e.g. tiny_starcoder) as drafter without retraining | CodeLlama-13B + tiny_starcoder 1.90× |
| 85 | REST | GitHub · paper | PKU/Princeton · repo · NAACL 2024 | Datastore = the domain artifact; swap corpus to adapt | 1.62–2.36× |
| 86 | SAM-Decoding | GitHub · paper | Renmin U. · repo · ACL 2025 | Static corpus + dynamic suffix automaton; falls back to EAGLE-2 | +3.3–11.1% over EAGLE-2 |
| 87 | Graft: Draft Less, Retrieve More | paper | ZJU/Alibaba Qwen · May 2026 | EAGLE-3 tree slots filled from online successor matrix updated from verified tokens | 5.41× short-ctx (+21.8% over EAGLE-3, Qwen3-235B) |
| 88 | Apple ReDrafter | GitHub | Apple · repo | Trainable (ShareGPT, ~1.5 h on 8×H100); no domain guidance | — |
Start from a well-initialised generalist head (SpecBundle / RedHatAI / NVIDIA release, or train one on Perfect-Blend-scale data, since breadth alone adds ~20% on math). Collect 100–300K prompts from the deployment domain — production logs if available, otherwise Magpie-style synthetic prompts, which recover 80–93% of the real-log benefit. Regenerate every response with the exact target, greedily, in the reasoning mode and at the temperature that will be served. Train offline with white-box KD (target hidden states and logits), keeping only assistant turns in the loss; for a fine-tuned target, retrain only a private expert or LoRA slice (25–30% of parameters) rather than the whole drafter. If a strict acceptance objective is available (LK losses, EAL/WTV) expect a further 4–10%. Then optionally run on-policy distillation under real verification to break the offline plateau. For multi-domain serving keep separate specialists and combine them at inference — Hedge/UCB routing or merged-tree verification — never by weight averaging. For non-stationary traffic (RL rollouts, new products, per-user sessions) add an online path: OSD/TIDE-style asynchronous retraining triggered by acceptance-rate drift, or a training-free suffix-tree/n-gram layer that adapts by construction. For repetitive agentic, SQL or code-edit traffic the training-free layer may beat any trained drafter outright.
No verified legal- or finance-specific drafter papers exist; medical appears only via EDA's Meditron experiment. No public benchmark yet has an agentic/tool-calling split (AgentSpec and SambaNova's function-calling numbers are the only data). Explicitly domain-labelled open heads are rare — z-lab's Qwen3-Coder DFlash, LayerSkip Code Llama, AngelSlim's modality heads, and HedgeSpec's 21-drafter pool are the main ones; everything else is a chat mix with a per-domain eval table. Nobody has published a study of drafter adaptation under pipeline-parallel / WAN serving, where a domain drafter's higher acceptance translates directly into fewer verification round-trips; the numbers above (25–40% acceptance recovery, 1.2–1.5× extra decode speed) are the input for that estimate.
"SpecActor" (2511.16193) exists but drafter-training details are not in the abstract; "Speculative Decoding Meets Domain Shift" and "Redistributing Draft" do not resolve to papers; Baseten's live-training +20% figure comes from an X post; the vLLM DFlash-LoRA "within 2%" claim is an RFC, not a paper; SambaNova's SCOPE workshop venue is per the authors.