← 返回 2026-03-11

ConFu:深思未来以提升投机解码质量 ConFu: Contemplate the Future for Better Speculative Sampling

Zongyue Qin, Raghavv Goel, Mukul Gagrani, Risheek Garrepalli, Mingu Lee, Yizhou Sun 📅 2026-03-09 👍 1 2026-07-13 08:35
EAGLE-3改进 LLM推理加速 投机解码 混合专家 潜在推理

用 contemplate token 让草稿模型预知目标模型未来方向。

前置知识

投机解码 (Speculative Decoding)

一种 LLM 推理加速范式,用轻量草稿模型 $M_d$ 自回归地生成若干候选 token $\tilde{x}_{n+1},\dots,\tilde{x}_{n+K}$,再由目标大模型 $M_t$ 在一次并行前向中验证。验证通过 token 被接受,验证失败则从目标分布重新采样并替换。接受的 token 数越多,加速比越高。

ConFu 是在此范式下改进草稿模型质量,需要理解草稿-验证、接受-拒绝的完整流程才能看懂 ConFu 在哪个环节插入了'未来信号'。

EAGLE 系列 (EAGLE-1/2/3)

当前 SOTA 草稿模型家族。EAGLE-1 用单层 Transformer 复用目标模型的隐藏状态做特征级预测;EAGLE-2 引入上下文相关的动态 draft tree;EAGLE-3 (Li et al., 2025) 拼接目标模型初/中/末三层隐状态并下投影,进一步提升接受率。本文以 EAGLE-3 为基线。

ConFu 沿用 EAGLE-3 的草稿头架构,仅增加一个'future token'作为附加输入,并初始化自 EAGLE-3 权重后微调。理解 EAGLE 才知道 ConFu 在哪个点做了增量创新。

Pause Token / Contemplate Token

Goyal et al. (2023) 提出,在输入前缀后追加特殊 [pause] token 让 LLM 在生成下一个 token 前多算一次前向,起到'思考'作用。pause token 可与其它输入 token 并行处理,开销极小。本文把这一思想引入投机解码,并命名为 contemplate token。

ConFu 整套机制都建立在 pause token '零额外推理成本' 的特性上——若不熟悉 pause token,就难以理解为何 f 向量能 '以可忽略的代价' 从目标模型中提取。

Mixture-of-Experts (MoE)

由 $n_{\text{expert}}$ 个专家嵌入和一个路由器 (router) 组成。router 是一个线性层,把输入隐藏状态映射为专家权重 (经 softmax),取 top-K 加权求和得到最终 embedding。本文用两个 MoE 模块分别生成 [con] 和 [f] token。

动态 contemplate token 机制是 ConFu 的关键创新点之一,由 MoE 实现。需要知道 MoE 的门控/加权方式才能理解为何'动态'。

SpecBench

Xia et al. (2024) 提出的投机解码综合评测基准,覆盖写作、问答、摘要、翻译、代码、数学/推理等 11 类任务。报告两个核心指标:平均接受 draft 长度 $\tau$(含 bonus token)和相对自回归解码的加速比 $SR$。

本文所有主结果都在 SpecBench 上报告;理解 $\tau$ 和 $SR$ 的定义才能正确解读表格中的数字(如 8-11%、20% 等)。

研究动机

投机解码的效率取决于草稿模型的预测质量。EAGLE 系列虽把接受率推到 SOTA,但所有现有草稿模型都只基于'当前前缀'做条件预测——一旦某步预测出错,错误会沿序列累积,导致草稿分布逐渐偏离目标分布,token 接受率随解码步数下降(论文 Figure 1a 直观展示了这一漂移)。这种'近视'特性让草稿模型沦为被动跟随者,无法在第一步就押对长程轨迹。具体数据上,EAGLE-3 在 Llama-3.1-8B 上 greedy 解码的 $\tau$ 平均仅 4.59,加速比 $SR$ 仅 2.36×,远未达到理论上限。

本文的目标是论文提出 ConFu (Contemplate the Future),目标是让草稿模型在生成每一个 token 之前,'窥探'目标模型当前正在思考的高层意图 / 未来走向,从而把一次性的、被动的、单步的条件预测,提升为'有未来锚点'的、主动的、多步对齐的预测。最终在 Llama-3 3B/8B 上较 EAGLE-3 提升接受率和生成速度 8-11%,在 Qwen-3 4B 上提升约 20%。

与已有工作不同的是,现有 EAGLE-2/3、HASS、Griffin 等改进都集中在'减小 train-test 不匹配'或'动态 draft tree',从未让草稿模型显式利用目标模型的'下一步计划'。近期 latent reasoning 路线 (Coconut、CCoT、CoD) 证明 LLM 可被训练输出连续'思维 token',但都需要目标模型多次自回归前向,开销过高,不能直接嵌入投机解码。ConFu 的独特定位是:用 pause token + 软提示以'近乎零成本'从冻结的目标模型中逼出 f 向量作为未来信号,再用 MoE 动态化和 robust 训练框架放大这一信号的稳定性——首次把潜在推理范式桥接到投机解码中。

