顺序草稿
每个候选都看得到前面实际采样的 token,连续性好;但草稿长度翻倍,草稿耗时也大致跟着增长。
- 优点:前后依赖完整
- 代价:
Tdraft ∝ 草稿长度
它在大模型旁边放一个“快手助理”:先批量猜一段,再由大模型一次验收。DSpark 的关键,是让草稿既猜得快、又前后连贯,并且只验证那些值得验证的部分。
真正的收益取决于草稿命中率、目标模型、硬件、并发量和服务实现。页面中的动画只用于建立直觉。
草稿模型负责便宜地提出多个候选 token;目标大模型并行验证候选前缀。DSpark 重点解决两个问题:长草稿越往后越容易乱,以及高并发时不值得把所有草稿都送去验证。
模型处理文本的基本单位,可能是字、词片段、符号;不一定等于一个自然语言“词”。
较轻、较快,负责提出候选;它不是最终裁判。
原本要运行的大模型,负责验证、拒绝与纠正候选。
Transformer 在训练时能并行处理很多位置;但生成时,下一个 token 依赖刚刚生成的 token,所以解码天然带有串行性。投机解码试图把多轮目标模型调用合并成更少的验证轮次。
所以加速只有三条路:草稿更快、草稿更准、验证更聪明。DSpark 同时碰了后两条:让长草稿更连贯,并减少低收益验证。
纯顺序草稿能理解“前一个词选了什么”,但草稿本身会变慢;纯并行草稿很快,却可能把不同合理表达的片段拼错。DSpark 把两者拆成“并行主干 + 极轻顺序头”。
每个候选都看得到前面实际采样的 token,连续性好;但草稿长度翻倍,草稿耗时也大致跟着增长。
Tdraft ∝ 草稿长度一次前向同时预测所有位置,长度增加时延迟增长很小;但同一块里的位置不知道其他位置最终采样了什么。
深一些的并行主干先给每个位置一份“基础 logits”;轻量顺序头再根据已采样前缀,加一个很便宜的转移修正。
两种回答都合理。纯并行预测时,第 2 个位置不知道第 1 个位置最终选了“不”还是“没”,于是可能拼成“不问题”。
k 的基础 logits Uₖ;顺序头增加前缀相关偏置 Bₖ,最终分布正比于 exp(Uₖ + Bₖ)。论文提供 Markov head 与 RNN head 两种实现,默认使用部署更简单的 Markov head。下面把论文中的一次解码循环拆成 6 个动作。点击左侧步骤,观察候选 token 如何出现、被截断、被目标模型验收与纠正。
先正常生成一个 token D,它成为草稿阶段的锚点。
保留的前缀会在一次目标模型前向中并行验证。
目标模型先生成锚点 D。DSpark 不替代目标模型,而是从这个锚点出发提出下一段候选。
代码通常比开放式聊天更容易预测;低负载时多验几个 token 几乎免费,高负载时每个低置信度 token 都会挤占宝贵批量容量。DSpark 将两者放进同一个调度目标。
r 的位置 j,前缀存活概率 aᵣ,ⱼ = ∏ᵢ≤ⱼ cᵣ,ᵢ。验证批量为 B = Σᵣ(1 + ℓᵣ),预期接受数为 τ = Σᵣ(1 + Σⱼ≤ℓᵣ aᵣ,ⱼ),调度器根据预先测得的硬件曲线 SPS(B) 最大化 Θ = τ × SPS(B)。论文还专门处理了“决策不能偷看未来 token”的因果约束,以保持无损性。草稿模型只负责提案。目标模型用拒绝采样规则验收,并在首次拒绝处纠正;这个规则可以精确恢复目标模型原本的输出分布。DSpark 还要求调度决策不依赖未来候选。
它只是便宜地提出候选序列,猜错不会直接进入最终输出。
接受最长的连续前缀;一旦某个位置拒绝,后面的候选全部作废。
正确的接受率和纠正分布保证最终采样结果与单独运行目标模型一致。
这是投机解码验收规则的最小化示例:草稿分布明显偏了,但“接受 + 残差纠正”后的频率仍接近目标分布。
q(x) 采样,以 min(1, p(x)/q(x)) 的概率接受;若拒绝,则从归一化后的 max(0, p(x)-q(x)) 采样。这个组合恰好产生目标分布 p(x)。多 token 版本按连续前缀执行。离线实验把调度器关闭,只比较草稿质量;线上实验则在 DeepSeek-V4 服务系统的真实流量与特定引擎配置下比较吞吐与用户侧生成速度。
理解下面四点,就已经抓住了这项工作的主干;公式、训练损失与生产工程细节可以以后再补。
目标模型不变,旁边增加一个专门训练的草稿与调度模块。
并行主干一次产生多个位置的基础预测,避免草稿本身逐 token 变慢。
它利用已采样的前缀修正下一个位置,减少不同表达路径互相拼错。
空闲时多验证,繁忙时砍掉低收益尾部,把目标模型批量容量留给更可能被接受的 token。
普通投机解码的基本框架也是“草稿 + 目标验证”。DSpark 的贡献集中在两点:半自回归草稿架构提高长块候选质量;置信度与硬件感知的前缀调度,在高并发服务里动态决定每个请求验证多长。
并行主干已经负责大部分语义判断;顺序头不必重新理解全部上下文,只需补上块内的局部转移信息。论文实验中,Markov head 往往已能获得大部分收益,RNN head 的额外提升相对有限。
不是。长草稿带来更多潜在收益,也带来更多验证和固定草稿成本。如果尾部很可能被拒,验证它们会拖累高并发吞吐。因此 DSpark 要动态截断。
草稿与目标分布差异很大、任务极难或开放度极高、草稿固定成本相对过高、硬件无法高效处理可变验证长度时,收益可能下降。论文也指出,低接受率请求的整块草稿成本仍不可回收。