核心要点

  • 能讲成因:贪心/低温解码倾向选高概率 token,自回归正反馈把高频片段越放越大,叠加训练分布导致循环重复

  • 能用惩罚类手段:repetition penalty、frequency/presence penalty 对已出现 token 降权,no-repeat-ngram 直接禁止重复 n-gram

  • 能用采样类手段:适度提高 temperature、用 top-p(nucleus)引入随机性打破确定性循环

  • 能用提示/结构约束:在 prompt 中明确去重要求、限定输出长度或结构,从生成目标上抑制啰嗦重复

标准回答

成因

自回归模型逐 token 生成,贪心或低温解码总挑概率最高的 token;一旦进入某个高概率片段,重复出现会进一步抬高其条件概率,形成正反馈循环。训练数据分布与最大似然目标也使模型对"安全的重复"有偏好。

缓解方法

  • 惩罚类:repetition penalty 对历史已出现的 token logits 降权;frequency/presence penalty 分别按出现次数和是否出现过惩罚;no-repeat-ngram 强制禁止生成重复的 n-gram。
  • 采样类:提高 temperature 平滑分布、用 top-p 截断采样引入随机性,打破确定性循环。
  • 提示与结构约束:在 prompt 中要求不要重复、给定输出格式或长度上限,从目标层面减少冗余。

取舍

惩罚和温度过高会损害连贯性与事实性,需按任务调参;确定性任务可只加轻度 no-repeat-ngram。

常见误区

⚠️ 常见踩坑

只靠无脑调高 temperature 解决重复——温度过高会牺牲连贯与准确,引入幻觉;应优先用 repetition/no-repeat-ngram 等针对性惩罚,再小幅配合采样。

追问

追问 1repetition penalty 与 no-repeat-ngram 有什么区别?

repetition penalty 是软约束,对已出现 token 的 logits 乘以惩罚系数降低其概率,仍可能再次出现。no-repeat-ngram 是硬约束,直接把会导致重复 n-gram 的候选概率置零,彻底禁止该 n-gram 复现。前者更柔和、后者更强硬,常配合使用。

追问 2为什么贪心解码更容易重复?

贪心每步只取概率最高的 token,没有随机性,一旦模型对某片段赋予高概率就会被反复选中,且自回归正反馈不断强化,极易陷入循环。引入 top-p/温度采样能打破这种确定性,但需权衡稳定性。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。