Speculative Decoding Explained: How to Get 3× Faster Inference from Any LLM
TL;DR · AI 摘要
Speculative Decoding Explained: How to Get 3× Faster Inference from Any LLM - MachineLearningMastery.com Speculative Dec...
核心要点
- 主题聚焦:Speculative Decoding Explained: How to Get 3× Fa
- 来源:Machine Learning Mastery,建议结合原文判断细节。
- AI 分析暂不可用,本条为保底评分与摘要。
推测性解码详解:如何让任意大语言模型的推理速度提升3倍 - MachineLearningMastery.com
推测性解码详解:如何让任意大语言模型的推理速度提升3倍
作者:
Vinod Chugani
发布于:
2026年10月23日
分类:
语言模型
0
分享
本文将向你展示推测性解码的工作原理,解释它为何能在硬件层面带来实际的速度提升,并展示现代实现方案的具体形态。
我们将涵盖以下主题:
- 导致标准自回归token生成速度缓慢的核心内存带宽瓶颈
- 草稿-验证循环的工作机制及其为何能完全保留目标模型的输出分布
- 现代推测性解码变体(包括Medusa、Eagle和Prompt Lookup Decoding)以及在生产环境中实现该技术的实际权衡
引言
每次向AI聊天机器人发送消息时,模型都是逐个token生成响应。这种单一约束是大规模部署大型语言模型最显著的障碍之一。随着模型变得更大更强大,生成每个token所需的时间成为一个实际问题,特别是在需要即时反馈的应用场景中,如代码助手、客服机器人和实时代理。
推测性解码无需改变模型、重新训练新数据或牺牲输出质量,就能绕过这个问题。它通过更智能的生成策略实现2到3倍的推理加速。本文将分解其工作原理,解释为何在硬件层面更快,以及现代实现方案的具体形态。
核心问题:大语言模型逐个生成token
大型语言模型以自回归方式生成文本。模型读取所有先前token,在数十亿参数上执行完整计算,然后生成一个新token。接着为下一个token重复整个过程,直到响应完成。
瓶颈不是原始计算速度。现代AI硬件如NVIDIA H100 GPU在运行这些模型所需的矩阵运算方面非常快速。问题在于模型的数十亿参数存储在GPU内存中,在生成每个token之前,所有这些权重都需要从内存传输到处理器。这个数据传输才是真正的限制因素,而非计算本身。
逐个生成token意味着GPU需要反复等待内存传输,而其计算单元大部分时间处于空闲状态。工程师将这种状态称为内存带宽限制。向服务器添加更多原始计算资源并不能显著提升速度,因为限制因素是数据传输速度,而非处理速度。
推测性解码的创新之处
核心思想非常直接:不要逐个生成token,而是批量生成候选token并行验证。
这通过双模型系统实现。一个小型轻量级模型(称为草稿模型)快速生成候选token序列。这些猜测之所以快速且成本低廉,是因为草稿模型的参数数量远少于主模型。它仍然以自回归方式生成token,但由于体积更小,速度要快得多。
目标模型随后会在一次前向传递中评估所有这些候选标记。由于现代GPU专为并行计算设计,处理一批标记所花费的时间仅比处理单个标记略长。目标模型会检查每个候选标记,并根据其预测结果与候选标记的概率比较,决定接受或拒绝该标记。
这一过程遵循一种统计方法,可提供数学保证:最终输出的概率分布与目标模型独立生成每个标记时完全一致。输出质量不会被近似,而是可证明地完全相同。
逐步解析投机循环
草稿模型快速生成一个较短的序列,通常为4到8个候选标记,这些标记代表其对目标模型下一步输出的最佳猜测。
随后,目标模型会将整个序列作为一个批次进行评分。它不会为每个标记单独加载数十亿参数,而是仅加载一次参数,然后同时评估整个候选序列。
从第一个候选标记开始,目标模型会比较它对这个标记的置信度与草稿模型对该标记的置信度。如果目标模型的置信度至少与草稿模型相当,该标记将被自动接受。如果草稿模型的置信度更高,该标记将被接受,但接受概率会随着置信度差距的增大而降低。当标记被拒绝时,会从一个调整后的分布中采样修正后的标记,该分布考虑了两个模型预测结果的差异。这种调整正是保证最终输出与目标模型分布完全一致的关键,随后循环将从这里重新开始。
在最佳情况下,所有候选标记都被接受,同时目标模型在末尾生成一个额外的标记。这意味着系统以接近一次目标模型传递的成本,生成了5到9个标记。在最坏情况下,第一个草稿标记会被拒绝并替换,这实际上相比标准解码会略微增加开销,因为草稿模型的生成时间仍然需要计算。无论哪种情况,输出质量都保持不变,但实践者需要注意,如果模型配对匹配度较差,会导致小幅延迟而非中性结果。
为何能实现实际速度提升
在标准生成过程中,从内存中加载目标模型权重会占据大部分时间预算。每个标记都会触发另一次昂贵的内存读取,导致计算单元空闲。
通过投机解码,目标模型权重会在每个投机步骤中仅加载一次,然后应用于多个被接受的标记。GPU的并行计算能力可以一次性对整个候选序列执行有意义的计算,而不是在单个标记读取之间处于空闲状态。
实际加速效果主要取决于接受率,即草稿模型候选标记通过目标模型验证的频率。当接受率在70%到80%之间时(这对常见任务中匹配良好的模型对是典型值),实际加速效果可达2到3倍。涉及可预测或重复性文本的任务通常会产生更高的接受率和更大的加速效果。
现代方法:超越双模型架构
原始方法需要在目标模型旁维护一个独立的草稿模型,这会增加内存和工程开销。一些更新的技术在保留核心思想的同时,消除了对独立草稿模型的需求。值得注意的是:部分方法通过简化实现或提高吞吐量,牺牲了原始方法严格的分布保证,但实际对输出质量的影响通常可以忽略。
Medusa 通过在目标模型最终层直接附加多个额外预测头来修改目标模型本身。每个头独立预测不同的未来标记位置,因此目标模型无需外部模型即可自行生成候选序列。
Eagle(Extrapolation Algorithm for Greater Language-model Efficiency)基于目标模型的内部隐藏状态而非最终输出标记预测未来标记。隐藏状态携带更丰富的上下文信息,通常能提升复杂文本或领域特定文本的接受率。
Prompt Lookup Decoding 完全不需要二次模型。它扫描现有提示和对话历史中可能在响应中重复出现的短语,并直接使用这些短语作为候选草稿。这种方法在代码编辑和文档摘要等场景中表现尤为出色,因为输出内容通常会重复输入中的词汇和结构。
对从业者的意义
推测解码作为内置选项已集成到 Hugging Face 的 text-generation-inference、vLLM 和 llama.cpp 等推理框架中。对大多数从业者而言,启用该功能只需进行配置调整,而非开展研究项目。
该技术在生成长文本时效果最佳,当模型单次处理请求而非批量处理时,以及当提示和响应共享词汇或结构时表现更优。问答、文档摘要和代码补全通常能获得最大收益。高吞吐量的批量服务则是另一回事:在高度批量化的场景中,推测解码可能实际降低吞吐量,因为草稿标记会消耗本可用于处理更多请求的内存和计算资源。在生产环境中决定是否启用该功能时,请牢记这一权衡。
结论
推测解码重新定义了长期以来被视为语言模型推理中不可避免的约束。逐个标记的处理流程并非固定要求,而是标准生成方式的必然结果,而推测解码通过将快速草稿阶段与并行验证阶段结合,打破了这一限制,同时完全保留目标模型的输出。
其结果是推理速度更快,无需更改模型权重,不降低输出质量,也不需要修改提示工作流。随着该技术更紧密地集成到标准推理工具中,它正迅速成为大语言模型部署的默认方案。
更多相关内容
- 《机器学习从业者指南》
- 如何使用 R 语言入门机器学习(获取...
- 7 个能为简历增色的机器学习项目
- 6 个理解任意机器学习算法的问题
- 通过配方快速上手任意机器学习工具
- 快速掌握任意机器学习工具(即使...