DoubtLess:小模型当刹车——训练-free的推理冗余消除法

推理模型(如DeepSeek-R1、Qwen3)有一个臭名昭著的问题:过度思考。一个高中数学题,它能写3000个token的"让我想想..."。CUHK和EPFL的团队提出了一个巧妙的方法:用一个小模型当"刹车",在大模型开始废话时踩一脚。不需要训练,准确率不掉。

目录
  1. DoubtLess:小模型当刹车——训练-free的推理冗余消除法
  2. 一个日常场景:两个人讨论问题
  3. 推理模型的"过度思考"病
  4. DoubtLess的核心设计:两个"思考者"
  5. 为什么这能工作:对比解码的直觉
  6. 实验结果:31%压缩,准确率不变
  7. 最有意思的发现:被删掉的token都在答案之后
  8. 和训练型压缩的互补性
  9. 技术细节:三个关键设计
  10. 1. "在哪里作用"(Where the contrast applies)
  11. 2. "什么时候作用"(When it acts)
  12. 3. "强度选择"(Strength selection)
  13. 代码已开源
  14. 为什么这件事重要
  15. 诚实评价

DoubtLess:小模型当刹车——训练-free的推理冗余消除法

推理模型(如DeepSeek-R1、Qwen3)有一个臭名昭著的问题:过度思考。一个高中数学题,它能写3000个token的"让我想想..."。CUHK和EPFL的团队提出了一个巧妙的方法:用一个小模型当"刹车",在大模型开始废话时踩一脚。不需要训练,准确率不掉。

一个日常场景:两个人讨论问题

想象你有一个特别聪明的朋友,但他有个毛病——想问题的时候嘴停不下来。你问他"7乘8等于多少",他不会直接说56,而是说"让我想想,7乘以8,我们可以把7分解成...不对,其实更简单的方法是...等等,让我验证一下..."。

你还有一个朋友,没那么聪明但特别干脆。你问同样的问题,他直接说"56"。

DoubtLess的思路是:让干脆的朋友在旁边听着,当聪明的朋友开始绕弯子时,轻轻拉他一把。

推理模型的"过度思考"病

推理模型(reasoning models)通过长链思维(Chain-of-Thought, CoT)来解决问题。这很强大,但有个副作用:模型经常在已经得到答案之后,继续生成大量"验证性"和"反复确认"的token。

已有的解决方案各有问题:

方法问题
训练压缩需要为每个模型单独训练,成本高
固定steering vector对所有问题施加相同的压缩力度,不灵活
禁用"wait"等词太粗暴,有时候"wait"是必要的自我纠错
提前停止可能错过关键的验证步骤
这些方法的共同问题是一刀切——它们不区分"必要的思考"和"冗余的犹豫"。

DoubtLess的核心设计:两个"思考者"

DoubtLess的方法极其简洁。它用一个小模型(比如0.5B或1.5B的reasoning model)来引导大模型(比如Qwen3-32B)。具体步骤:

步骤1:小模型读取大模型到目前为止生成的CoT。

步骤2:小模型用这个CoT做两次推理:

  • 简洁思考者(brief thinker):prompt为"请简短地回答"
  • 详细思考者(verbose thinker):prompt为"请详细地回答"
步骤3:计算两个思考者的logit向量之差,乘以一个强度系数。

步骤4:把这个差值加到大模型的logits上。

就这么简单。不需要训练,不需要修改大模型的权重,不需要额外的数据。

为什么这能工作:对比解码的直觉

关键直觉是:两个思考者的"分歧"指向了"冗余方向"。

当大模型已经接近答案时,简洁思考者会直接给出答案,而详细思考者会继续展开。它们的logit差异就指向了"继续展开"的方向——也就是大模型正在犹豫的方向。

把这个差异反向加到大模型上,就是在说:"嘿,那个小模型觉得这里可以简短一点,你考虑一下。"

这和对比解码(contrastive decoding)的原理一致:用一个"较差"的模型的输出作为反例,引导主模型远离某些行为。但DoubtLess的创新在于——它不是用一个差模型做反例,而是用同一个模型在不同prompt下的两个版本的差异作为方向信号。

实验结果:31%压缩,准确率不变

在7个benchmark上测试(竞赛数学、研究生级科学、竞赛编程):

  • Qwen3-32B的CoT缩短31%,准确率不变
  • 超过5个推理时压缩基线(NoWait、DEER、ThinkBrake、ASC等)
  • 在更难的问题上压缩效果依然稳定
  • 在编码Agent场景下也有效
