全面了解Beam Search 2:一些改进点

本文探讨了基础版Beam Search在生成文本时存在的空洞、重复和矛盾问题,并引用论文《The Curious Case of Neural Text Degeneration》提出改进策略。这些策略包括随机采样、top-k采样、核采样(Nucleus sampling)以及惩罚重复。文章还介绍了HuggingFace库中实现的这些采样方法的代码示例。
摘要由CSDN通过智能技术生成

在上一篇文章中我们介绍了基础版的beam search,这篇文章是对它的一个扩展,可以在模型不改的情况下获得更好的生成结果。今天的介绍围绕的也是一篇蛮新的论文,《The Curious Case of Neural Text Degeneration》,根据这篇论文的版面内容,它应该已经被ICLR 2020接收了。

在这里插入图片描述
论文截图

Beam Search的问题

先解释以下什么要对Beam Search进行改进。因为Beam Search虽然比贪心有所改进,但还是会生成出空洞、重复、前后矛盾的文本。如果你有文本生成经验,一定对这些现象并不陌生。在语言模型还不像如今的BERT、GPT这么厉害的时候,这种现象更加明显。

没有经验也没关系,我们来看一个论文里面的例子。输入模型的引文(context)

"The study, published in the Proceedings of the They were cattle called Bolivian Cavalleros; they live in a National Academy of Sciences of the United States of remote desert uninterrupted by town, and they speak huge, America (PNAS), was conducted by researchers from the
beautiful, paradisiacal Bolivian linguistic thing. They say,
Universidad Nacional Autónoma de México (UNAM) and

GPT-2模型, Beam Search, num_beams=32的生成结果

‘Lunch, marge.’ They don’t tell what the lunch is," director
the Universidad Nacional Autónoma de México
Professor Chuperas Omwell told Sky News. "They’ve only
(UNAM/Universidad Nacional Autónoma de
been talking to scientists, like we’re being interviewed by TV
México/Universidad Nacional Autónoma de
reporters. We don’t even stick around to be interviewed by
México/Universidad Nacional Autónoma de
TV reporters. Maybe that’s how they figured out that they’re
México/Universidad Nacional Autónoma de …”

可以发现即使是如今最顶级的语言模型加上足够长的引文输入,还是无法得到高质量的生成结果。

论文认为这种问题是由于这种试图最大化序列条件概率的解码策略从根上就有问题。他对比了给定同样引文的情况下人类续写和机器生成的词用语言模型计算出来的概率。如下图所示,人类选择的词(橙线)的概率并不是像机器选择的(蓝线)那样总是那些条件概率最大的词。从生成的结果也可以看出,机器生成的结果有大量重复。

生成文本对比
生成文本对比

解决对策

人们其实尝试了各种办法对Beam Search进行改进,其实都很好理解,这篇论文总结的也比较到位。

随机采样

第一种方法是用**随机采样(sampling)**代替取概率最大的词。采样的依据就是解码器输出的词典中每个词的概率分布。相比于按概率“掐尖”,这样会增大所选词的范围,引入更多的随机性。这个方法其实正是我们之前解读过的谷歌开放式聊天机器人Meena采用的方式。当时那篇论文的结论就是这种随机采样的方法远好于Beam Search。但这其实也是有条件的,随机采样容易产生前后不一致的问题。而在开放闲聊领域,生成文本的 长度都比较短 ,这种问题就被自然的淡化了。

采样的时候有一个可以控制的超参数,称为温度(temperature, T T T)。解码器的输出层后面通常会跟一个softmax函数来将输出概率归一化,通过改变 T T T可以控制概率的形貌。softmax的公式如下,当 T T T大的时候,概率分布趋向平均,随机性增大;当 T T T小的时候,概率密度趋向于集中,即强者俞强,随机性降低,会更多地采样出“放之四海而皆准”的词汇。

p i = exp ⁡ ( y i / T ) ∑ exp ⁡ ( y i / T ) p_i=\frac{\exp(y_i/T)}{\sum \exp(y_i/T)} pi=exp(yi

  • 2
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值