返回 讨论 apply CMS 文章

给 Qwen 模型加 logit 惩罚抑制“过度思考”词,准确率最高提升 12%

用 logit 惩罚压制 Qwen 的“过度思考”词,在多种量化下都能提升 MATH-500 准确率并减少推理 token。

llama.cppQwenlogit惩罚量化
成长分 / 100 68 综合收获、行动、留存与影响

为什么值得读提供了一种无需重新训练、仅靠推理时 logit 偏置就能提升模型推理准确率的低成本方法。

覆盖 BF16 到 Q2_K 多种量化,验证了该方法在不同精度下的普适性。

关键洞察
  1. 对“wait”“maybe”“perhaps”等过度思考标记施加 -2 的 logit 惩罚后,BF16 准确率从 74% 提升到 84%。
  2. 所有测试的量化版本准确率均有提升:Q8_0 76%→80%,Q4_K_M 60%→66%,Q3_K_M 52%→66%,Q2_K 12%→24%。
  3. 推理 token 数普遍减少 11%–19.4%,说明惩罚有效抑制了冗余的犹豫和回溯表达。
转成行动

深入阅读

正文与原文对照

原文保真覆盖:全文原文字符:2846

Meta 发表了一篇很棒的论文

https://arxiv.org/pdf/2606.00206

,但它没有考察 llama.cpp 中支持的各种量化。所以我在 50 道随机的 MATH-500 题目(

https://huggingface.co/datasets/HuggingFaceH4/MATH-500

)上跑了一轮,并在

https://huggingface.co/bartowski/Qwen_Qwen3.5-4B-GGUF

的各种量化版本上运行,还尝试了

--logit-bias 466-2 --logit-bias 694-2 --logit-bias 1362-2 \

--logit-bias 1412-2 --logit-bias 1921-2 --logit-bias 1990-2 \

--logit-bias 2086-2 --logit-bias 2361-2 --logit-bias 2441-2 \

--logit-bias 2493-2 --logit-bias 2892-2 --logit-bias 3222-2 \

--logit-bias 3315-2 --logit-bias 3384-2 --logit-bias 3404-2 \

--logit-bias 3482-2 --logit-bias 3655-2 --logit-bias 4213-2 \

--logit-bias 4370-2 --logit-bias 4598-2 --logit-bias 4611-2 \

--logit-bias 4808-2 --logit-bias 5752-2 --logit-bias 6970-2 \

--logit-bias 7014-2 --logit-bias 7643-2 --logit-bias 8106-2 \

--logit-bias 10179-2 --logit-bias 10451-2 --logit-bias 11746-2 \

--logit-bias 13264-2 --logit-bias 13428-2 --logit-bias 14673-2 \

--logit-bias 15029-2 --logit-bias 16036-2 --logit-bias 21143-2 \

--logit-bias 21979-2 --logit-bias 33955-2 --logit-bias 35999-2 \

--logit-bias 36563-2 --logit-bias 37201-2 --logit-bias 37781-2 \

--logit-bias 41484-2 --logit-bias 62586-2 --logit-bias 66073-2 \

--logit-bias 73071-2 --logit-bias 84485-2 --logit-bias 85152-2 \

--logit-bias 95500-2

这些对应论文中的过度思考标记:

[

" perhaps", " maybe", " wait", " Wait", " actually", " hold", " Hmm", " hmm", " Alternatively", " alternatively", " However", " however", " instead", " Instead", " But", " but", " though", " although", " yet", " rather", " unless", " otherwise", " nonetheless", " nevertheless", " regardless", " still", " anyway", " Or", " or", " either", " whether", " uncertain", " unsure", " possibly", " might", " could", " another", " different", " reconsider", " rethink", " backtrack", " retry", " revisit", " doubt", " confused", " wrong", " mistake", " error", " incorrect"

]

以下是结果,令人惊讶的是,即便是 BF16 也能带来更高的准确率。需要注意的是,这只是在一个模型上的一次测试。试试看,看看它是否有帮助!

格式

准确率:基线 → 惩罚后

推理 token 数

BF16

74% → 84%

−19.4%

Q8_0

76% → 80%

−11.0%

Q4_K_M

60% → 66%

−14.8%

Q3_K_M

52% → 66%

−17.5%

Q2_K

12% → 24%

−11.5%

阅读更多

讨论精选

brainExploded99 (165↑):如果是真的,那可就厉害了(而且能在许多基准测试上复现,并且不会在非基准任务上导致某种悄无声息的性能退化)

shaxsy (2↑):你是怎么给这些词加上惩罚的?

WithoutReason1729 (1↑):你的帖子越来越受欢迎,我们刚刚在我们的 Discord 上推荐了它! 来看看吧!

你也因为你的贡献获得了一个特殊徽章。我们感谢你的帖子!

我是一个机器人,此操作是自动执行的。