Rust in Everything
← 论文速递

SpecPilot:面向投机解码的自主算法发现与系统优化

SpecPilot: Autonomous Algorithm Discovery and Systems Optimization for Speculative Decoding

Kunjun Li, Wenhao Chai, Yihao Liang, Yuezhou Hu, Shuyao Xu, Yi Pan et al.

2026-11-04▲ 16arXiv 2611.02501v1Hugging Face代码

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

一句话

SpecPilot 是一个自主的 agentic 循环,使用基于 ceiling 的成本模型、并行编码代理、经 stock 校准的 token forcing 和结构化记忆,为投机解码部署发现无损算法与系统优化,将相对 AR 的加速比在单请求下从 4.46× 提升到 10.87×,在批处理下从 1.94× 提升到 3.93×。

要解决的问题

已发布的并行草拟系统仍有大量潜在加速未实现:单请求时每一步只接受少量 token,却要读取全部 target 权重;批处理时逐请求验证会把相对 AR 解码的加速比大致减半;且投机解码与具体部署强相关,没有普适优化。手动优化每个部署无法扩展,这使编码代理成为自然选择,但为无损投机解码构建可靠评估器很难。许多收益只有几个百分点且接近计时噪声,在开发请求上测得的收益可能无法泛化;而一个以速度为奖励的代理容易发生 reward hacking,例如采用更快的数值捷径改变输出,却在任务精度上没有可测下降。

方法

SpecPilot 以多轮运行:每轮从上一轮的最终系统开始,或对新部署从 stock 加记忆条目开始;每轮测量当前系统在哪里损失速度(Phase 0),构建并计时改动(Phases 1-3),最后在未见请求上以密封 final 结束(Phase 4)。Phase 0 使用成本模型,将相对 AR 的加速比写为 tau(N)/c(N),并计算一个 ceiling,该 ceiling 分解为 tau 因子、kernel 因子(将 profile 的步时与各字节下限之和比较)和 overhead 因子;最大因子指明要攻击的差距。主代理规划方向,每个 GPU 一个想法;子代理将每个方向实现为 option 后的 patch,其默认值复现 stock;与代理隔离的控制器在两块 GPU 上通过 GPU 交换,以配对运行将 patch 与当前最佳计时。仅当 patch 收益的 95% 下界超过 1% 加两倍 stock 对 stock 噪声,或当其输出与当前最佳发散时超过约 3%,才提升该 patch。Token forcing 在 stock 引擎上用 FP32 LM head 将系统输出通过 target 回灌,并在速率规则或事件规则下,对无法解释的大 margin 不匹配拒绝系统。已验证机制成为结构化记忆条目,包含 code delta、requirements、correctness contract 和 evidence;仅当在满足其 requirements 下将其应用到 stock 能精确复现源系统的代码时,才保留。

实验结果

  • 在没有训练或质量损失的情况下,SpecPilot 将相对 AR 的加速比从 stock 的 4.46× 提升到单请求的 10.87×,并在批处理下从 1.94× 提升到 3.93×。 §Abstract
  • 在 FP8 Qwen3.8-27B 上批处理时,SpecPilot 在每个 batch size 上都优于 stock:DFlash2 下总体 1.85×,DSpark 下总体 1.94×,将相对 AR 的加速比从约 2× 提升到 3.90× 和 3.93×。 §5.2
  • 在 8-position lattice 上的精确重放中,best-first trees 将每步 token 数从 stock 链的 4.25 提升到 32 nodes 时的 5.38;drafting 16 positions 将曲线提升到 32 nodes 时的 5.85 和 63 时的 6.25。 §6.4
  • W12 在八个 dense 模型上平均每个权重仅 12.01–12.02 bits,并将 Qwen3.8-27B 的转换层从 44.67 GB 缩小到 33.58 GB,加载时对每个解码 tensor 逐 bit 校验。 §4.1
  • 最终 H100 系统的一个 TLV 周期约 30 ms:两次 draft 各 1.05 ms,一个 11.5 ms 的 Q pass 和一个 14.9 ms 的 exact pass;每个 exact pass 接受 11.67 个 token,而 one-level step 中为 6.16 个。 §C
  • Token forcing 以 0.73% 和 0.52% 的不匹配率接受两个无损系统,匹配 stock 的 0.72% 和 0.53%;并以 2.0% 和 2.4% 拒绝两个故障系统,其中它们 200 个经审计的大 margin 事件分别有 192 和 191 个无法解释。 §6.2

