From Chains to Trees: Parent-Conditioned Drafting for Semi-Autoregressive Speculative Decoding
Zixian Li, Tong Li, Chi Xie, Xiaohui Song, Haonan Lu
cs.CL
2026-08-03
OPPO把DSpark的线性草稿改成父节点条件树,不重训、不增加backbone前向。九个基准上B=7相对加速增益3.1%到29.5%,GSM8K上B=16接受长度从9.41升到11.16。
投机解码靠小草稿模型先猜一段后续 token,再让目标模型一次验证。加速成立的前提是草稿能活过验证。半自回归草稿器 DSpark 用一次并行 backbone 前向吐出整块位置的 logits,再用轻量 Markov 头按前一个 token 给这块加偏置,把块内依赖补回来。
它的解码路径仍是一条链:位置 0 选错,后面整段作废。块越大,早期错配越容易把并行草稿的收益吃掉。树形验证能对冲这种「一错全废」,但 EAGLE 一类自回归草稿器每长一层就要再跑草稿模型。DSpark 的 Markov 头其实已经学到了父 token 的条件分布,原版解码从来没用它来分叉。
PCTree 是纯推理策略,不改权重、不加 backbone 前向。共享那一组块级 logits,把链展开成一棵预算受限的树。
主实验固定 k=4、N=32。k=1 时扩展退化成贪心链,数学上回到 DSpark。
同一层的位置分布不能广播给所有父节点。那样会把各自都挺像的 token 缝成一条条件上不像的路径。对照实验 Shared-Markov tree 就是这么干的:先走出 DSpark 那条贪心链,再把链上每层的分布复用到所有兄弟。
目标模型是 Qwen3-4B/8B/14B,九个基准覆盖数学(GSM8K、MATH-500、AIME25)、代码(MBPP、HumanEval、LiveCodeBench)和对话(MT-Bench、Alpaca、Arena-Hard)。测速在单卡 NVIDIA H20、bfloat16、SDPA 上,greedy 验证,关掉 DSpark 的 confidence scheduling。B=7 用官方 DSpark 权重;B=16 按官方配方自己训。Qwen3-4B 的 B=16 以及 GSM8K 的 B=7 报三轮均值,其余主表多数只跑一轮。
| 任务 | B | DSpark 接受长度 | PCTree 接受长度 | AR 加速(DSpark→PCTree) |
| GSM8K | 7 | 6.31 | 7.24 | 4.24×→4.50×(+6.1%) |
| GSM8K | 16 | 9.41 | 11.16 | 6.14×→6.60×(+7.5%) |
| HumanEval | 7 | 5.60 | 6.78 | 3.74×→4.27×(+14.3%) |
| MT-Bench | 7 | 3.82 | 5.07 | 2.48×→3.20×(+29.3%) |
B=7 时,相对匹配 DSpark 的 AR 加速增益从 3.1%(Qwen3-4B MATH-500:4.21×→4.34×)到 29.5%(Qwen3-14B Alpaca:2.61×→3.38×)。九个任务、三个模型尺寸上接受长度全部上涨。对话类早期拒绝更狠,链改树的相对加速也更大。
机制隔离在 GSM8K、B=16、同一 DSpark 权重上:链 9.410,Shared-Markov 树 10.225,PCTree 11.156。相对 Shared-Markov,父节点再条件化把接受长度再抬 9.1%,每样本验证轮数从 24.718 降到 22.632。光分叉不够,条件要对上具体的父 token。外部对照 DFlash+DDTree 接受长度只有 7.485,但草稿架构和权重都不同,不能当成同因对比。
代价写在相位拆解里:B=7 时 Markov+tree 每轮从 0.65ms 升到 3.52ms,backbone 仍是 3.46ms,每样本轮数从 39.9 降到 35.1,总加速仍为正。k 从 1 到 2 吃掉大部分收益(接受长度 9.41→10.85),k=4 饱和到 11.16,k=8 不再涨。N 加大接受长度还会涨,但端到端加速在 B=7 时 N=32、B=16 时 N=64 见顶。
给已经部署 DSpark 的推理栈一个免训练补丁:半自回归草稿器「一次并行块加廉价顺序头」这块结构,本身就能撑树形验证。工程上 k=2 就已经接近饱和,不必把树铺得很宽。
这是渐进改进,不是新草稿器架构。树的质量被预训练 Markov 头卡住;加速数字绑在 H20、bf16、SDPA 和固定 N=32 上。EAGLE-3、DFlash 只是转载对照,不是同环境竞速。
作者自己列了四条:训练免费的扩展治不好系统性很弱的 Markov 头;层内 top-k 剪枝可能丢掉全局更优路径;过大的 k 或 N 会让草稿构造和验证注意力在小模型或显存紧的设备上不可忽视;加速依赖硬件、精度、注意力核和树预算。
主表多数配置只跑一轮,小数点后的精度不能当统计置信。GSM8K 三轮重复里 B=7 的加速增益是 +6.1±0.9%,B=16 是 +7.5±1.7%,方向稳定,幅度有噪声。评测关掉了 DSpark 原论文里的 confidence scheduling,和真实 serving 路径不完全一样。只测了 Qwen3 一族。