@_avichawla: Anthropic. Google. Meta. 每个人都在用来自1990年代的一个想法将LLM推理速度提升2-3倍。在1990年代,CPU设计者…

X AI KOLs Timeline 新闻

摘要

推测解码受1990年代CPU分支预测启发,现被Anthropic、Google和Meta用于将LLM推理速度提升2-3倍。它使用一个小模型来猜测未来的token,并用一个大模型并行验证它们,从而避免了解码期间GPU空闲时间。

Anthropic. Google. Meta. 每个人都在使用来自1990年代的一个想法,将LLM推理速度提升2-3倍。 在1990年代,CPU设计者遇到了流水线停顿问题。 最初,CPU被设计成分阶段处理指令,例如取指、解码、执行和写回。 它们完成一条指令后才开始下一条,导致大多数阶段处于空闲状态。 流水线技术通过让多条指令像流水线一样同时流经各个阶段解决了这个问题。 但它也引入了一个新问题。 当CPU遇到条件分支(if/else)时,它还不知道该走哪条路径。 但流水线已经开始获取下一条指令。如果这些指令来自错误路径,所有工作都会被清空。 流水线发生停顿,在典型程序中大约每三条指令就会发生一次。 分支预测解决了这个问题。 处理器保留了历史分支记录,预测可能的路径,并提前执行。 如果预测正确(大约95%的概率),流水线就不会停顿。如果预测错误,只需清空并重试。 现在,LLM推理在不同的硬件上面临同样的问题。 GPU可以并行处理多个token。这在预填充阶段完成,此时一次性处理整个提示,计算单元被完全填满。 但在解码阶段,模型逐个生成token。每个token依赖于前一个,因此GPU无法提前工作。 它每次为每个token从内存加载数十亿参数,几乎瞬间完成计算,然后空闲等待下一步。 原本可以一次处理多个token的硬件现在只能一次处理一个。 推测解码以分支预测解决CPU停滞的方式打破了这一限制。 → 一个小模型猜测接下来的K个token。 → 大模型然后在单次前向传递中验证所有K个token。 这个验证步骤看起来就像预填充阶段,一次性处理多个token,计算单元被完全填满。 → 最佳情况下,一次大模型调用可以得到K+1个token。 → 最坏情况下,只得到1个token,与标准解码完全相同。 而且在这两种情况下,输出分布在数学上始终一致。 Google Search在AI Overviews中正是使用这种方法服务超过20亿用户。vLLM、TensorRT-LLM和SGLang也内置了支持。 我写了一篇文章详细介绍推测解码的完整机制。它涵盖了KV缓存、推测解码的内部原理(附代码)以及权衡。 请阅读以下内容。 ____ 找到我 → @_avichawla 每天我都会分享关于DS、ML、LLMs和RAGs的教程与见解。
查看原文
查看缓存全文

缓存时间: 2026/05/26 21:14

Anthropic。 Google。 Meta。

所有人都在用上世纪90年代的一个思路,把大语言模型推理速度提升2-3倍。

上世纪90年代,CPU设计师遇到了流水线停顿问题。

最初,CPU按取指、译码、执行、写回等阶段依次处理指令,完成一条再开始下一条。这导致大多数阶段处于空闲。

流水线技术通过让多条指令像流水线一样同时流经各个阶段解决了这个问题,但带来了新麻烦。

当CPU遇到条件分支(if/else)时,它还不知道该走哪条路径,但流水线已经开始取后续指令。如果那些指令来自错误路径,所有工作将被清空,流水线停顿。在典型程序中,大约每三条指令就会发生一次。

分支预测解决了这个问题。

处理器记录过去分支的历史,预测最可能的路径,并提前执行。如果预测正确(概率约95%),流水线永不阻塞;如果错误,只需清空并重试。

如今,大语言模型推理在不同硬件上遇到了同样的问题。

GPU也能并行处理多个token。在预填充阶段,它一次性读入整个提示词,计算单元完全饱和。但在解码阶段,模型逐token生成,每个token依赖前一个,GPU无法提前工作。

它为每个token从内存加载数十亿参数,几乎瞬间完成计算,然后空闲直到下一步。本可同时处理多个token的硬件,现在只能一次处理一个。

推测解码像分支预测破解CPU停顿那样打破了这种困境。

→ 小模型猜测后续K个token。 → 大模型在一次前向传播中验证所有K个token。

验证步骤类似于预填充阶段:多个token同时处理,计算单元完全饱和。

→ 最佳情况下,一次大模型调用得到K+1个token。 → 最坏情况下,得到1个token,与标准解码完全一样。

而且两种情况下,输出分布在数学上总是完全一致。

Google搜索在AI概览中正是用这种方法服务超过20亿用户。vLLM、TensorRT-LLM和SGLang也已内置支持。

我写了一篇文章,详细介绍了推测解码的完整机制,涵盖KV缓存、内部原理(含代码)和权衡。

请阅读下文。


找我 → @_avichawla 每天分享关于数据科学、机器学习、大语言模型和RAG的教程与见解。

相似文章

什么是推测性解码?(在paperswithco.de上热门)[R]

Reddit r/MachineLearning

推测性解码是一种推理优化技术,它使用快速草稿模型提出未来 token,并由较大模型并行验证,从而提高 LLM 的生成速度。文章强调了它在 Papers with Code 上的热门状态,以及最近的 SGLang 博客文章,该文章介绍了使用 DFlash 模型实现的最先进延迟。

通过序列蒙特卡洛加速LLM推理

arXiv cs.CL

本文提出了序列蒙特卡洛推测解码(SMC-SD),一种通过用草稿粒子群的重要性加权重采样替代推测解码中的令牌级拒绝来加速LLM推理的方法,在保持3%精度损失的前提下相比标准推测解码实现2.36倍加速,相比自回归解码实现5.2倍加速。