投机解码会损害LLM推理的准确性吗?

投机解码会损害LLM推理的准确性吗?

Mitchell Stern 等人于2018年提出了投机解码的原型概念。该方法随后通过多种方式得到进一步发展和完善,包括Lookahead解码、REST、Medusa和EAGLE,显著加速了大语言模型(LLM)的推理过程。

有人可能会问:LLM中的投机解码会损害原始模型的准确性吗?简单答案是不会。

正统的投机解码算法是无损的,我们将通过数学分析和实验来证明这一点。

数学证明

投机采样公式可以定义如下:

其中:

以下是DeepMind论文中对该公式无损性的证明:

如果你觉得阅读数学公式太枯燥,接下来我将用一些直观的图示来说明这个证明。

实验

尽管我们在原理上证明了投机解码是无损的,但实现过程中仍可能出现错误。因此,实验验证也是必要的。我们对两种情况进行实验:贪心解码的确定性方法和多项式采样的随机方法。

贪心解码

我们让LLM生成一个短篇故事两次,第一次使用原始推理,第二次使用投机解码。我们使用了Medusa中的投机解码实现。模型权重为medusa-1.0-vicuna-7b-v1.5及其基础模型vicuna-7b-v1.5。测试运行后,我们得到了两个完全相同的结果。生成的文本如下:

多项式采样

在随机采样的情况下,情况更为复杂。大多数用于复现随机程序结果的方法使用固定的随机种子,以利用伪随机生成器的确定性。然而,这种方法不适用于我们的场景。我们的实验依赖于大数定律:在足够多的样本下,实际分布与理论分布之间的误差将收敛到零。

我们对四个提示的第一个生成token进行了1,000,000次采样迭代。使用的模型权重为Llama3 8B Instruct和EAGLE-LLaMA3-Instruct-8B。统计结果如下所示:

  • 蓝色:基础模型logits的softmax
  • 绿色:草稿模型logits的softmax
  • 橙色:投机采样的token频率(1,000,000次)

基础模型采样分布的标准差为9.694e-5,这与预期相符。

结论

投机解码不会损害大语言模型的推理准确性。通过严谨的数学分析和实际实验,我们证明了标准投机解码算法的无损特性。数学证明展示了投机采样公式如何保留基础模型的原始分布。我们的实验,包括确定性贪心解码和概率性多项式采样,进一步验证了这些理论发现。贪心解码实验在有和无投机解码的情况下产生了相同的结果,而多项式采样实验在大量样本上显示出token分布的微小差异。

这些结果共同证实,投机解码可以在不牺牲准确性的前提下显著加速LLM推理,为未来更高效、更易访问的AI系统铺平道路。

欲了解更多详情,请访问 Novita AI