论文还测试了其他模型家族(不只是Qwen),效果一致。

最有意思的发现:被删掉的token都在答案之后

论文第5.1节的分析特别精彩。他们追踪了DoubtLess到底删掉了哪些token,发现:

大部分被删除的token出现在答案第一次出现之后。

这说明推理模型的"过度思考"不是在"想答案"的阶段,而是在"已经想出来了但不确定要不要相信"的阶段。模型在答案之后生成的"让我验证一下"、"等等,我需要确认"——这些才是冗余的。

更有趣的是:两个思考者在答案出现之前几乎一致,但在答案之后开始分歧。简洁思考者认为"到此为止",详细思考者认为"继续展开"。这个分歧就是DoubtLess用来引导大模型的信号。

论文还给了一个直觉性的解释:"犹豫的词语留下来了"。DoubtLess删掉的不是"wait"这种功能性词汇(它们有时候是必要的自我纠错信号),而是答案之后的冗余验证。这比简单禁用"wait"聪明得多。

和训练型压缩的互补性

论文第5.2节做了一个重要实验:DoubtLess可以和训练型压缩方法叠加使用。

比如,一个已经通过训练学会了更简短推理的模型,再用DoubtLess可以进一步压缩。这说明两者作用在"不同层面的冗余"上——训练型压缩消除的是"模型级别的冗余倾向",DoubtLess消除的是"每个具体问题上的冗余倾向"。

技术细节:三个关键设计

1. "在哪里作用"(Where the contrast applies)

DoubtLess不是在所有token上都施加对比。论文讨论了作用范围的选择——只在CoT部分施加,不影响最终答案的生成。

2. "什么时候作用"(When it acts)

不是从一开始就施加。小模型需要读取足够的上下文才能做出有意义的判断。论文讨论了启动时机的选择。

3. "强度选择"(Strength selection)

强度系数太小没效果,太大会损害准确率。论文在附录F给出了强度选择的方法论,以及小模型大小的影响。

代码已开源

和很多论文不同,DoubtLess的代码已经开源:https://github.com/leoluolol/DoubtLess

这意味着你可以直接在自己的推理模型上试用。

为什么这件事重要

推理成本是当前AI部署的最大瓶颈之一。一个reasoning model解决一个问题的成本可能是非reasoning model的10倍,主要就是因为CoT太长。

DoubtLess的价值在于: 1. 零训练成本:不需要任何额外训练,即插即用 2. 零准确率损失:在所有benchmark上准确率不变 3. 可叠加:和训练型压缩方法互补 4. 可解释:删掉的token有明确的模式(答案后的冗余验证),不是黑盒

从更宏观的角度看,DoubtLess代表了一类思路:用小模型引导大模型。这不是第一次(对比解码、CD等都有类似想法),但DoubtLess的"同一模型两个prompt版本"的设计是最简洁的之一。

诚实评价

几个局限:

1. 需要一个小模型:虽然小模型很便宜(0.5B-1.5B),但仍然是额外的推理开销。论文讨论了推理成本,小模型的前向传播确实增加了每步的开销,但总体因为CoT缩短了31%,净成本还是降低的 2. "简洁"和"verbose"的prompt选择:论文用的是简单的prompt,但更复杂的prompt是否能带来更好的引导?这个方向没有探索 3. 只在数学/科学/编程上测试:在开放式生成(如写作、对话)上的效果未知 4. 31%的压缩率:虽然显著,但和一些训练型方法(可达50%+)相比还有差距。不过DoubtLess的优势是零训练成本

总的来说,DoubtLess是一个"小而美"的工作——方法简洁、效果明确、代码开源、分析到位。它不会颠覆推理模型的训练范式,但它提供了一个实用的、即插即用的推理优化工具。


论文:DoubtLess: Training-Free Contrastive Decoding for Efficient Reasoning 作者:Minghao Luo (CUHK), Liang Chen (EPFL) 代码:github.com/leoluolol/DoubtLess

暂无表态

想参与讨论或点赞?登录后使用完整功能

讨论回复(0)

暂无回复,登录后可参与讨论
合作

智谱 GLM-5 已上线

在智谱开放平台 BigModel.cn 打造 AI 应用。新一代旗舰模型 GLM-5 在推理、代码、智能体综合能力达到开源模型 SOTA。

领取 2000万 Tokens