大模型学习笔记 - LLM 解码与部署

LLM 解码与部署

当完成训练后,我们就可以将大语言模型部署到真实场景中进行使用。大语言模型是通过文本生成的方式进行工作的。在自回归架构中,模型针对输入内容(即提示文本,详见第10 章)逐个单词生成输出内容的文本。这个过程一般被称为解码。
下面针对解码策略、加速方法、部署策略、压缩方法进行介绍。

1. 解码策略

大语言模型的生成方式本质上是一个概率采样过程,需要合适的解码策略来生成合适的输出内容。

1.1 背景

在介绍具体的解码策略之前,首先介绍一下语言模型解码的背景知识。这里,主要介绍自回归场景下的解码策略。下图展示了一个整体的自回归解码流程。可以看到,模型M 每次根据当前上下文词元序列𝒖 = [𝑢1, 𝑢2, · · · , 𝑢𝑡 ] 建模下一个词的概率分布𝑃(即公式5.11 的输出),然后根据一定的解码策略选择下一个词𝑢′,之后再将𝒖 和𝑢′ 作为新的上下文重复上述步骤,直到生成结束词元或者达到长度上限为止。在这个流程中,解码策略将主要关注如何基于概率分布𝑃 选择合适的下一个词𝑢′。自回归的解码策略并不局限于特定架构,常见的编码器-解码器、因果解码器和前缀解码器均可适用。
在这里插入图片描述

1.1 贪心搜索

目前常见的大语言模型主要是通过语言建模任务进行预训练的。基于这种训练方式,一种直观的解码策略是贪心搜索(Greedy Search)。具体来说,贪心搜索在每个生成步骤中都选择概率最高的词元,
其可以描述为以下形式: u i = a r g m a x u P ( u ∣ u < i ) u_i = argmax_{u}P(u|u_{<i}) ui=argmaxuP(uu<i)
在这里插入图片描述

在预测句子“I am sleepy. I start a pot of”的下一个词元时,贪心搜索选择了当前步骤下概率最高的词元——“coffee”。然后模型将“coffee”加入上下文,并不断重复该过程。由于贪心搜索所采取的是确定性策略,它的效果在不同类型的任务中具有一定的差异。在机器翻译和文本摘要等任务中,任务输出高度依赖于输入内容,贪心搜索通常能够获得不错的结果,但是在开放式生成任务(如故事生成和对话系统)中,贪心搜索有时会因为过于关注局部最优,而生成不自然、重复的句子.

1.2 概率采样

除了贪心搜索外,另一种可选的解码策略是概率采样(Probability Sampling)。该方法根据模型建模的概率分布采样得到下一个词元,旨在增强生成过程中的随机性和结果的多样性: u i ∼ P ( u ∣ u < i ) u_i\sim P(u|u_{<i}) uiP(uu<i)
在这里插入图片描述

上图中展示了下一个词元的概率分布,虽然单词“coffee”被选中的概率较高,但基于采样的策略同时也为选择其他单词(如“water”、“tea”等)留有一定的可能性,从而增加了生成文本的多样性和随机性。

1.2 贪心搜所改进

贪心搜索在每个生成步骤中均选择最高概率的词元,这可能会由于忽略在某些步骤中概率不是最高、但是整体生成概率更高的句子而造成局部最优。为了解决这个问题,可以进一步采用以下的改进策略。

1.2.1 束搜索 (保留前n个高概率的句子,最终选取整体概率高的生成)
  • 束搜索. 在解码过程中,束搜索(Beam Search) 会保留前𝑛 个具有最高概率的句子,并最终选取整体概率最高的生成回复。这里的𝑛 被称为束大小(BeamSize)。当𝑛 = 1,束搜索就退化为贪心搜索。
    在这里插入图片描述

如上图所示,第一步保留了概率最高的两个词“coffee”和“water”作为候选;第二步基于“coffee”和“water”均进行扩展,得到模型在两个上下文内容下的概率分布,最后选择联合概率最高的两个句子“coffee then”和“coffee and”作为候选。在下面的生成步骤中,将会继续基于这两个候选去进行扩展,每次都选择联合概率最高的两个句子。最后,当两个束的句子均生成结束后,选择整体生成概率最高的候选句子作为最终的输出。在实践中,束的数量通常设定在3 到6 的范围内,设置过大的束会显著增加运算开销,并可能会导致性能下降。

1.2.2 长度惩罚 (估计生成更长句子)
  • 长度惩罚 由于束搜索中需要比较不同长度候选句子的概率,往往需要引入长度惩罚(Length Penalty)(亦称为长度归一化)技术。如果没有长度惩罚,传统的束搜索会倾向于生成较短的句子,因为每生成一个单词,都会乘以一个小于1的概率,使得句子的生成概率逐渐变小。因此,可以在生成概率的计算中引入长度惩罚,通过将句子概率除以其长度的指数幂𝛼,对于句子概率进行归一化处理,从而鼓励模型生成更长的句子。在实践中,𝛼 通常设置为0.6 到0.7 之间的数值。
