- 论文链接:https://arxiv.org/abs/2608.26112
- 代码:https://github.com/fjm9933/TreeGraft
- 发表时间:2026 年 8 月 28 日(arXiv:2608.26112v2)
- 机构:东南大学 + 蚂蚁集团 + 南京信息工程大学(企业+高校合作,蚂蚁为工程与算力方)
一、论文背景
大语言模型的推理慢在逐 token 解码。投机解码用"小模型起草、大模型并行验证"的范式加速:小模型先写一段草稿,目标模型一次前向同时验证所有草稿 token,接受正确的、从第一个错误处回退。加速比的核心瓶颈是接受长度——每轮被接受的 token 数。早期投机解码只起草单条序列,一旦目标模型在某处拒绝,后面全部作废。
树形投机解码把草稿组织成多路径的树:局部分叉提供备选分支,绕过单点拒绝,从而拉长接受长度。但树形方法带来新的矛盾:接受长度长,要求树的质量高(路径要覆盖目标模型真正会接受的内容);而建高质量的树,起草成本也高。现有树形方法全程只用一个起草器,于是一道单选题出现:参数小的起草器快但树质量低,参数大的起草器树质量高但每一步都付高延迟。加速比被卡在"快与好"的两端之间。
一个自然的疑问是:必须每一步都用同一个起草器吗? 如果强起草器只在"它的质量增益最值钱"的那些步骤被调用,树的质量就能提升,而不必在所有步骤支付它的成本。TreeGraft 正是围绕这一观察展开:引入两个成本悬殊的起草器——免训练 n-gram 小起草器(0.92 ms/次)和预训练中间起草器(神经模型)——共同构建一棵共享草稿树,作者称之为"嫁接"(grafting)。
值得注意的是小起草器的选择:作者实测发现,即便家族里最小的神经 LLM(LLaMA 3.2-1B 需 29.1 ms、Qwen3-0.6B 需 44.8 ms)作为"低成本端点"仍然太贵;用神经小模型当小起草器反而使整体加速比跌破 1×(平均 0.865×),即比不解码还慢。因此低成本端点必须是查找式的 n-gram 起草器,把神经前向预算留给按需调用的中间起草器。
二、论文定位和关联工作
本文位于推理加速领域两条线的交叉点,Related Work 把它们讲得很清楚:
树形投机解码。一条线是"树侧优化":在给定草稿源的前提下改进树的构造(EAGLE-2 的动态草稿树)、节点分配与剪枝(OPT-Tree、剪枝候选树)、树/缓存树验证(SpecInfer、SpecExec)。另一条线是"草稿源改进":训练辅助草稿头(Medusa 的多头、Hydra 的序列依赖头、EAGLE 的特征级自起草、EAGLE-3 的多层特征融合)。TreeGraft 把第一条线从单起草器树构造推广到多起草器共享树构造;同时与第二条线正交——它不约束每个草稿源怎么获得,可以和训练式草稿头组合。
层级多起草器投机解码。已有工作(Cascade Speculative Drafting、TriForce)在草稿-目标管线中插入中间起草器,但都是序列式的:强起草器细化一条续写,生成新孩子时覆盖父节点的既有孩子。TreeGraft 首次把层级多起草器搬到草稿树上,树结构使"覆盖"变得有害(会丢弃整棵子树),也使"回看历史"变得可能(候选池可以扩到全树),两个核心设计由此自然涌现。
与本文最直接的对照基线是 CSD(序列式多起草器)与 EAGLE 式候选池设计在多起草器设置下的移植(w/o EG 变体),消融实验证明这两个"看似只是实现细节"的设计合计贡献了从 0.94× 到 1.43× 的全部差距。
三、问题定义
标准单起草器树构造流程:每步 k,起草器从候选池 Ck(通常是上一步新生成的节点 Nk)按累积路径得分 s(v)(根到 v 的边得分之积)选出 top-W 前沿 Fk,对每个前沿节点做一次前向,挂上 top-m 个子 token,形成 Nk+1。构造完成后按得分全局剪枝到验证预算 Bver,交给目标模型做树注意力验证与拒绝采样。
TreeGraft 的形式化问题:让小起草器与中间起草器在 D 个起草步上交替/穿插地扩建同一棵树,如何在保证输出分布不变(只改提案树、验证规则照旧)的前提下,最大化相对自回归解码的加速比 η = A/t(A 为接受长度,t 为起草延迟 tD 与验证延迟 tV 之和)?
这个问题拆成三个子问题:
- Where:中间起草器步的嫁接位置候选池怎么选?
- How:新节点怎么与既有树结构合并?
- When:哪些步值得调用中间起草器?
其中"When"存在一个可观测性鸿沟:一步的调用是否划算取决于整轮的最终吞吐,而吞吐只有在剩余树构造和验证全部完成后才能观测——监督信号绑定在完整调度轨迹上,而非孤立的局部决策。这决定了调度器必须离线拟合、在线蒸馏。
四、问题解法
Where——扩展嫁接位选择。 定义"节点被中间起草器访问过"=曾进入其候选池。中间起草器步的候选池取 Ck = V(Tk) \ Pk,即当前全树中它尚未访问过的所有节点。这让中间起草器能用自己的分布重新打分历史节点、重选嫁接位、复活被小起草器低估的路径。非对称性是刻意的:小起草器能力弱,不允许它重访旧节点重排序,只用标准规则 Ck = Nk 且直接复用已存得分。访问集更新规则:中间起草器步后 Pk+1 = Pk ∪ Ck,小起草器步后不变。
How——非破坏性嫁接。 选中的历史节点可能已挂有整棵子树,若沿用序列式方法的覆盖规则,会把目标模型可能接受的分支整棵丢掉。TreeGraft 把新子节点挂接而不覆盖任何既有节点。树可能暂时变大,但最终统一按累积得分全局剪枝到同一验证预算 Bver=63,构造期的"保守"不增加验证成本。
When——价值引导的在线调度。 三段式设计:
- 离线数据:6 个训练模型对 × 5 个拟合数据集 = 30 份报告,每份完整枚举 D=5 步的全部 2⁵=32 条调用/跳过调度轨迹,真实执行树构造与验证,记录轨迹级接受长度 A 与延迟 t,共 960 条轨迹记录、4800 行动作条件样本。相同(报告,步,前缀)的重复状态合并为 930 个规范在线状态。
- 价值系统拟合:轻量 MLP(4 头,按动作分支预测 A 与 log-latency,共 45,572 参数),输入为在线状态 z = (运行时上下文 4 维, 调度历史 7 维, 树信号) 加未来后缀编码。从 10 个候选树信号(前沿平均深度、叶比例、重选预览深度变化等)中用 5 折分组袋外验证枚举选出 6 维最优子集。
- 边际蒸馏:直接在线用价值系统做规划的方案被否决——绝对预测误差经后缀优化放大后,在线加速比反而只有 0.95×(消融表 5)。正确做法是把价值系统当离线教师:对每个规范状态,穷举未来后缀分别最大化"调用"与"跳过"两种动作的最优吞吐,取差值为调用/跳过边际 yk,再训练一个不看未来后缀的 17 维输入、3,265 参数 MLP 回归该边际;在线只看预测值的符号决定调用与否,单次前向仅 0.318 ms,远低于 n-gram 查找的 0.92 ms,更远低于目标验证的 69.39 ms。
五、评估指标与实验证据
主指标:相对目标模型自回归解码的加速比(×)。设置:10 个目标-中间模型对(LLaMA 3 与 Qwen3 两族,覆盖 8B-70B 目标),6 个基准(Alpaca/GSM8K/HumanEval/NQ/CNN-DM/MT-Bench),双 A100、batch 1、每基准 80 样本、温度 0;树超参统一 D=5、W=10、m=10、Bver=63。
主结果(表 1):
| 方法 | 平均加速比 | 说明 |
|---|---|---|
| All Small(全程 n-gram 小起草器) | 1.32× | 快但树差 |
| All Mid(全程中间起草器) | 1.39× | 树好但慢 |
| TreeGraft | 1.60× | 平均超较优端点 15.1% |
单点最大增益 26.6%(Qwen3-32B/0.6B Alpaca:1.38× vs All Mid 1.09×)。更关键的是三段式行为分析:当 All Mid 显著占优(LLaMA 70B/1B,2.30× vs 1.44×)时 TreeGraft 贴住 2.30×(调度器高频调用);当 All Small 显著占优(Qwen3-8B/0.6B,1.24× vs 0.85×)时 TreeGraft 达 1.27× 且避开 All Mid 的严重减速(低频调用);当两端接近(Qwen3-32B/0.6B,1.21× vs 1.19×)时 TreeGraft 冲到 1.47×(选择性调用)。最差情况仅落后较优端点 1.6%——几乎无损的择时能力。
泛化性(表 1 蓝行/绿列):
| 评估设置 | TreeGraft | All Small | All Mid |
|---|---|---|---|
| 4 个留出模型对(离线从未见过) | 1.48× | 1.32× | 1.20× |
| MT-Bench(完全留出任务) | 1.60× | 1.34× | 1.36× |
消融(表 2,固定调度 [1,0,1,0,1],2 模型对 × 2 基准):
| 变体 | 平均加速比 | 平均接受长度 A |
|---|---|---|
| CSD(序列式多起草器) | 0.94× | 0.81 |
| w/o EG(候选池限新节点) | 1.35× | 1.80 |
| w/o ND(嫁接时覆盖) | 1.20× | 1.47 |
| 完整 TreeGraft | 1.43× | 2.17 |
| 完整 + 学习调度器(对照表 1 同设置) | 1.94× | — |
配套机制统计:完整版的中间起草器候选池平均 112.54 节点(2.38 倍于 w/o EG),前沿选择 61.47% 落在历史位置(w/o EG 为 0%)——增益来自更好的位置而非更多的选择名额。调度器本身把固定调度的 1.43× 提升到 1.94×;离线评估中蒸馏调度器取得 24.30 tok/s,接近枚举空间最优轨迹的 24.78 tok/s。重复评测显示墙钟加速比差异仅 0.003×,结果稳定。
六、效果优势的根源解释
因果链:方法差异(多起草器共享树 + 回看历史 + 非破坏合并 + 择时调用)→ 机制变化(树质量提升与起草成本受控同时成立)→ 指标提升(接受长度 2.17 vs 0.81/1.47/1.80,加速比 1.60× 超较优端点 15.1%)。
分层拆解每个组件"为什么必须这样设计":
- 共享树是一切的前提。 序列式多起草器(CSD)在同一固定调度下只有 0.94×、接受长度 0.81——比不解码还慢。原因:序列式强起草器每次细化只覆盖一条续写,且覆盖式更新丢掉备选分支,树形验证的"多路保险"优势消失。共享树让两个起草器的产出沉淀在同一结构里,彼此增益可叠加。
- 回看历史解决"错杀"问题。 单起草器规则"只看新节点"在单起草器下是自然的(同一模型已评估过旧节点);但在强弱混用时,小起草器给历史节点打的分数是系统性不可信的——它低估的节点被永久埋没。消融显示去掉回看(w/o EG)接受长度从 2.17 降到 1.80;61.47% 的前沿选择落在历史位置,证明中间起草器大量利用了重看机会。由于两种方法每步都只选同样多的 top-W 节点,接受长度的提升来自选位更准,而非选择更多。
- 非破坏合并保住"已经付过钱"的分支。 被选中的历史节点往往已挂子树;覆盖即整棵丢弃,其中可能恰有目标模型会接受的路径(附录 G 给出两个真实案例:目标最终接受的历史分支 Lumber Liquidators 与 Pellegrini 在覆盖规则下都会被扔掉)。这是贡献最大的单项(去掉后 1.43×→1.20×、A 2.17→1.47)。注意它还有个隐性收益:最终统一剪枝到 Bver,构造期保留冗余分支不增加验证成本,“不破坏"几乎是免费的。
- 择时调用把成本从"处处付"变为"值处付”。 调度器解决的正是引言里的单选题:三个典型 regime 的调用率模式(高频贴 All Mid / 低频贴 All Small / 选择性超越两端)说明它学到的是成本-质量权衡的通用规律,而非对拟合配置的记忆——留出模型对与完全留出任务上仍 1.48×/1.60× 是直接证据。
- 边际蒸馏绕开误差放大。 直接用价值系统在线规划:离线 gap 更小(0.3718 vs 0.4826)但在线只有 0.95×——绝对误差在"对未来后缀取 max"的规划中被放大,翻转动作排序。蒸馏为相对边际后,教师的后缀推理被吸收进监督目标,学生只需在当前状态上判符号,反而在线 1.60×。这个消融本身就是一个关于"离线指标 ≠ 在线效果"的精彩案例。
此外,n-gram 小起草器的选择同样是因果链的一环:神经小模型(0.865×)会把低成本端点抬高到"低不了"的程度,两端成本相近时择时调度的空间被压缩;把低成本端压到 0.92 ms,才腾出最大的调度收益空间。
七、必要知识反推
读懂本文需要(或顺带能学到)以下知识模块:
- 投机解码基础:起草-验证范式、拒绝采样保证输出分布不变、加速比公式(≈ 1/(1-接受率+起草开销) 的直觉形式)、树注意力(tree attention)如何让目标模型一次前向验证一棵树。
- EAGLE 系树构造范式:动态树、候选池=新节点、累积路径得分、top-W 前沿、top-m 分叉、验证预算剪枝——TreeGraft 的所有改动都定义在这套语法之上。
- 层级投机解码:CSD 的级联思想与 TriForce 的分层 KV 缓存,理解"序列式覆盖规则"的历史出处,才能体会它搬到树上为何失效。
- 在线状态特征工程:10 个候选树信号(前沿深度、叶比例、重选预览的重叠率/历史占比/坍塌债等)如何刻画"这棵树此刻值不值得强起草器介入"——这是一份可复用的树状态特征清单。
- 离线评估/蒸馏方法论:动作条件回报、规范状态合并、按报告分组的 5 折袋外验证、NMAE 识别分数选特征子集、穷举后缀规划造边际标签——一整套"轨迹级监督 → 步级决策器"的通用工艺。
- n-gram 检索式起草器:用 prefill 时目标模型已产出的 top-m 缓存与上下文 n-gram 索引做零神经成本起草——理解"低成本端点"的真实底价。
八、通用性灵感
- 把单选题改成调度题。 “快而差 vs 慢而好"的二选一在系统里到处都是(小模型 vs 大模型、缓存 vs 重算、近似 vs 精确)。本文示范:当两种资源可以在细粒度步骤上混用且产出可合并时,一个学出来的择时器能超越两个端点中较好者——且几乎无下行风险(最差 -1.6%)。
- 弱者的判断可以被强者复审。 小起草器打分的节点不被当作定论,而是留给强起草器回看复活。任何"上游组件能力弱但速度快"的流水线(检索、初筛、粗排)都可考虑这种不对称信任设计:弱者负责覆盖面,强者负责纠正排序。
- 非破坏性合并 + 全局预算控制是配套的。 “先都保留、最后统一剪枝"让构造期不必做艰难的局部取舍。这招在候选生成、beam 搜索、任务调度中通用:只要最终预算刚性,中间过程的冗余可以是免费的。
- 相对边际优于绝对预测。 蒸馏"调用比跳过好多少"比蒸馏"调用后吞吐是多少"在线上稳健得多,因为规划/优化会放大绝对误差。做任何决策式学习器时,先想清楚监督信号应该是相对偏好还是绝对量。
- 离线穷举 + 在线轻量是甜点组合。 D=5 时后缀空间仅 32 条,可完全枚举造出高质量教师信号;在线部署 3,265 参数、0.318 ms 的学生。“离线可以贵、在线必须便宜"的蒸馏架构适用于绝大多数延迟敏感场景。
- 泛化性要用"留出"来证明。 留出模型对 + 完全留出任务的双重视角,把"调度器学到通用权衡"从口号变成可检验的主张——比只报告拟合配置上的提升可信得多。