什么是推测解码?让大模型回答更快的“先猜后验”

推测解码是什么?为什么小模型先起草、大模型再验收能加速生成,它和模型蒸馏、缓存有什么区别,以及它的实际限制。

什么是推测解码?让大模型回答更快的“先猜后验”
编辑部 ·

大模型回答问题时,通常是一个词一个词往后生成:先算出“今”,再算“天”,再算“天”,每一步都要经过一次昂贵的模型运算。**推测解码(Speculative Decoding)**换了一个思路:让轻量模型先快速打草稿,再让大模型一次检查多几个词。

只要草稿猜得足够准,大模型就少走几次“逐词计算”的来回,回答速度便能提升,而最终结果仍由大模型把关。

一句话理解:实习生起草,主编一次审多行

把大模型想成主编,小模型想成熟悉文风的实习生。

传统做法是实习生每写一个字,主编就审一次;推测解码则让实习生先写一小段,主编一次审阅。如果这段和主编自己的判断一致,就整段通过;不一致时,从第一个不同的位置改回去。

因此它不是拿小模型替代大模型,而是把小模型的“快”用来减少大模型等待的次数。

它的基本流程

  1. 草稿模型提议:小模型根据已有上下文,快速生成接下来的几个 token。
  2. 目标模型验证:大模型并行评估这些候选 token,判断哪些可以接受。
  3. 接受或修正:连续猜对的部分直接采用;一旦不合适,就由大模型在对应位置生成正确 token,然后继续下一轮。

关键在于:目标模型不是盲目相信草稿。经过正确的接受规则后,最终输出的概率分布可以与只用大模型逐 token 生成保持一致。

为什么会更快

生成式模型的瓶颈常在于“自回归”:下一个 token 必须等上一个 token 出来,硬件很难把这些步骤完全并行。推测解码把多步候选打包交给大模型验证,让一次前向计算有机会确认多个 token。

速度收益取决于三个因素:

  • 草稿模型够不够准:猜中越多,收益越大。
  • 草稿模型够不够轻:它不能为了起草反而消耗太多时间。
  • 目标模型的运行环境:模型越大、生成阶段越受限,越值得加速。

它最适合“目标模型很贵,但下一个词相对容易猜”的场景。代码补全、固定格式文本、常见问答往往比极其开放的创作更容易受益。

和几个相近概念的区别

概念解决什么最终回答来自谁
推测解码加快推理时的逐 token 生成目标大模型验证后输出
模型蒸馏训练一个更小、更便宜的模型学生模型
量化降低模型的显存与计算开销同一个模型
缓存复用已经算过的上下文或结果取决于原流程

模型蒸馏是在训练阶段把能力迁移给小模型;推测解码发生在推理阶段,小模型只是临时的“猜词助手”。量化则是改变参数的存储精度。它们可以叠加使用,并不冲突。

它不是免费的加速

推测解码需要额外运行一个草稿模型,也要处理验证和回退逻辑。当草稿经常猜错时,主模型仍要修正,额外工作反而会抵消收益。

此外,速度变快不等于模型更聪明。它不会修复事实错误、推理错误或幻觉;它只是让同样的生成过程更有效率。

还有一个常被忽略的点:不同任务的加速幅度差异很大。短回答可能还没来得及受益就结束了;包含大量罕见词、复杂推理或频繁切换语言的内容,草稿模型也更难连续猜中。

对普通用户意味着什么

你通常不会在聊天界面看到“推测解码”这个开关,但可能会感到同一能力级别的模型回复变快、流式输出更流畅、服务在高峰期更稳定。这背后可能有推测解码、量化、缓存、批处理等多种优化共同作用。

当你比较 AI 服务时,也不必把“首字很快”直接等同于“模型更强”。速度取决于模型能力、部署硬件、上下文长度和推理优化;质量则仍要看任务本身的正确性和稳定性。

总结

推测解码的本质是小模型先猜,大模型批量验收:用低成本草稿减少大模型逐词生成的等待,在不改变目标模型输出逻辑的前提下加快推理。

它不能让模型凭空变聪明,也不是任何场景都更快;但在大模型服务越来越普及的今天,这种“把昂贵计算用在确认而非每一步从头生成”的思路,正是让 AI 体验更快的重要工程技巧之一。