由于大模型是生成式的模型,有的时候会像复读机一样重复生成内容,可以分为三个级别:
1、词汇和短语重复:模型生成的文本中会出现同一个词或短语反复出现,比如同一句话在一段文字中被多次重复。
2、段落级别重复:在生成较长文本时,模型可能生成重复的句子或段落,甚至生成与前面几乎相同的内容段。
3、内容结构重复:在有结构化回答需求的情况下,模型可能多次以相似的结构回答或解释,导致输出显得冗余。
大模型重复输出可能的原因
当输入的条件文本很长,生成的文本又很少时可能出现不断重复的现象。很多大模型是自回归模型,通过前t-1个token作为条件,来预测第t个token的是哪一个,当你的前面的条件文本过长时,大模型的输出的几个短文本会被原始的很长的条件文本淹没,继续预测下一个token的话,在模型看起来可能条件仍然是差不多的,新生成的内容被忽视了,于是就重复生成内容了。
另一种说法是模型会倾向于从前面已经预测的word里面挑选最匹配的词;在翻译上,由于input和output的天然差异性,你会发现容易出现重复的都是一些复杂度perplexity比较高的文本:也就是说input的句式越不常见,出现重复的可能性越高。
外在的影响因素可以归结为下面内容:
1、输入提示设计问题
- 模糊或不明确的提示:当提示不够清晰时,模型可能会生成冗长的、相似的内容,造成重复。例如,如果提示是“告诉我关于气候变化的事情”,模型可能会提供一系列相似的信息段落。
- 缺乏上下文:如果模型在生成响应时缺乏足够的上下文,它可能无法理解你想要的信息,因此可能会重复之前提到的内容。
2、模型设置
- 温度参数过低:模型在低温度设置下(如温度接近 0)会生成保守且确定性的输出。这可能导致重复生成相似的内容。
- Top-k 或 Top-p 采样:如果这些采样策略没有设置合理,可能会导致模型只选择高概率的词汇,造成重复。
关于上面大模型超时参数的内容可以查看让大模型不乱输出的参数
3、数据问题
- 训练数据的局限性:模型是基于大量文本数据进行训练的,如果这些数据集中存在重复信息,模型可能会在生成响应时不自觉地重复这些信息。
- 上下文的重复:在交互中,如果多次提及相同的主题或问题,模型可能会基于之前的回答进行重复。
缓解大模型复读机的方法
1. 提示(Prompt)优化
提示的设计对于输出的质量至关重要。为了避免重复,您可以在提示中明确要求输出不同的信息或新的观点。
- 指定不同的角度:在提示中要求模型从不同的视角或方面进行回答。
- 提示模型生成新的信息:
- 避免泛泛的问题:提供更具体的问题能够帮助模型生成不重复的信息。
2. 调整模型参数
如果有权访问模型的参数,您可以通过调整参数来减少重复现象。
-
提高温度值:适度提高温度(如 0.7-0.9)可以增加输出的随机性,鼓励模型生成更多不同的内容。温度的设置影响到概率分布的平滑程度。低温度值(如接近0)会使得生成的文本更具确定性,更倾向于选择概率最高的单词。高温度值(如接近1或更高)则会增加随机性,使模型更有可能选择概率较低的单词,从而产生更多样化和创造性的结果。
-
使用 Top-p 采样:调整 Top-p 采样可以让模型在生成时从更多不同的词汇中进行选择,而不仅仅选择高概率的词。Top-p 参数(也称 nucleus sampling)通过设置概率阈值
p
来限制模型的选择范围,而不是只选取最高概率的词。比如,设置p=0.9
,意味着模型会从概率累计达到90%的词中随机选择下一个词,而不会只局限于最可能的那几个选项。一般来说,
p
值在0.85到0.95之间效果较佳。p=0.9
通常是一个比较平衡的设置,能兼顾多样性和连贯性。若设置 较低的 p 值(如 0.8),生成内容会更加丰富,但可能也会出现不相关或略微随机的词汇选择。较高的 p 值(接近1.0)则趋向于常规的高概率选择,生成的文本更安全和精确,但重复性可能也略高。 -
适当调整输出长度:避免设置过短的最大输出长度,确保模型有足够的空间生成完整且不重复的回答。
-
使用repetition_penalty惩罚模型重复输出:
repetition_penalty
参数的工作原理是,在生成新内容时惩罚模型重复使用之前生成过的词汇和短语。这会促使模型在生成时更加倾向使用新的词汇或表达方式。通常repetition_penalty
的值可以在1.01到2.0之间选择,值越高,惩罚越重。一般来说,像1.05这样略微的惩罚值有助于减少简单重复,同时保持生成的流畅度和逻辑性。对于更强的惩罚,可以尝试更高的值(例如1.2),但可能会影响文本的连贯性。
3. 分段提问
将问题分解为更小的子问题,逐步获取更多细节,避免模型在单一长回答中重复。
不佳的提示:
请告诉我所有关于气候变化的信息。
优化后的提问:
1. 请简述气候变化的定义及主要原因。
2. 气候变化如何影响海洋生态系统?
3. 气候变化对农业有何影响?
通过逐步提问,不仅减少了信息重复,还可以获得更结构化的内容。
4. 控制输出长度与约束
在提示中明确要求回答不要重复,并限制生成的长度。例如:
-
在提示中指定避免重复:
请描述气候变化的影响,但避免重复之前提到的内容。
-
限制输出长度:可以在某些情况下限制生成的字数,以避免长篇回答中不必要的重复。但是让大模型控制输出内容不一定灵。
在 150 字以内回答这个问题,避免冗长和重复。