局限

  • 论文指出机制价值依赖场景:批处理下,24-node trees 在 FP8 target 上损失 14.9%;在 BF16 Qwen3.8-27B 上,24-position block 损失 9.9%,TLV 损失 13%,因此发现的机制必须按部署重新调优,而不能普适应用(§6.5)。
  • ceiling 假设每个 draft 一次 exact pass;在 RTX PRO 6000 上,最终相对 stock 的 2.44× 超过了该假设下计算的 2.12× ceiling,因此成本模型的 headroom 估计可能朝任一方向出错(§5.3)。
  • 收益常常只有几个百分点且接近计时噪声,在开发请求上测得的收益可能无法泛化到未见请求;论文报告,来自交错开发运行的相对 AR 加速比落在密封收益的 -2% 到 +6% 范围内(§1,§5.1)。
  • 该循环成本高昂:一轮需要 7-20 小时和 20-86 GPU-hours,十三个已完成轮次总共耗时 164 小时和 530 GPU-hours,产生 486 个 code changes 并提升其中 54 个(§D)。
  • 经认证的 LM head 在 H100 上比 BF16 更快,但在 RTX PRO 6000 上更慢,为 2598 对 1750 微秒,因此一些发现的组件具有平台特定性(§4.1)。

要点

  • 成本模型将相对 AR 的加速比表示为 S(N) = tau(N)/c(N),其中 c(N) 是步时相对 AR 步时的比值,从而把每步接受 token 数与步成本分开。 §3.1
  • ceiling 是某一轮若只 draft 一次、在一次 exact pass 中验证最佳树,并让每类 kernel 都运行在其字节下限时所能达到的加速比;该下限取 60% 峰值 dense throughput 下的 FLOP 时间与 90% 峰值带宽下的字节时间中的较大者。 §3.1
  • 仅当 patch 收益的 95% 下界超过 1% 加两倍 stock 对 stock 噪声,或当其输出与当前最佳发散时超过约 3%,控制器才提升该 patch。 §3.2
  • 若系统的不匹配率在 95% 置信度下超出 stock 超过 0.5 个百分点,或二项检验发现其无法解释的大 margin 事件比 stock 更频繁,则 Token forcing 拒绝该系统;其中事件指 margin 高于近并列阈值 delta 两倍的不匹配。 §3.3
  • W12 将每个权重存为符号位、每个输出通道 16-binade 窗口内的 4-bit exponent offset 和七位 mantissa,并为窗口外权重、零和 denormal 设置精确 escape list;其 stream-K GEMM 在寄存器中解码记录,并按固定顺序拆分归约,使 GEMM 具有确定性。 §4.1
  • 对于 hybrid targets,系统沿每条根路径重新计算 recurrent state,而不是按节点存储;WY verify kernel 将 rank-one 更新链转化为在 tensor cores 上求解的矩阵乘法,与 path kernel 的误差保持在一个 BF16 ulp 内且只改变舍入。 §4.2
  • 三种批处理服务机制只选择要 draft 和验证哪些行,因此是无损的:跨请求共享 node budget、每请求 drafter block 为 16、12 或 8 positions,以及 prompt admission。 §4.4
  • 缺少成本模型的单代理 baseline 在三轮后相对 stock 仅达到 1.34×,而 SpecPilot 为 2.13×,因为它从未处理占步时 80% 的 target 权重读取。 §6.1

思维导图

SpecPilot
成本模型与上限
加速比为 tau/c
上限分解为 tau、kernel、overhead
每轮重新计算
Agent 循环
Phase 0 测量差距
Phase 1 并行探索
Phases 2-3 集成并调优 kernel
Phase 4 密封最终评测
Token forcing
Teacher-forced FP32 评分器
速率规则与事件规则
在 2.0% 和 2.4% 拒绝故障
发现的算法
W12 12-bit 权重格式
Best-first trees 与 WY GDN
两级验证
批处理行选择
结构化记忆
140 条带 requirements 的条目
跨 drafter、模型、GPU 复用
结果
单请求相对 AR 4.46x 到 10.87x
批处理相对 AR 1.94x 到 3.93x
kernel 工作主导该链