论文

DLoop: 循环式投机解码

DLoop: 循环式投机解码

投机解码(speculative decoding)通过让轻量 draft model 提出 token、再由 target model 验证,加速大语言模型的自回归生成。随着 draft model 能力不断增强,我们发现 target model 经常在单个 drafting stage 就接受全部草稿 token,但每个 drafting stage 之后仍会执行一次验证,导致即使可以继续 drafting 也产生多余的 target-model 前向计算。 自适应草稿长度 方法会在解码过程中动态决定验证前生成多少 draft token,但这类方法只对自回归 draft model 带来加速。对于并行 draft model,要继续 drafting 就需要尚未验证的 draft token 所对应的 target-model 隐藏状态。 我们提出 DLoop,一种循环式的投机解码方案,可在验证之前自适应地执行多个 drafting stage。当 draft model 仍保持高置信度时,DLoop 会持续 drafting,并将累积的全部 draft token 一起验证。Loop-aware training 让 draft model 接触未验证 draft token 自身的隐藏状态,使其在额外的 drafting stage 中保持可靠。 通过增加 draft-model 前向计算,DLoop 减少了验证所需的 target-model 前向次数。在 EAGLE-3、DFlash、Domino、DSpark 以及 multi-token prediction 模块等多种投机解码方法上,DLoop 将实际时钟加速提升 5% 至 41%,同时保持无损解码。代码将开源于 https://github.com/naver-ai/DLoop 。

论文精读

TL;DR DLoop 循环推测解码,在草稿模型置信时连续执行多个草稿阶段再统一验证,减少目标模型前向次数,在 EAGLE-3 等主流方法上提升墙钟加速 5-41% 且无损。

问题

问题背景

推测解码 (speculative decoding) 已成为大语言模型推理加速的关键技术,其核心思路是用小型 draft model 批量生成 token,再由 target model 进行并行验证,以减少自回归解码中的顺序依赖。

现有方法局限

  • 标准推测解码在每个 drafting stage 之后都强制执行一次 target model 验证。随着 draft model 能力增强,target model 接受全部 draft token 的概率显著上升,此时验证经常成为冗余开销。
  • 自适应 draft 长度方法(如动态调整草稿数量)虽然尝试在解码过程中决定何时验证,但其优化只针对自回归 draft model。对于并行 draft model,继续 draft 需要访问尚未验证 token 对应的 target model hidden states,而该状态在验证前无法获得。
  • 因此,并行 draft model 要么提前截止 draft 并验证,要么多次调用 target model 获取中间状态,两者都抵消了并行 draft 的收益。

为什么这个问题难且重要

核心难点在于如何在缺少 target model 验证信号的情况下,让 draft model 安全地生成更多 token 并保持输出分布一致(lossless)。这要求 draft model 具备对长序列未验证上下文的可靠自信度估计,而传统训练中 draft model 从未见过自己的未验证 hidden states 分布,容易在多步 draft 后产生漂移。业界对推理效率的关注持续升温,减少 target model 前向次数是提升 wall-clock speedup 的最直接途径,因此解决该问题对部署端到端生成服务具有实际价值。

行业类比

可以将该问题类比为 CPU 分支预测中的深度预测:通过增加预测步数来减少流水线暂停,但前提是预测器在未确认分支结果时仍能保持较高精度。

核心洞察

  • - DLoop 将投机解码的验证从“每次 draft 后”改为“多个 draft 阶段后统一验证”,通过循环 draft 累积 token,减少 target model 的前向次数。与既有自适应长度方法仅对自回归 draft model 有效不同,DLoop 针对并行 draft model 的痛点:进一步 draft 需要 target model 对未验证 token 的 hidden states。DLoop 让 draft model 使用自己的 hidden states 进行后续 drafting,并通过 loop-aware training 保证其可靠性,从而在多种方法上实现 5-41% 的 wall-clock 加速。
  • - DLoop 的 loop-aware training 暴露 draft model 于其自身在多阶段 drafting 中产生的 hidden states,防止连续 draft 时错误累积,使循环 draft 成为安全且通用的加速手段。这一训练策略与之前仅训练单步 draft 的方法形成差异,使得即使 acceptance rate 较高时也能通过增加 draft 计算换取 target 计算的大幅减少,为工程部署提供了新的权衡维度。

方法

DLoop 方法详解

输入:已生成的前缀 token 序列,以及训练好的 draft model 与 target model(验证模型)。

DLoop 在 draft 阶段引入循环机制:draft model 从当前前缀开始,逐 token 生成候选 tokens。每生成一个 token,draft model 评估该 token 的预测置信度(例如 softmax 概率熵值或 top-1 概率);若置信度高于预设阈值且累积 draft tokens 未达上限,则继续使用该 draft token 作为后续输入,并利用 draft model 自身维护的 hidden states 进行下一轮生成,而无需 target model 提供中间隐藏状态。当置信度不足或达到上限时,drafting 停止。

随后,所有累积的 draft tokens 被一次性送入 target model 进行并行验证。target model 逐 token 判断是否与自身分布一致:接受从头开始连续匹配的 token 序列,直到第一个不匹配处,之后 tokens 全部拒绝。接受的 tokens 追加到输出序列,若存在拒绝,则从拒绝位置重新开始 draft。