核心方法

ConFu 的核心直觉是:让目标模型在常规解码的同时'顺便'预测自己的未来方向,得到一个连续向量 $f$,草稿模型把 $f$ 当作附加条件 token 来生成 draft token。技术上分三步实现:(1) 用 soft prompt + contemplate token (即 pause token 的扩展) 在目标模型一次前向中同时做正常预测和未来预测 $f$,attn mask 保证前缀表示不受污染;(2) 验证阶段对 draft tree 每个节点插入一个 [con] token,使目标模型为每个候选并行产出对应 $f$;(3) 训练时用 MoE 参数化动态 [con]/[f] token,并配合 anchor token sampling + future prediction replication 让 $f$ 鲁棒。

与 EAGLE-3 的本质区别在于:EAGLE-3 让草稿头仅消费目标模型'已发生'的隐藏状态 $h_{M_t}$,属于回顾式;ConFu 多消费一个目标模型'将要发生'的连续表示 $f$,属于前瞻式。这相当于把目标模型的'思维草稿' $f$ 显式暴露给草稿模型,对齐两者语义轨迹,从根源抑制错误累积。实现层面 $f$ 是由 target 在同一次前向中 '顺便' 算出的,因此加速收益不抵消。

方法步骤详情

方法流程可拆为四步。第一步 (contemplate token 设计):在 KV cache 前拼接 $s$ 个可学习 soft prompt token (默认 $s=16$),在当前输入末尾追加 [con] token;attn mask 限定只有 [con] 能 attend soft prompt,前缀表示不变;目标模型冻结,仅优化 soft prompt 和 [con] embedding。目标模型一次前向即可同时得到下一个 token 和 [con] 位置的隐藏状态——后者即 $f$。第二步 (推理流水线, Figure 2):草稿模型 (EAGLE-3 同款的单层 Transformer) 在 $f$ 引导下自回归生成 $K$ 个 draft token;$f$ 在整段 draft 生成中固定附在序列末尾,像一个全局锚。第三步 (验证与未来预测同步, Figure 3):对 draft tree 的 $T$ 个节点各插一个 [con] token,共 $2T$ 个 token 一次并行通过目标模型;目标模型在每个 draft 节点上分别产生 $f_i$;验证完成后取与最后一个被接受 token 对应的 $f$ 进入下一轮。$T$ 通常为 30,开销可控。第四步 (训练):(a) 用 MoE 替代静态 [con] / [f] embedding——router 取最近一个被接受 token 的隐藏状态 $h_{M_t}^{\text{cat}}$,softmax 选 top-K 专家并加权求和;(b) 训练目标同 EAGLE-3 的 train-time testing,即最小化后续 $L$ 个 token 上 $M_t$ 与 $M_d$ 的 KL 散度;(c) anchor token sampling:每条序列随机抽 $K_{\text{train}}$ 个 anchor,仅在 anchor 位置插 [con],把序列长度从 $2N$ 降到 $N+K_{\text{train}}$ 以省显存;(d) future prediction replication:对 anchor 周围 $l$ 个邻居复用同一 $f$,鼓励 $f$ 对小扰动鲁棒,避免过拟合到具体 token。

技术新颖性

技术上三项独立可叠加的贡献:(1) 首次在投机解码里把 pause/think token 从'训练时让目标模型多算一步'变为'推理时并行掏出未来信号',并通过 soft prompt 防止污染目标模型自身行为;(2) 把 MoE 引入 pause token 设计,让 [con] / [f] 可随上下文切换不同'专家指令',是 pause token 文献里首次 dynamic 化;(3) future prediction replication 是一种新型数据增强——通过让 $f$ 同时监督相邻 $l+1$ 个位置的 draft 目标,隐式把 $f$ 优化成'局部不变'的语义摘要。论文也强调这是首个把 continuous latent thought 与投机解码显式桥接的工作。

Overview of ConFu's inference pipeline
Figure 2: Overview of ConFu's inference pipeline
Verification with contemplate tokens in ConFu
Figure 3: Verification with contemplate tokens in ConFu
Illustration of Dynamic Contemplate Tokens with MoE
Figure 4: Illustration of Dynamic Contemplate Tokens with MoE

实验结果

