Speculative Decoding 是一种用于加速大型语言模型(LLM)推理的技术。以下是关于 Speculative Decoding 的一些关键信息:
-
定义与起源:
- Speculative Decoding 源自 Google 2023 年发表的论文《Fast Inference from Transformers via Speculative Decoding》,直译为“推测解码”或“猜测解码”。这种技术借鉴了处理器(CPU)领域中的优化思想,如分支预测(branch prediction)中的推测执行(speculative execution)。
-
核心思想:
- Speculative Decoding 的核心是使用一大一小两个模型(分别记作 Mp 和 Mq),例如使用 Llama2-70B 作为大模型(目标模型),Llama2-7B 作为小模型(近似模型)。这两个模型需要使用相同的分词器(tokenizer)。
-
工作原理:
- 在生成模型中,通常采用自回归的方式,即当前生成的 token 作为下一次生成的输入,因此生成多个 token 的过程是一个串行过程。Speculative Decoding 通过先预测几个可能的 token,然后并行地验证是否准确,与自回归解码不同,能够单步解码多个 token,从而加速推理。
-
加速效果:
- Speculative Decoding 可以在不损失生成效果的前提下,获得 3 倍以上的加速比。在实验中,它能够在保持输出质量的同时,实现 2-2.5 倍的 LLM 推理速度提升。
-
应用领域:
- Speculative Decoding 可以广泛应用于自然语言处理、语音合成、机器翻译等领域,尤其是在需要实时或高效率运行的大型预训练模型中。
-
关键问题:
- 尽管 Speculative Decoding 有很大的潜力,但也引出了一些需要进一步调研的关键问题,包括如何选择或设计近似模型以在推测准确性和生成效率之间取得平衡,评估标准是否能够保持生成多样性和输出质量,以及如何对齐近似模型和目标大模型之间的推理过程以提高推理准确性。
-
理论分析:
- 有研究从理论上分析了 Speculative Decoding 的关键属性,包括输出质量和推理加速,并探讨了不同组件之间的基本联系以及它们如何共同影响解码算法的效率。
-
开源项目:
- 存在一些开源项目,如
Speculative Decoding
,它们不仅复现了当前的研究成果,还提出了作者自己的新颖想法,如结合 Prophet Net 的投机采样策略,并得到了社区的支持和持续更新。
- 存在一些开源项目,如
这些信息提供了对 Speculative Decoding 的全面理解,包括其定义、工作原理、加速效果、应用领域以及面临的挑战和理论研究。