1.2.3 重复惩罚 (n元惩罚避免重复:出现惩罚和频率惩罚)
  • 3. 重复惩罚. 为了缓解贪心搜索重复生成的问题,可以使用𝑛-元惩罚(𝑛-gram Penalty)来强制避免生成重复的连续𝑛 个词元,实践中𝑛 通常设置为3 到5 之间的整数。进一步地,研究人员还提出了相对“温和”的惩罚机制来降低生成重复词元的概率,而不是“一刀切”地完全避免某些短语的生成,如出现惩罚(PresencePenalty)和频率惩罚(Frequency Penalty)。具体地,出现惩罚在生成过程中会将已经生成词元的logits减去惩罚项𝛼 来降低该词元之后生成的概率。频率惩罚相较于出现惩罚,会记录每个词元生成的数目,然后减去出现次数乘以惩罚项𝛼,因此如果一个词元生成得越多,惩罚也就越大。在实践中,𝛼 的取值范围通常在0.1 到1 之间。这些重复惩罚方法不止适用于贪心搜索,对于随机采样也均适用。

1.3 随机采样改进

基于概率采样的方法会在整个词表中选择词元,这可能会导致生成不相干的词元 。为了进一步提高生成质量,可以进一步使用一些改进的采样策略,减少具有极低概率词汇对于生成结果的影响。

1.3.1 温度采样

温度采样(Temperature Sampling). 为了调节采样过程中的随机性,一种有效的方法是调整softmax 函数中的温度系数。具体来说, l = W L y L l = W^Ly_L l=WLyL称为logits,调整温度系数后的softmax 计算式如下:

其中, l j ′ l_{j'} lj 表示每个候选词元的logit,t是温度系数。具体来说,

  • 降低温度系数t会使得概率分布更加集中,从而增加了高概率词元的采样可能性,同时降低了低概率词元的采样可能;
  • 当温度系数t设置为1 时,该公式退化为标准的随机采样方法;
  • 而当t趋近于0 时,实际上等同于贪心搜索,即总是选择概率最高的词。
  • 此外,当t趋近于无穷大时,温度采样会退化为均匀采样.
    在这里插入图片描述
1.3.2 Top-𝑘 采样

Top-𝑘 采样(Top-𝑘 Sampling). 与温度采样不同,top-𝑘 采样策略是直接剔除概率较低的词元,限制模型从概率最高的前𝑘 个词元中进行采样。当采用top-3 采样策略时,模型将会从三个概率最高的词元中,基于原始概率分布进行采样。

1.3.3 Top-p 采样

Top-𝑝 采样(Top-𝑝 Sampling). 由于top-𝑘 采样策略并不考虑整体概率分布,因此固定的常数𝑘 可能无法适应不同的上下文语境。在较为确定的生成场景中,例如给定前缀为“世界最高峰是”,当𝑘 设置为大于1 的数值时,均有可能引入错误答案;而在需要多样性的场景中,例如“我最喜欢的城市是”,𝑘 设置为较小的值则会限制模型的多样化生成。为了克服上述问题,研究人员提出了top-𝑝 采样方法(又称为核采样,Nucleus Sampling)。该方法的核心思想是从一个符合特定概率条件的最小词元集合中进行采样,要求其中包含的所有词元累积概率大于或等于预设阈值𝑝。在具体的实现过程中,top-𝑝 采样首先会按照生成概率从高到低的顺序对词元进行排序,然后不断将词元添加到一个临时的集合中,直到集合的累积概率首次超过阈值𝑝. 下图中top-𝑝 采样的解码流程(𝑝 = 0.8):第一步时“coffee”和“water”的累积概率为0.681 + 0.119 = 0.8,因此只会在这两个单词中进行采样,而不会考虑“tea”。
在这里插入图片描述

1.3.4 对比解码

对比解码(Contrastive Decoding). 有研究显示,由于大模型比小模型具有更强的生成能力,因而在预测下一个词元时,大语言模型相较于小模型更倾向于为重要词元分配更高的概率。基于这个想法,对比解码通过计算一个较大的语言模型(例如GPT-2 XL)和一个较小的语言模型(例如GPT-2 small)之间的对数概率分布差值,然后基于归一化的差值分布采样下一个词元,从而有效地提升重要词元在生成过程中的影响力。为了方便读者理解,这里构造一个例子来说明对比解码的工作原理。在预测一个给定片段“李时珍是湖北人,他出生于__”的下一个词时,GPT-2 XL 有15% 的概率生成“湖北”、10% 的概率生成“明朝”,而GPT-2 small 有10% 的概率生成“湖北”、0.1% 的概率生成“明朝”,可以看到虽然GPT-2 XL 生成“湖北”的概率仍然最高,但是其生成“明朝”的概率大幅增长,对比解码可以有效利用这一现象,在解码过程中提升重要词汇的影响力。

2. 解码加速算法

由于自回归算法的序列化生成特点,使得解码算法存在效率较低的问题。在本节中,我们将首先定量分析解码算法的效率,再介绍针对性的效率优化算法。
本节将首先介绍解码的两个阶段(即全量解码和增量解码),然后对这两个阶段分别进行效率分析,从而发现解码过程中的效率瓶颈所在.
在这里插入图片描述

to be added

3. 低资源部署策略

4. 其他模型压缩方法

  • 22
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值