白得 2 到 3 倍加速的投机采样机制解析:草稿模型和目标模型是怎么配合的

简介: LLM自回归解码因内存带宽瓶颈而缓慢:每生成1个token均需重载全部权重(如70B模型达140GB)。投机采样通过小模型快速“猜”多token,大模型一次并行验证,接受率高时可获2–3倍无损加速。

LLM 解码很慢,因为生成一个 token 需要每次都从 GPU 内存中加载全部模型权重。700 亿参数的模型意味着 140GB 权重,每一个 token 都要重新加载一遍。

LLM 解码本质上是顺序的,称之为自回归生成(autoregressive generation)。每个 token 都依赖前面所有的 token,采样一个、喂回模型、再采样下一个,如此循环。

没有 token 4 就生成不了 token 5,只能一个一个来,所以每次都要加载那 140GB 权重。

那么如果设想有一个小而便宜的模型,能飞快猜出接下来几个 token;大模型再一次性验证这些猜测。猜对了,就用一个 token 的代价拿到了 1 到 k 个 token;猜错了,就回退继续。

这就是投机采样(speculative decoding)。它完全无损而且在数学上站得住脚。

验证具体如何进行

举个例子。输入是 "I want",草稿模型(draft model)预测接下来四个 token 是 "ice cream and cake"。

目标模型(target model)对整个序列做一次前向传播,为每个草稿 token 计算自己会给出的概率,再和草稿模型的预测比较。草稿模型的置信度低于目标模型时,token 直接通过;草稿模型过于自信时,则按两个分布之间的比率决定接受概率——相当于目标模型在说"没错,我也这么想",或者"不可能,我才不会这么说"。

token 被拒绝时,系统不会就此停下,而是从一个经过调整的分布中重新采样一个修正后的 token。这个修正分布在数学上保证和目标模型独立运行时产生的分布完全一致,这样就变成了没有草稿模型、没有捷径,大模型正常的在工作。

这就是"无损"的含义:最终输出分布和单独跑一遍目标模型完全相同,不是拿质量换速度。草稿模型在幕后猜测,实际拿到手的却是目标模型的分布,不是在破坏输出而是在修正它。

为什么能提速

验证在数学上没毛病,但性能上真有用吗?

解码是内存受限的(memory bound),瓶颈在于从 GPU 内存加载权重而不是计算本身。对 k 个 token 做一次前向传播,内存带宽开销和对 1 个 token 做前向传播差不多,因为反正权重都要加载一遍。于是验证 k 个草稿 token 的开销,大致等于从头生成 1 个 token 的开销。这 k 个 token 里只要有一半被接受,就等于用一个 token 时间换来了好几个,可以说纯粹是并行的提速。

实际能提速多少?一般是 2 到 3 倍,但这不是固定值,这取决于草稿模型猜对的频率。温度(temperature)越低输出越可预测,接受率也就越高;代码比创意写作更规整,所以代码场景下的加速通常更明显。草稿模型对目标模型的行为摸得越透,白捡的 token 就越多。

树形投机采样

基础版投机采样只提出一条长度为 k 的序列,是单一直线式的猜测。但如果草稿模型拿不准下一个 token 是 "ice" 还是 "chocolate" 呢?基础版只能二选一,赌一把。

SpecInfer 的做法是两个都猜。草稿模型不再只给出一条序列,而是构建一棵可能延续路径组成的树。不再只猜 "ice cream and cake",而是同时猜:

 'ice' → 'cream' → 'and cake'

 'chocolate' → 'cake' → 'is great'

目标模型在一次前向传播中验证整棵树,沿着每个 token 都会被接受的最长路径走下去。这样每一步能接受的 token 更多,因为同时覆盖了几条可能的延续路径,而不是把宝全押在一个猜测上。

但是构建和验证一棵树实现起来更复杂。不过草稿模型确实在几个选项间犹豫不决时,树形方法比基础序列方法优势明显。

目前的应用现状

投机采样早已不是停留在纸面上的研究技巧。vLLM 内置支持,TensorRT-LLM 也已经集成,这也是过去两年推理 API 在模型本身没有变小的情况下大幅提速的原因之一。

这个领域已经走出了"草稿模型 + 目标模型"的基础设定。部分实现干脆跳过独立的草稿模型,转而在目标模型上直接挂几个额外的预测头,利用模型自身的内部表示并行预测未来的 token。这些预测头被称为 Medusa 头(这名字起得确实不错)。不用管理额外的模型,草稿模型和目标模型之间也不存在分布不匹配的问题,同一个模型在每次前向传播里只是多干了点活

而EAGLE 走得更远,在特征层面而非 token 层面做预测,接受率因此更高。投机采样的核心思想,基本上已经撑起了推理优化领域的一个分支

总结

投机采样的精妙之处在于:不改模型、不动训练、不碰权重,纯粹是利用了"验证比生成便宜"这个事实——因为解码是内存受限的——再靠一套数学上严密的拒绝采样(rejection sampling)技巧,保证输出和单独跑大模型时一模一样。

白得 2 到 3 倍推理加速,唯一的代价是需要一个够格的草稿模型,以及把它接进系统的工程量。

如果说 KV Cache 那篇讲的是怎么更好地利用 GPU 内存,这篇讲的就是怎么更好地利用每一次前向传播。两者合起来,覆盖了 LLM 推理里最重要的两个维度:空间和时间。

https://avoid.overfit.cn/post/163e4c3986794a51ba9c983c4f2f561e

by Vedanti

目录
相关文章
|
6天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
463 123
|
8天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
444 127
|
10天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
758 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
2天前
|
消息中间件 存储 Kafka
Kafka 原生消息入湖能力上线!一键打通实时流与数据湖
阿里云消息队列 Kafka 版正式上线原生消息入湖能力。
216 121
|
2天前
|
人工智能 安全 Cloud Native
Higress 新发布:AI Gateway 能力增强,Gateway API 及其推理扩展持续打磨
增强 AI 网关能力,持续打磨 Gateway API 及其推理扩展。
263 122
|
8天前
|
缓存 人工智能 运维
阿里云618百炼大模型Qwen3.7-Max功能、免费试用、订阅计费、配置接入详解
Qwen3.7-MAX是阿里云百炼平台推出的通义千问3.7系列旗舰大语言模型,专为智能体时代复杂任务打造,依托阿里云全域算力与自研技术,在逻辑推理、长文本处理、代码工程、长周期自主执行等领域达到行业顶尖水平。2026年618期间,该模型推出多重免费试用权益、按量计费5折、订阅套餐优惠等专属福利,覆盖个人开发者、团队与企业全场景需求,以下从核心功能、免费试用、订阅计费、配置接入四方面展开详细解析。
453 123
|
6天前
|
人工智能 自然语言处理 API
阿里云Token Plan团队版解析:功能、三档套餐与省钱订阅指南
阿里云百炼平台推出的Token Plan团队版,是面向企业与团队的AI大模型订阅服务,以Credits为统一计量单位,整合文本与图像生成模型,提供团队管理、数据安全、多工具兼容等核心能力,解决团队零散订阅AI服务的管理混乱、成本失控、数据安全等痛点。本文将从核心定位、套餐详情、计费规则、团队管理、工具兼容、便宜订阅技巧等方面,全面解析Token Plan团队版,帮助企业与团队高效、低成本地使用AI服务。
332 108
|
15天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)