投机解码(Speculative Decoding)
一句话总结
投机解码用小模型快速生成候选token序列,再由大模型并行验证,在不改变输出分布的前提下加速生成2-3倍。
核心概念
核心思想借鉴CPU的分支预测:草稿模型(Draft Model,通常是同系列的小模型)快速自回归生成K个候选token(K一般为4-8);目标大模型对这K个token进行一次前向传播并行验证;被接受的token直接采用,第一个被拒绝的位置从大模型重新采样。关键:通过修正后的接受-拒绝采样方案,数学上保证最终输出分布与只用大模型完全一致。加速比取决于草稿模型的接受率。
为什么重要
LLM推理的瓶颈是内存带宽而非计算量(memory-bound),每次生成一个token都要加载全部模型权重。投机解码让大模型一次验证多个token,有效提高计算利用率。且不损失任何精度——输出在数学上等价。
实践要点
草稿模型选择至关重要,与目标模型越相似接受率越高;也可以用模型自身的浅层作为草稿(Self-Speculative Decoding);K值需要根据接受率动态调整;在批处理场景下加速比会降低。
常见误区
误区一:投机解码会改变输出质量——数学证明输出分布完全一致。误区二:加速比是固定的——它高度依赖于草稿模型的接受率和具体输入内容。