1 基本介绍
- 投机采样(Speculative Sampling)是一种并行预测多个可能输出,然后快速验证并采纳正确部分的加速策略
- 在不牺牲输出质量的前提下,减少语言模型生成 token 所需的时间
- 传统的语言模型生成是 串行 的
- 必须生成一个,再输入到模型中,才能生成下一个
- 投机采样的核心思想是
- 用一个"小模型"提前生成多个候选 token(投机结果),然后用"大模型"一起验证这批候选,并行加速。
2 举例
- 比如已有 prompt 是:"The weather today is"
- 小模型(Draft Model)快速生成多个候选 token
- 例如预测出:"The weather today is [sunny, and, warm, with, ...]" 共 5 个 token
- 大模型(Target Model)验证这些 token
-
大模型并行地计算这 5 个 token 的概率;
-
如果小模型的结果和大模型的前几个 token 一致(大模型在这个token上概率小于小模型的,即小模型"更有把握"),就"采纳"它;如果中途发现不一致,就在那个位置停止,用大模型重新生成。
-
- 那么下一轮:
- 那么下一轮:
-