首页/AI/提示词工程速查/重复惩罚(frequency / presence penalty)

重复惩罚(frequency / presence penalty)

两类惩罚参数用于抑制复读:一类按出现次数累计惩罚,一类按是否出现过施加固定惩罚;创作类可用,抽取类通常保持默认。

提示词工程速查AI更新于 2026-10-13

两类重复惩罚参数

frequency_penalty 按词已经出现的次数累计惩罚,出现越多抑制越强;presence_penalty 只要该词出现过就施加固定惩罚,作用是鼓励引入新词。两者都是采样阶段的参数,与提示写法无关。抽取、代码、结构化输出场景通常保持默认 0,因为专有名词与标识符会被当成「重复」而遭到同义改写,反而制造错误。

基本信息

frequency_penalty按出现次数累加惩罚,常见范围 -2 至 2
presence_penalty词出现过即施加固定惩罚,鼓励引入新词
默认策略抽取、代码、结构化输出保持 0
作用层次采样参数,与提示词内容无关

典型使用场景

  • 长文案与闲聊:复读明显时小幅提高 presence_penalty 缓解重复句式
  • 营销文案批量生成:抑制「我们致力于」这类模板句反复出现
  • 字段抽取:保持默认值,避免标识符被同义替换
  • 代码补全:保持默认值,变量名与函数名不能被改写
  • 多轮对话:出现整段复读时先检查上下文是否重复注入,再动参数

使用场景对照

使用场景对照
闲聊 / 长文案复读明显  → presence_penalty 小幅提高(如 0.3-0.6)
代码补全、字段抽取     → 保持 0;调高会让标识符被同义改写
# 参数不是修提示问题的手段:先排查提示是否要求了逐字引用
# 调整要单变量:一次只改一个参数,跑同一批样本对比
# 记录每次调参的样本集与结果,否则变化无法归因
# 抽取场景若必须去重,用后处理做,而不是提高惩罚

参数影响对照

场景建议取值风险
抽取、结构化输出0调高会导致字段值被改写、ID 变形
代码生成与补全0标识符被同义替换,编译失败
闲聊、长文案0.3-0.6(presence)过高会出现术语漂移与生硬句式
多轮对话复读先查上下文重复注入历史比参数更常见
专有名词与固定术语同样被视为「重复」,惩罚调高会被错误替换,抽取场景要谨慎使用。
数值过高会让句式生硬、术语漂移,尤其在中文长文本里表现为用词越来越别扭,需要抽样阅读确认。

易错点

  • 在抽取与代码场景调高重复惩罚,标识符被同义改写,输出看似通顺但字段对不上
  • 把参数当提示问题的解药:复读往往源自上下文重复注入,调参数只是掩盖症状
  • 一次同时调整多个采样参数,效果无法归因,回滚时也不知道该退哪一个
  • 不同平台的取值范围与默认值不同,直接照搬别处配置会导致输出质量突降

数据来源与参考

  • OpenAI API 文档:frequency_penalty 与 presence_penalty 说明
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