跳到主内容

重复惩罚是怎么压制复读的?给旧词扣分

2026-10-18 发布 来源:我告诉你AI导航 阅读

问大模型十个问题,总有一两次它把同一句话念叨三四遍,这种复读现象在 Kimi、通义千问的早期版本里都出现过。重复惩罚是解码阶段对付它的头一道闸门,思路直白:已经出现过的词,下次挑字时先给它扣分,本文讲清这套机制的对象、力度与副作用。

问大模型十个问题,总有一两次它把同一句话念叨三四遍,这种复读现象在 Kimi、通义千问的早期版本里都出现过。重复惩罚是解码阶段对付它的头一道闸门,思路直白:已经出现过的词,下次挑字时先给它扣分,本文讲清这套机制的对象、力度与副作用。

扣分扣的是谁:对象与范围

重复惩罚的作用点在概率出炉之前。每生成一步,解码器会扫一遍已生成的词,凡是出现过的,其原始分先除以一个大于 1 的系数再参与排序。范围通常覆盖整个上下文,几千字之前的老词照样被压。它盯的是「出现过没有」,至于出现过几次,标准重复惩罚一视同仁——出现一次和出现十次扣的分一样多。想按次数递增加码,得用频率惩罚,那是另一套思路,两者常被拿来搭配使用。顺带一提,部分接口还会区分提示里的词要不要算进扣分范围,接线时留意文档说明。

对比项重复惩罚频率惩罚
判断依据词出现过没有出现的次数
扣分方式扣固定分,一次与十次一样按次数累进,念叨越多压得越狠
何时用复读的头一道闸门需要按次数递增加码时
搭配两者常一起用顽固复读时与前者搭配

力度拧多大:过紧过松都出事

力度是关键旋钮。拧得太松,复读照旧;拧得太紧,正常该重复的词也被误伤——列清单的序号、诗词的叠字、代码的变量名,全可能被逼着换写法,句子反而不通。实践中 1.1 到 1.3 是常见区间,超过 1.5 就要小心副作用。束搜索是怎么保留候选的那篇讲的解码路线可以与它叠加,聊天模板是怎么拼装对话的那篇讲的输入格式则与它互不相干——前者管输出侧挑字,后者管输入侧拼装,别混为一谈。

复读调参自查清单

  • 先看复读出现在第几轮:短复读多为参数问题,长复读常是上下文太挤
  • 惩罚从 1.1 起步,每次加 0.1 观察,一次只动一个旋钮
  • 出现名词被迫替换、句子不通,说明拧过头,回调 0.05 再试
  • 调参前先确认一件事:扣分对象里是否混进了不该压的正常词

复读从哪来:先看病根再拧旋钮

复读的根源在概率分布过尖:某个词一旦占了上风,后面每一步它的胜率都被自己抬高,路越走越窄。注意力掩码是什么那篇讲过模型每步只能看前文,这加剧了路径依赖。所以重复惩罚本质是打断自我强化的外力,治标很管用;若病根在提示写得太绕、信息不足,参数只能缓解不能根治。换句话说,它是刹车,方向盘还得靠提示来打。豆包的官方使用建议也是同一顺序:遇到复读先简化提示,再动解码参数。

关于重复惩罚的三个常问问题

  • 惩罚值越大越不会复读吗?:它压的是所有出现过的词,包括正常的重复。力度过大会逼着模型换词,产出别扭句子;先小幅上调,一见用词别扭就回调。
  • 它和频率惩罚有什么区别?:前者只看词出现过没有,扣固定分;后者按出现次数累进,念叨越多压得越狠。顽固复读适合两者搭配。
  • 为什么调了参数还是复读?:病根可能在过尖的分布或过长的上下文,参数只是外力;试试简化提示、缩短历史,再配合温度微调。

归拢成一句:重复惩罚是外力打断,病根在分布过尖,内服外治一起上才见效。再补两个实战细节:一是扣分通常只对已经出现过的候选起作用,实现多在打分层按出现次数累加惩罚,出现越多次扣得越狠;二是温度与惩罚别同时拧到头,两个旋钮都往压尖分布的方向使劲,叠加之后容易把模型逼进另一种极端——用词越来越生僻,句子反而更怪。调参一次只动一个,改完先测几轮再动下一个。遇到复读先看采样参数是否过于保守,再考虑加惩罚,顺序反了容易误判。

反馈页面信息

请描述需要更正的地方,页面标题和网址会自动附上。

也可以发邮件至 [email protected]