如何解释大模型的重复生成现象?
一般来说,条件文本过长,生成的文本过短,再加上如果使用的是greedy decoding,就很容易导致该现象。
原因也很好理解,大模型建模概率一般是一个条件概率,如下:
即,大模型通过前t-1个token作为条件,来预测第t个token的是哪一个,当你的前面的条件文本过长时,大模型的输出的几个短文本会被原始的很长的条件文本淹没,继续预测下一个token的话,在模型看起来可能条件仍然是差不多的(因为对于很长的文本来说几乎没发生变化,只新增了非常短的文本),此时如果使用greedy search,只选择概率最大的一个token,模型极大可能会将前面已经生成的短文本重新预测成概率最大的文本,以此类推,会一直重复下去。
减轻该现象的办法,可以施加一些重复惩罚,或者采用beam search、random search这类解码方式,或者在模型层面采用局部注意力,只在某段窗口内部计算注意力,但是这样容易丧失了全局注意力的优势。
蓝海大脑 京ICP备18017748号-1