现象描述:从数据上来看,attention时候会跳过这部分信息依然从之前的context后进行预测然后得到predict,但是predict对于attention的贡献很小,导致模型预测predict的下一个内容还是将注意力放在前面的content中,从而导致了循环往复的预测。
原因:
- 数据偏差:大型语言模型通常是通过预训练阶段使用大量的无标签数据进行训练的。如果训练数据中含有大量的重复文本或者某些特定的句子或短语出现频率较高,模型在生成文本时就有可能倾向于复制这些常规的模式。
- 训练目标的限制:大型语言模型的训练通常是基于自监督的学习方法,通过预测下一个词或掩盖词、短语来学习语言模型。这样的训练目标可能使得模型更倾向于生成与输入相似的文本,导致复读机问题的出现。
- 缺乏多样性的训练数据:虽然大型语言模型能够处理大规模的数据,但如果训练数据中缺乏多样性的语言表达和语境,模型可能无法学习到足够的多样性和创造性,导致复读机问题的出现。
- 模型结构和参数设置:大型语言模型的结构和参数也可能对复读机问题产生影响。比如,模型的注意力机制和生成策略可能导致模型更倾向于复制输入的文本。
解决方法:
目前针对LLM重复生成的问题,主要有两种策略,一种是基于训练思想,一种是基于解码策略。
- 训练策略
整体思想就是通过构造伪数据,即短语重复、句子重复等伪数据,如短语或句子重复N遍,然后设计重复惩罚项来抑制大模型生成重复句子。引入相关的loss,如DITTO方法。重复惩罚项通过设计损失函数来达成,其中λ是惩罚因子,对不同的任务可能取不同的值,公式如下: - 基于解码的策略
基于解码策略包含诸多方法,如beam search, random search(topK, topP), 温度, ngram等。
(1) 集束搜索(beam search)针对贪心策略的改进,思想就是稍微放宽一些考察范围。即,在每一个时间步,不再只保留当前分数最高的1个输出(贪心策略),而是保留num_beams个,当num_beams=1时,集束搜索就退化成了贪心搜索。
(2) random search(topK, topP)topK即从概率最高的K个token中进行筛选,即允许其他高分tokens有机会被选中topP将可能性之和不超过特定值的top tokens列入候选名单,topP通常设置较高的值,目的是限制可能被采样的低概率token的长尾
(3) 温度T较低的温度意味着较少的随机性,温度为0将始终产生相同的输出,较高的温度意味着更多的随机性,可以帮助模型给出更有创意的输出。