主实验在 Llama-3.2-3B-Instruct、Llama-3.1-8B-Instruct、Qwen-3 4B 三个目标模型上对比 EAGLE-3,覆盖温度 $T\in\{0, 0.7, 1.0\}$、draft node 30/60、SpecBench 11 类任务。Llama-3.2-3B-Instruct (Table 1):$T=0$、30 nodes 下平均 $\tau$ 从 4.00 提到 4.41 (+10.3%),$SR$ 从 1.83 提到 2.11 (+15.3%);60 nodes 下 $SR$ 从 2.05 提到 2.24 (+9.3%),所有 11 个子任务上 ConFu 都优于 EAGLE-3。Llama-3.1-8B-Instruct (Table 2):$T=0$、30 nodes 下 $\tau$ 4.59→5.01 (+9.2%),$SR$ 2.36→2.69 (+14.0%);60 nodes 下 $SR$ 2.61→2.73 (+4.6%);翻译任务在 8B 模型上 $\tau$ 5.49→5.89,$SR$ 2.99→3.11,依然全胜。Qwen-3 4B (Table 3) 提升最显著:30 nodes、$T=0$ 下 $SR$ 2.44→3.00 (+23.0%);60 nodes、$T=0.7$ 下 $SR$ 2.52→3.05 (+21.0%);平均 $\tau$ 提升 21.0%、$SR$ 提升 19.8%。温度影响:低 $T$ 增益最大 (greedy 8-11%),高 $T$ 略缩小但仍正。Draft tree 预算影响:30 / 60 nodes 均稳定提升。消融 (Table 4, 8B 模型):去掉 MoE 后 $\tau$ 从 5.01 降至 4.97,$SR$ 2.69→2.67;再去掉 replication 进一步降至 4.81/2.55——验证两个组件都贡献增益且可叠加。训练 draft length 消融 (Table 6):4/7/10 三种长度平均性能接近,证明对训练长度不敏感。内存开销 (Table 5):60 nodes 下 8B 模型仅从 17.08 GB 增至 17.12 GB (约 0.2%),3B 模型 7.50→7.52 GB,开销可忽略。Tail acceptance 压力测试 (Figure 5, DL=12, top-k=1):ConFu 的生存函数全段高于 EAGLE-3,意味着长 draft 被完整接受的概率显著更大。

Llama3.2-3B-Instruct comparison on SpecBench tasks
Table 1: Llama3.2-3B-Instruct comparison on SpecBench tasks
Llama3.1-8B-Instruct comparison on SpecBench tasks
Table 2: Llama3.1-8B-Instruct comparison on SpecBench tasks
Qwen3-4B comparison on SpecBench tasks
Table 3: Qwen3-4B comparison on SpecBench tasks
Llama3.1-8B-Instruct ablation comparison
Table 4: Llama3.1-8B-Instruct ablation comparison
Peak GPU memory usage (GB) when running with 60 draft nodes
Table 5: Peak GPU memory usage (GB) when running with 60 draft nodes
Llama3.2-3B-Instruct ConFu average acceptance rate across training block lengths
Table 6: Llama3.2-3B-Instruct ConFu average acceptance rate across training block lengths
Survival function of accepted draft length (DL=12, top-k=1)
Figure 5: Survival function of accepted draft length (DL=12, top-k=1)
查看结构化数据
任务指标本文基线提升
Llama-3.2-3B-Instruct, SpecBench 平均 (30 nodes, T=0) τ / SR 4.41 / 2.11 EAGLE-3: 4.00 / 1.83 τ +10.3%, SR +15.3%
Llama-3.2-3B-Instruct, SpecBench 平均 (60 nodes, T=0) τ / SR 4.76 / 2.24 EAGLE-3: 4.25 / 2.05 τ +12.0%, SR +9.3%
Llama-3.1-8B-Instruct, SpecBench 平均 (30 nodes, T=0) τ / SR 5.01 / 2.69 EAGLE-3: 4.59 / 2.36 τ +9.2%, SR +14.0%
Llama-3.1-8B-Instruct, SpecBench 平均 (60 nodes, T=0) τ / SR 5.25 / 2.73 EAGLE-3: 4.87 / 2.61 τ +7.8%, SR +4.6%
Qwen-3 4B, SpecBench 平均 (30 nodes, T=0) τ / SR 4.32 / 3.00 EAGLE-3: 3.57 / 2.44 τ +21.0%, SR +23.0%
Qwen-3 4B, SpecBench 平均 (60 nodes, T=0) τ / SR 4.60 / 3.20 EAGLE-3: 3.81 / 2.69 τ +20.7%, SR +18.9%
Llama-3.1-8B-Instruct 消融: 去掉 MoE (30 nodes, T=0) τ / SR −MoE: 4.97 / 2.67; 完整 ConFu: 5.01 / 2.69 EAGLE-3: 4.59 / 2.36 MoE 单独贡献 τ +0.04, SR +0.02
Llama-3.1-8B-Instruct 消融: 同时去掉 MoE 和 replication (30 nodes, T=0) τ / SR −MoE & Replicate: 4.81 / 2.55 EAGLE-3: 4.59 / 2.36 replication 贡献 τ +0.16, SR +0.12
Llama-3.1-8B-Instruct 内存 (60 nodes) Peak GPU Memory (GB) 17.12 EAGLE-3: 17.08 +0.04 GB (~0.2%)

