HeadlinesBriefing HeadlinesBriefing.com

投机解码为何能加速大语言模型

Hacker News •
×

人们常以为投机解码之所以快,是因为每个token所需的计算更少。这并不正确。对于同一序列,浮点运算总量(FLOPs)实际上是增加的。加速来自于改变GPU所执行的计算类型。

逐个token解码通常受内存带宽限制。每生成一个token,GPU都必须从全局内存中读取所有活跃的模型参数,例如Qwen3.5-27B的27B参数。与此同时,大部分计算单元处于空闲状态。相反,对数千个token进行大批量解码则是计算密集型的,GPU忙于张量运算。

投机解码使用一个小型草稿模型提出一串可能的token,然后大模型在一次前向传播中对其进行验证。在低批量大小下,这会将原本被浪费的计算转化为实际进展。与其运行五个序列各自推进一个token,不如让一个序列一次推进五个token,而总工作量保持不变。

该技术存在局限。如果接受率低于100%,每个被拒绝的token都是浪费的工作。在高吞吐量场景下,GPU本身已处于计算密集状态,投机解码只会增加成本而无益处,这也是vLLM提供 --speculative-disable-by-batch-size 设置以将其关闭的原因。

来源: Hacker News · 由HeadlinesBriefing整理摘要