PACER: Blockwise Pre-verification for Speculative Decoding with Adaptive Length
该论文介绍了 PACER,一种新颖的投机解码框架,它利用一个轻量级的、可训练的预验证层来以块为单位动态调整草拟标记长度,从而显著加速大语言模型推理,并超越了标准的固定长度方法。
原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明
想象一下,你正在尝试写一篇长篇故事,但你面对的是一位非常严格的编辑。在大型语言模型(LLM)的世界里,这个“编辑”就是目标模型(Target Model)。它非常聪明且准确,但运行起来非常缓慢且昂贵。每当你写下一个词时,它都需要很长时间来进行检查。
为了提高速度,我们通常会使用一个草稿模型(Draft Model)。你可以把它想象成一个反应很快、精力充沛的实习生,虽然他擅长猜测接下来的内容,但并不完美。
旧方法:“固定猜测”游戏
在标准的**投机采样(Speculative Decoding)**中,过程如下:
- **实习生(草稿模型)**快速连续写下固定数量的词(例如 5 个词)。
- **编辑(目标模型)**随后一次性阅读这 5 个词,以检查它们是否正确。
- 问题在于: 编辑非常挑剔。
- 如果实习生猜得太多(例如 9 个词),编辑可能会拒绝第 6 个词。这意味着实习生写的第 7、第 8 和第 9 个词都是浪费时间。
- 如果实习生猜得太少(例如 2 个词),编辑就不得不频繁停止并进行检查,这会拖慢整体速度,因为编辑成为了瓶颈。
论文指出,“完美”的猜测词数是在不断变化的。有时实习生状态很好,可以连续猜对 10 个词;有时他却只能坚持 1 个词就卡住了。使用固定数量(比如总是猜 5 个)就像是试图把方榫头塞进圆孔里——这是低效的。
新方案:PACER(“智能块检查器”)
作者提出了一种名为 PACER 的新系统。PACER 不再让实习生一次性猜测固定数量的词,而是加入了一个预验证层(Pre-verification Layer)。你可以把这想象成一个站在实习生和编辑之间的组长。
以下是 PACER 的工作步骤:
- 实习生以小块(Blocks)的形式写作: 实习生不再一次写 5 个词,而是写一个包含 3 个词的小块。
- 组长检查该块: 在将这 3 个词发送给缓慢的编辑之前,组长(一个极小、极快的 AI)会快速检查它们。
- 组长会问: “这 3 个词看起来能通过编辑的测试吗?”
- 决策:
- 如果组长说“可以”: 实习生立即编写下一个 3 词块。组长也会检查下一个块。如此循环,非常快速地构建出一条长长的正确词链。
- 如果组长说“不行”: 实习生立即停止。组长将已接受的词发送给编辑进行最终的正式检查。实习生不会浪费时间去写那个很可能被拒绝的剩余部分。
为什么这更好?
论文使用了一个关于交通流的绝佳类比。
- 旧方法: 你以固定的速度行驶。有时候路况良好,你本可以开得更快;有时候前方有红灯,而你却一直开向红灯,白白浪费了汽油。
- PACER: 你有一个聪明的导航员。如果前方路况看起来很顺畅,你会加速并行驶更远;如果导航员看到前方有红灯,你会赶在撞上红灯之前停下来,从而节省汽油和时间。
结果
论文在编写代码、解决数学问题和总结新闻等各种任务上进行了测试。
- 速度: PACER 使系统比标准做法快了高达 2.66 倍。
- 结合: 当他们将 PACER 与另一种提速技术“Ouroboros”结合时,系统变得快了 3.09 倍。
- 效率: 它成功减少了缓慢的编辑需要工作的次数,同时让快速的实习生工作得更聪明,而不仅仅是更努力。
总结
PACER 就像是给你的快速 AI 实习生配了一位聪明的监督员。与其猜测固定数量的文本并听天由命,不如让监督员实时检查每一小批次的工作。如果工作看起来没问题,就继续前进;如果看起来有风险,就立即停止。这避免了徒劳的努力,并让最终结果更快地呈现在用户面前。
您所在领域的论文太多了?
获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。