跳到主内容
快讯直播
AI智模界
AI 词典

重复惩罚与频率惩罚(Repetition / Frequency Penalty)

一句话定义

重复惩罚(repetition penalty)与频率惩罚(frequency penalty)是解码(decoding)阶段的采样参数:模型每吐一个 token(词元)前,会看它在已生成的文本里出现过没有,把"出现过"当成减分项,压低它的分数,从而减少复读、打转和车轱辘话。

它们到底改了什么

生成是一个 token 一个 token 往前推的。每一步,模型先给词表里每个 token 打一个原始分(logit),归一化成概率,再抽样。惩罚做的事,就是在归一化之前动这些分数:

  • 重复惩罚:按固定比例除/乘一个系数,是乘法式惩罚。出现一次和出现十次,力度一样。
  • 频率惩罚:减去「系数 × 出现次数」,出现越多扣越狠,线性累加。
  • 存在惩罚(presence penalty):只要出现过就固定扣一笔,与次数无关。

打个比方:开选题会。重复惩罚是"这个点子提过,发言音量减半";频率惩罚是"每提一次,音量再降一档";存在惩罚是"提过就扣一次分,后面不再累积"。

参数何时扣分扣多少典型用途
重复惩罚该 token 出现过固定比例通用对话、减轻复读
频率惩罚出现过,按次数累加越多扣越多长文续写、避免用词单调
存在惩罚只要出现过固定值换角度、换话题

别和 temperature 搞混

temperature、top-p 调的是"随机程度"——敢不敢选低概率词;惩罚调的是"方向"——往没说过的地方偏。两者都作用在 logits 上,会互相放大或抵消,不同框架里应用顺序也不完全一致,具体以所用框架的官方文档为准。

还有个容易忽略的点:惩罚按 token ID 计算,模型并不懂语义。"中国"和"中""国"是不同 token,罚谁不罚谁,跟意思无关。

对实际工作的意义

好处很直接:写文案、头脑风暴、长文续写时,能明显减少"总而言之……总而言之……"、列表无限循环、同一批形容词反复出现。

代价更值得记住:

  • 常用虚词、标点、固定搭配被压,句子变得别扭;
  • 写代码时变量名、函数名、括号被改写,直接跑不通;
  • 翻译、摘要、结构化输出(比如生成 JSON)时,本该重复的字段名、引号被"改邪",输出坏掉;
  • 人名、专有名词、数字反复出现时容易被替换或吞掉。

实践建议:从很小的值起步,一次只动一个参数。很多接口的重复惩罚默认值相当于不生效,频率惩罚默认为 0,实际可用区间以官方页面为准。如果模型在复读,先检查提示词是不是含糊、有没有设好停止条件,别把惩罚当万能药。对代码、JSON、翻译这类场景,通常宁可不加。

AI 生成本文由 AI 基于公开信息自动生成,仅供参考。