文本生成中的采样策略

用于测试deocder解码阶段

怎么拓展句子的多样性

通过概率分布来选择每一步生成的单词,会使得系统为了达到生成结果的概率最大,就会产生很多通用一致的回复。

1.贪心搜索

每个时间步都选择分布中概率最大的作为当前解码的单词,问题在于,容易生成很多重复的句子。

2.beam search

在每个时间步保留topK的结果,最后选择一个概率最大的结果。

2.1beam search的优化

Length Normlization:在语言模型中,随着句子的越来越长,极大似然的累乘会变得越来越小。
Coverage Normalization:如果attention学习的不好,就会让模型只过多的关注某些词,然后导致重复翻译的现象,通过Coverage惩罚可以让decoder均匀的关注x中的词,防止一些token获得过多的注意力。
设置decoder最大输出长度限制

3.topK采样

4.随机采样

怎么停止解码

在测试解码的时候,不需要限定解码的长度,等模型预测出EOS这个token,解码就停止了。

文本生成领域其他的一些trick

输入不仅包括token还包括一些句子,然后query不变,key,value增加了了那些句子。

你可能感兴趣的:(NLP,NLP面经,深度学习)