大模型推理常见采样策略总结:贪心解码, Beam Search, Top-k, Top-p, Temperature等

目录

1. Beam Search(束搜索)

2. 贪心解码(Greedy Decoding)

3. Top-k Sampling

4. Top-p (Nucleus Sampling)

5. Temperature(温度)


1. Beam Search(束搜索)

Beam Search 是一种启发式图搜索算法,用于在序列预测问题中,特别是在自然语言处理中生成文本时。它扩展了贪心搜索的概念,通过保持一定数量(称为“束宽”)的最佳候选解决方案来进行搜索,然后在每个步骤中探索这些候选解的后续步骤。

实现在每一步,算法都会为每个候选序列生成所有可能的下一个步骤,并选择概率最高的前N个序列,其中N是束宽。
优点
  • 能够找到比贪心解码更优的结果。
  • 通过调整束宽,可以在解的质量与计算复杂度之间进行权衡。
缺点
  • 随着序列长度的增加,计算量呈指数级增长。
  • 有可能错过全局最优解,因为它只关注局部最优解。
2. 贪心解码(Greedy Decoding)

贪心解码是一种简单直接的解码策略,它在每一步都选择概率最高的下一个词。

实现在每一步,从模型预测的词汇分布中选择具有最高概率的词作为输出。
优点计算速度快,因为每步只选择一个最佳选项。
缺点很容易陷入局部最优解,不一定能找到全局最优解。
3. Top-k Sampling

Top-k Sampling 是一种随机采样策略,它从模型预测的词汇分布中选择概率最高的k个词,然后基于这些词的概率分布随机选择下一个词。

实现在每一步,先确定一个k值,然后从概率最高的k个词中随机选择下一个词。
优点通过引入随机性,可以避免贪心解码的局部最优问题。
缺点k的选择可能会影响生成文本的质量。
4. Top-p (Nucleus Sampling)

Top-p Sampling,也称为Nucleus Sampling,是一种更加精细的采样策略,它选择累计概率超过某个阈值p的最小集合,然后从这个集合中随机采样。

实现选择一个概率阈值p,然后从累积分布中选择一个最小的词集合,使得这个集合的累积概率至少为p,随机选择下一个词。
优点能够生成更加多样化且连贯的文本。
缺点对于p的选择敏感,可能需要根据具体应用进行调整。
5. Temperature(温度)

Temperature 是用来控制采样过程中随机性的超参数。较低的温度值会使得模型倾向于选择概率较高的词,而较高的温度值会增加低概率词被选中的机会,从而增加生成文本的多样性。

实现通过将模型的输出概率分布除以温度值,并应用Softmax函数进行归一化,来调整每个词被选中的概率。
优点通过调整温度值,可以平衡确定性和多样性之间的关系。
缺点需要仔细选择温度值,否则可能导致生成文本过于随机或过于重复。

1. Softmax函数与Temperature

在文本生成中,我们通常使用softmax函数来计算每个可能的下一个词的概率。softmax函数的表达式为:

softmax(x_i) = exp(x_i) / Σ exp(x_j)

其中,x_i是模型计算出的每个词的得分,Σ是对所有可能的词进行求和。

2. Temperature的影响

Temperature(T)的引入会改变softmax函数的表达式,变为:

softmax(x_i/T) = exp(x_i/T) / Σ exp(x_j/T)

3. Temperature的作用

可以看到,Temperature实际上是改变了每个词的得分x_i的尺度。当T>1时,得分的尺度被缩小,各个词的概率差异变小,输出更加随机。当T<1时,得分的尺度被放大,各个词的概率差异变大,输出更加确定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

samoyan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值