
Eval bug: DRY sampling appears to have no effect
快速结论:用户在运行 llama-server 并使用 DRY 采样器时,遇到模型无限重复单词/短语的问题,即使将 dry-multiplier 调至 10 也无效。优先排查 --dry-penalty-last-n 参数设置过小(如 32),并尝试将其设置为 -1(使用全上下文长度)或较大的值(如数千 tokens)。
问题场景
用户使用 llama.cpp 的 llama-server 命令行工具(版本 6081,commit d31192b4),搭配 Qwen3 7B Q4_K_M 的 GGUF 模型(POIROT-ECE),在 Linux 系统上通过 CUDA 后端(NVIDIA GeForce RTX 4090 Laptop GPU)运行推理。启动命令中开启了 DRY 采样器(--samplers "penalties;dry;top_n_sigma;top_k;typ_p;top_p;min_p;xtc;temperature"),并设置了 --dry-base 1.75、--dry-multiplier 4、--dry-penalty-last-n 32。即使将 multiplier 提升至 10,模型仍不断重复单个词或短语。
报错原文
Fits 链接 links 链接 Fits Fits fits Fits Fit Fits _fit Fits fits Fits Fit Fits fit Fits fits Fit fits _fit Fits fits Fits Fit fits fit Fits fits Fit fits _fit Fits fits Fits Fit fits fit Fits fits Fit fits _fit Fits fits Fits Fit fits fit Fits fits Fit fits _fit Fits fits Fits Fit fits fit Fits
(输出为无限重复的单词/短语序列,无其他错误日志)
原因分析
最可能原因:--dry-penalty-last-n 32 的值设置过低(仅 32 个 tokens),导致 DRY 惩罚仅在极短的上下文窗口内生效,无法有效抑制长序列重复。根据社区建议,DRY 采样器设计上可以处理更长的上下文,建议将该参数设置为 -1(使用全上下文)或至少数千 tokens,以产生显著效果。
可能原因(参数权衡):DRY 惩罚的实际效果取决于 dry_multiplier × dry_base^(seq_len - dry_allowed_length),而不仅仅是 dry-multiplier。虽然用户 multiplier 设置较高(4~10),但 dry-base 为 1.75,且 dry-penalty-last-n 极小,可能导致整体惩罚强度不足。社区指出,multiplier 低于 0.8 时 “无效” 的说法仅适用于 base=1.75 的默认场景,通过调整 base(如 2.0~3.0)可在较低 multiplier 下获得更强惩罚。
环境排查
- 确认 llama.cpp 版本:6081(d31192b4),编译工具 GCC 15.1.1。
- 确认 CUDA 环境和显卡:NVIDIA GeForce RTX 4090 Laptop GPU。
- 确认模型类型:Qwen3 7B Q4_K_M 的 GGUF 文件(POIROT-ECE),属于 merge 模型。
- 确认启动参数中
--dry-penalty-last-n的值(当前为 32)。 - 确认
--dry-base和--dry-multiplier的组合(base=1.75, multiplier=4~10)。
解决步骤
- 调整
--dry-penalty-last-n参数:将其设置为-1(表示使用整个上下文长度)或至少数千 tokens(如--dry-penalty-last-n 8192)。这是社区反馈中最优先尝试的方案。 - 调整 DRY 参数组合:在保持或增大
dry-penalty-last-n后,可尝试降低 multiplier 并提高 base(如--dry-multiplier 0.8 --dry-base 2.0),以得到更强的整体惩罚效果。更激进的组合如--dry-multiplier 0.6 --dry-base 2.5也可在测试中尝试。 - 验证其他采样器顺序:确保
--samplers列表中 DRY 采样器的位置正确(当前为第二个,在penalties之后,top_n_sigma之前)。如果问题仍存在,可尝试将 DRY 移至更靠前或靠后的位置,但无明确证据表明此顺序有误。 - 使用默认 DRY 参数对照测试:尝试 oobabooga 的原始推荐组合:
--dry-multiplier 0.8 --dry-base 1.75(配合较大的dry-penalty-last-n),观察是否仍有重复问题。
验证方法
执行相同的启动命令(仅修改 --dry-penalty-last-n 为 -1 或较大值),并生成多个 prompt 测试输出。如果模型不再出现无限重复单个单词/短语的现象,且文本内容符合预期,则问题解决。若仍有轻微重复,进一步调整 --dry-base 和 --dry-multiplier 的组合。

![[Bug]: HEadroom guardrail compress nothing](https://www.chat-gpts.plus/wp-content/uploads/2026/07/31969-93ddb3e2-768x403.jpg)
![[Bug]: guardrail_information is null on successful requests with headroom-compression guardrail (default_on=true)](https://www.chat-gpts.plus/wp-content/uploads/2026/07/32008-51ced23e-768x403.jpg)
![[OpenAI] 昨天服务器中了挖矿病毒, cpu100% 下不去,最后让 codex 远程 ssh 上去硬刚!](https://www.chat-gpts.plus/wp-content/uploads/2026/07/ai_cover_5-114-768x403.jpg)