Rust in Everything
← 论文速递

SpecOPD:面向投机解码的分支并行在线策略蒸馏

SpecOPD: Branch-Parallel On-Policy Distillation for Speculative Decoding

Tianyu Liu, Jun Zhang, Wenjie Huang, Yuhao Shen, Tianqi Xu, Xinyue Hao et al.

2026-11-05▲ 13arXiv 2611.02846v1Hugging Face代码

本页由 AI 根据论文全文生成(deepseek-flash),可能有误,请以原文为准。

一句话

SpecOPD 是一种分支并行 on-policy 蒸馏框架,它从参考锚点并行监督由 draft 采样的分支,并训练 speculative-decoding drafter 以提升接受长度。

要解决的问题

Speculative decoding 的加速取决于接受长度,而 on-policy distillation 可推动 drafter 突破接受长度平台期。传统面向 SD 定制的 OPD 通过串行 draft-and-verify rollout 收集监督:drafter 提出一个 block,target 验证它,接受的 prefix 决定下一轮。这使响应收集在 drafter 更新前串行化,并在 rollout 收集期间 GPU 利用率低。论文追问 on-policy 训练是否必须继承这些串行依赖。

方法

SpecOPD 从预先收集的 reference response 中采样 B 个 anchor 位置,并将 reference sequence 作为共享 trunk;在每个 anchor,当前 drafter 独立采样 W-token continuation,形成带 branch parent map 和 semantic positions 的 proposal tree。它只预填充 reference trunk 一次,并对缓存表示批量执行 branch scoring,因此在共享 trunk 处理后,B 个 branch 增加 B(W-1) 个新 scoring rows。为保留 branch histories,它对 full attention(如 GQA)使用 tree attention masks,对 sparse attention(如 QSA)使用 branch-consistent compressed indexer groups,对 linear attention(如 GDN)使用 indexed state replay。drafter 使用 Bebop 的 E2E-TV acceptance-length surrogate 训练:token 接受概率为 1 减去 draft 与 target 之间的 total variation,loss 最小化 1 减去 BW 个 proposed tokens 上平均 prefix product。每次更新重采样 branch,而 sampled tokens 与 target distributions 固定;当各 rank 的 scored-position 数不等时,distributed normalization 保持目标不变。

实验结果

  • SpecOPD 将五个 benchmark 的平均 acceptance length 提升最多 41.45%。 §3
  • 相比串行 rollout OPD,SpecOPD 在每次更新处理更多 supervised tokens 的同时实现更高的 update throughput,从而获得更高的 supervised-token throughput。 §3
  • 实测 generation speedup 相比 autoregressive decoding 达到 3.56×。 §3
  • Agentic-task acceptance length 提升最多 81.51%。 §3
  • 在匹配 optimizer steps 和 reference-sequence batches 下,SpecOPD 相比 off-policy E2E-TV 将 mean AL 提升最多 15.71%,相比 off-policy CE 提升 6.96%;其最佳评估 checkpoint 在第 7 个位置获得 4.33% 的 prefix survival。 §3
  • 在 125B 评估中,step 22,000 使六单元平均 acceptance length 最大。 §A.4

局限

  • 对于 conditional proposals,E2E-TV prefix products 是 serving acceptance 的代理目标,而非无偏估计(§2.3)。
  • SWE 和 Terminal 使用固定历史重放,无实时工具或任务成功评分;它们是否属于官方 SWE-bench Verified 和 Terminal-Bench 2.0 子集尚未确认,且有 64 条 Terminal 源轨迹被标记为与训练数据重叠(§A.1)。
  • 训练吞吐比较不包含离线 reference preparation,也不衡量达到匹配 acceptance threshold 的时间(§3、§B.2),因此端到端 time-to-quality 仍未解决。
  • Off-policy 比较匹配了 sequence presentations,但使用不同 compute allocations 和 gradient paths(§A.6)。

要点

  • 一个 draft block 可以仅使用其 reference prefix 和 draft-sampled history 进行监督,因此各 branch 无需等待验证结果。 §1
  • 各 branch 使用独立采样流,且 sampled continuations 上的联合分布可按 branch 和 position 的乘积分解。 §2.1
  • proposal tree 将 draft branches 附着到 reference trunk 的 anchors 上;首个 branch token 的 parent 是 anchor token,后续 parent 是先前 sampled tokens,semantic position 是 anchor position 加 offset。 §2.1
  • 只预填充 reference trunk 一次并批量执行 branch scoring,可在摊销开销的同时保留每个 target query;在共享 trunk 处理后,B 个 branch 贡献 B(W-1) 个新 scoring rows。 §2.2
  • Full attention 使用 tree masks,sparse QSA 使用 branch-consistent compressed indexer groups,linear GDN 使用 indexed state replay。 §1
  • E2E-TV loss 最小化 1 减去 draft-target overlap 的平均 prefix product,因此早期 mismatch 会影响所有后续 prefix terms。 §2.3
  • 评估覆盖 8B full-attention GQA、27B full-linear GQA-GDN 和 125B sparse-linear QSA-GDN targets、三种 draft architectures 以及四个 task domains。 §Abstract
  • Off-policy E2E-TV 和 CE baselines 尽管 training loss 下降,却从初始化开始退化,而 SpecOPD 在所有七个 draft positions 上改善 prefix survival。 §3

思维导图

SpecOPD
问题
串行 draft-验证 rollout
rollout 与训练交替
接受长度限制加速
分支构建
参考锚点
draft 采样续写
proposal tree 共享主干
分支并行评分
full attention 树掩码
sparse QSA 索引器组
linear GDN 状态重放
目标
E2E-TV 接受代理目标
前缀乘积损失
每次更新重采样分支
评估
8B GQA DFlash DSpark
27B GQA-GDN DFlash V2
125B QSA-GDN DFlash V2
对话 编程 数学 agentic
报告收益
平均 AL 最高 41.45%
supervised-token 吞吐 16.09×
生成加速 3.56×