今天我要分享的是deepmind团队的文章《Accelerating Large Language Model Decoding with Speculative Sampling》
代码
背景
short continuations
指在给定的文本中,后续的一小段文本
the latency of parallel scoring of short continuations
对输入文本进行处理时,模型对后续的小段文本进行并行评分的延迟时间
并行评分指的是多个计算核心上同时对后续小段文本评分
一般认为延迟越小,模型的处理速度就越快,性能也就越好
Transformer sampling
transformer 中的 sampling 是指在训练和推理过程中,对输入序列进行采样的过程, 以减少计算量和提高效率
具体来说,Transformer 中的 sampling 通常是指对输入序列中的单词进行采样。在训练过程中,为了减少计算量,通常会对输入序列中的每个单词进行采样,只保留一部分单词。在推理过程中,为了生成输出序列,也需要对输入序列中的每个单词进行采样。
采样的方法有很多种,例如随机采样、重要性采样和最大似然采样等。不同的采样方法可以产生不同的效果,因此需要根据具体的任务和需求来选择合适的采样方法。
token
”Tokens” 通常指的是输入数据的基本单元。
在 NLP 中,例如在处理文本数据时,每个单词通常被视为一个单独的令牌。因此,一个句子可以被表示为一系列令牌,每个令牌对应于句子中的一个单词。
在 CV 中,令牌可以是图像中的单个像素、一组像素或者更高级别的特征。例如,在对象检测模型中,每个对象可以被表示为一系列令牌,每个令牌对应于对象在图像中的位置和特征。
问题
大模型中transform采样基本上受限于内存限制,如何加速大模型解码器推理
观察
由小模型产生小段文本基本上和大模型产生的token一致
从直觉上讲,在某些情况下,下一个token可能是很容易地预测出来。因此,如果在给定的标记或子序列上,草案和目标模型的分布具有高度的一致性,那么每次调用目标模型时,就可以生成多个token,而不必每次都调用目标模型
方法
提出推测采样策略并结合修改的拒绝采样策略可以保留目标模型在硬件(GPU)上的分布
-
生成长度为 𝐾 的短草稿。通过并行模型或通过调用更快的自回归模型𝐾 次来生成小模型。该小模型称为草稿模型,并重点关注它是自回归的情况。
-
使用采样的更大、更强大的大模型对草稿模型进行评分。我们将该模型称为目标模型。
-
使用修改后的拒绝采样方案,从左到右接受𝐾草稿token的子集,在此过程中恢复目标模型的分布。