什么是生成文本的采样策略,如何实现?

自回归采样

LLM推理时常常使用自回归采样,其过程如下:

  1. 前缀输入到模型中,经过一次推理,将输出结果处理+softmax成概率分布,采样生成下一个token
  2. 生成的token和前缀组成新的前缀,重复1,直到生成EOS结束符或者达到最长token长度。

第一步中从概率分布中采样得到下一个token,有以下几种常见的采样方式:

  • 贪婪采样(argmax):选择概率最高的词
  • 随机采样:根据概率分布随机选择词汇,每个词被选择的概率与其在分布中的概率成比例
  • Top-k采样:只考虑概率最高的前K个词,并在这个子集上随机采样
  • Top-P采样:选择累计概率达到特定阈值p的最小词集合,并在这个集合中随机采样

Top-K

Top-K采样在概率分布中选择概率最高的K个词,对这K个词的概率重新进行概率分布,将K个词作为子集,为了维持概率分布的一致性和归一化特性,将子集重新归一化,使得K个词的概率之和为1,最后基于这个重新分布的概率,随机选择一个词作为下一个词。

Top-P

Top-K能在保持复杂度的情况下去除分布尾部的一些噪音,但其最大的问题是设定单一的K无法适用各种分布,对于左(扁平分布),右(峰值分布)两种不同的分布应用同一个K是不合理的,当k=4时,对于扁平分布在thought knew had saw中选择很合理,对于峰值分布,待选项为hot cooling warm on,其中warm on的概率值极低,没必要加入待选。
平坦的和陡峭的概率分布
受此启发,Top-P根据分布的形状灵活的设定K,Top-P从概率最高的词开始构造采样空间,知道采样空间里的所有词的概率和超过阈值 P P P

温度采样(temperature sampling)

logits:在深度学习中,模型的输出(在应用softmax之前)被称为logits,每个词的logit作为下一个词的相对得分。

在将logits传递给softmax函数之前,首先除以一个“温度”值,这个操作实际上是在调整logits的尺度。当温度值高(比如大于1),通过除以一个较大的数值,较不可能的词(高logit)的概率被提高,较可能的词(低logit)的概率被降低,logits之间的差异减小,导致softmax后的概率分布更加平坦。从而增加了文本生成的多样性和随机性;当温度值低(比如小于1),logits间的差异变大,导致softmax后的概率分布更加尖锐。这说明较可能的词(高logit)的概率更高、更加突出,从而使得文本生成更加集中于高概率的词。

概念来源:在热力学中,高温度状态下,系统的微观状态更加均匀分布,因为高能量状态(低概率)和低能量状态(高概率)之间的差异减小。相反,低温度状态下,系统更倾向于低能量(高概率)状态。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值