Loop-aware training 是 DLoop 的关键训练技巧:在训练 draft model 时,模拟循环 drafting 过程,让 draft model 以自身生成的 hidden states 作为后续步骤的输入(而非训练时始终使用 teacher forcing 的 target model hidden states),从而减少推理时错误累积。训练目标依然是标准的下一 token 预测损失,但数据构造上增加了循环路径。

输出:验证后的新 token 序列,保持自回归生成的严格无损。

与同类自适应 draft 长度方法相比,DLoop 专为并行 draft model 设计,通过循环使用 draft model 自身 hidden states,避免了验证前对 target model 隐藏状态的依赖。

实验

实验设计

DLoop 在多个 speculative decoding 基线上嵌入循环 draft 流程,包括 EAGLE-3、DFlash、Domino、DSpark 与 multi-token prediction (MTP) 模块。方法允许 draft model 在未验证 token 上继续生成,直到置信度低于阈值或达上限,再统一交给 target model 验证。使用 loop-aware training 让 draft model 暴露自身对未验证 token 的隐藏状态,提升后续 draft 可靠性。

关键发现

  • 在保持 lossless decoding 的前提下,DLoop 将 wall-clock speedup 提高 5% 至 41%,具体幅度因基线与任务而异。
  • 通过额外 draft 前向传递换取更少的 target 验证次数,验证开销显著降低。
  • loop-aware training 有效缓解了多轮 draft 的分布偏移,使 draft model 在长序列上仍能保持高接受率。
  • 方法对并行 draft model 同样有效,弥补了之前 adaptive draft length 方法的不足。

与基线对比解读

传统 adaptive draft length 只适用于自回归 draft model,因为并行 draft 需要 target 隐藏状态来生成未验证 token;DLoop 通过循环 draft 阶段 + 隐藏状态自复用,绕开这一约束,扩展了适用面。与一次性增加 draft 长度相比,DLoop 的置信度门控和 loop-aware training 让 draft 更稳健,避免低质量 token 堆积导致的接受率骤降,这是其加速收益稳定在 5-41% 的原因。

行业影响

落地场景

DLoop 面向低延迟在线推理 与 高吞吐批量生成 场景,如聊天机器人、代码助手、内容生成平台。它尤其适合并行草稿模型(如 EAGLE-3、DFlash、Domino),这些方法已用于生产推理框架。DLoop 通过减少目标模型前向次数,降低响应时间,适用于对成本敏感的 API 服务。

商业价值

推理成本是大模型部署的核心瓶颈。DLoop 在多个推测解码基线上将墙钟加速提升 5-41% ,且保持无损解码 ,直接降低单位 token 硬件成本。对于按 token 计费的 API 或内部模型服务,这意味着同等硬件可支撑更多并发,或降低延时提升用户体验,进而带动业务增长。

与现有工作流的接口

DLoop 可作为调度逻辑增强:在现有推测解码框架中,将“单次草稿-验证”循环替换为“多次草稿-统一验证”循环,并采用循环感知训练 微调草稿模型。接口改动集中在草稿阶段的调度与草稿模型训练数据构造,目标模型无需改动。支持多种草稿模型架构,降低迁移门槛。

具体落地 use case

  • 企业服务:客服机器人处理长对话时,循环草稿可减少 target 前向,降低单次回复延迟,提升服务性价比。
  • 电商平台:实时生成商品描述或推荐理由,高并发场景下 DLoop 可提升吞吐,支持更多请求同时处理,降低 GPU 租用成本。

局限

  • **额外草稿模型计算开销可能侵蚀收益**:DLoop 通过增加草稿模型前向传播来减少目标模型验证次数,在草稿模型显著小于目标模型时收益明显;但如果草稿模型相对较大,或目标模型与草稿模型计算比不够高,增加的草稿计算可能超过节省的目标模型计算,导致 wall-clock speedup 下降甚至变慢。论文虽在多种方法上验证,但未充分讨论草稿模型尺寸 / 架构的影响边界。从工程部署看,需要根据硬件吞吐和模型比例决定是否启用 DLoop,否则可能适得其反。
  • **Loop-aware training 增加训练成本且可能限制即插即用**:DLoop 要求修改草稿模型训练过程,让其接触自身对未验证 tokens 的隐藏状态,这意味着不能直接使用现成预训练草稿模型,必须额外进行 loop-aware 微调或从零训练。这增加了训练时间和数据需求,也使得在不同模型 / 数据分布间迁移时需要重新训练,降低了灵活性。论文未报告训练开销与普通草稿模型训练的对比,以及是否可以使用少量数据微调即可,从实际工程角度是一个重要不确定点。
  • **实验覆盖范围有限,缺乏大规模模型和更多框架验证**:摘要提到在多种推测解码方法(EAGLE-3、DFlash、Domino、DSpark、multi-token prediction)上提升 5-41%,但未见在超大模型(如 70B+)或不同硬件(如 TPU / 边缘设备)上的结果。置信度阈值等超参数在不同模型上可能敏感,论文可能只给出单一设置。此外,相比其他自适应草稿长度方法(仅支持自回归草稿模型),DLoop 的改进可能主要来自统一验证减少了验证次数,但其在低置信度场景下的退化行为未充分讨论,这限制了对该方法鲁棒性的判断。
论文Geonmo Gu2026-10-06原文

相关内容