局限与改进

作者明确承认三点局限:(1) 投机解码整体仍受 draft tree 大小限制,本文在 30/60 节点评测,更大 budget 下 [con] token 数量线性增长,额外开销会变明显;(2) 训练仅在 ShareGPT + UltraChat-200K 上,作者未在代码/数学专用数据集上验证,对极长代码补全等场景的迁移性未给出结论;(3) Llama-3.2-3B 的 EAGLE-3 checkpoint 不可公开获取,3B 结果是作者从零训练,可能与官方权重有差异。我的额外观察:(4) 论文只对比 EAGLE-3,缺少与 Medusa、HASS、Griffin、Sequoia 等的横向对比,难以判断'未来信号' vs 'train-test mismatch fix' 哪个贡献更大;(5) 训练长度 4/7/10 消融跨度小,draft length 20 以上的可扩展性未知;(6) [con] / [f] 的 MoE 专家数、top-K、router 输入选择都缺乏完整消融,MoE 的设计空间未被充分探索;(7) 对 batch size > 1 的服务场景未报告,论文只在 bs=1 测速,吞吐量场景下 KV cache 复用方式可能不同。

独立分析的弱点

具体可改进的薄弱点:(1) [con] token 数量随 draft tree 节点数线性增加,60 nodes 时验证一次要处理 120 个 token,对 3B 内存影响 0.02 GB 看似小,但放大到 batch=32 或更长上下文会成为瓶颈;改进方向是利用 future prediction 的鲁棒性,只在少数关键分支节点插 [con],或者让单个 [con] 同时服务多个分支。(2) 训练数据只有 ShareGPT + UltraChat,风格偏闲聊和指令,对 LaTeX、长文档、代码补全等长程依赖场景的'未来信号'是否仍鲁棒未验证;改进方向是加入 arXiv 长文、The Stack、RepoBench 等长上下文数据。(3) MoE 路由器只接收最后一个被接受 token 的隐藏状态,丢失了更长的上下文信息,可能在长 prefix 场景下失效;可改成对最后 $k$ 个 token 的隐藏状态做池化。(4) 论文没有给出 f 向量的可视化或语义分析,无法判断它到底编码了'未来方向'还是'当前位置';改进方向是 PCA/对比实验证明 f 与后续 $L$ 个 token 的互信息大于当前位置。(5) 缺乏延迟分解 (prefill vs decode vs verification) 的细粒度 profile,难以判断在 batch=1、GPU 利用率低的场景下 2T 长度目标前向是否被算力利用率惩罚。

未来方向

作者在 4.1 节末尾明确指出'利用 future prediction 的鲁棒性来减少 [con] token 数量'是后续方向;这是一个有意义的 follow-up。基于论文成果还可延伸:(1) 把 contemplate token 思路推广到 EAGLE 之外,验证在 Medusa、HASS、Sequoia 等框架上'未来信号'是否通用;(2) 与 chunked prefill、paged attention、continuous batching 等服务优化组合,研究 100+ 节点大 draft tree + 大 batch 下的吞吐收益;(3) 让 soft prompt 在线学习 (online adaptation),让 f 随任务类型 (代码/数学/对话) 自动适配 prompt 集合;(4) 把 f 暴露给人类调试,作为'模型为何这样写'的可解释性信号;(5) 探索 $f$ 与 RLHF 信号的耦合,未来信号是否包含'用户偏好方向';(6) 在多模态 LLM 中验证 contemplate token 是否对图像 token、音频 token 同样有效。

复现评估

复现友好度较高。代码与训练流程的多数细节都已描述:目标模型明确为 Llama-3.2-3B-Instruct、Llama-3.1-8B-Instruct、Qwen-3 4B;基线为官方 EAGLE-3 (huggingface yuhuili/EAGLE-LLaMA3-Instruct-8B 与官方 GitHub 仓库);训练数据 ShareGPT + UltraChat-200K 已公开;软提示 $s=16$、MoE 专家数与 top-K、anchor 抽样率、replication 窗口 $l$ 等超参未完全披露,需要从附录或代码补充;训练硬件 8× H100,复现 8B 完整实验大约需要数日 GPU 时;3B 目标模型的 EAGLE-3 checkpoint 缺失,需自行从零训练,进一步增加复现成本。论文未给出仓库链接 (仅 footnote 提到参考 EAGLE 官方实现),代码尚未完全开源。SpecBench 是公开 benchmark,评测脚本可复用。