DoubtLess:免训练对比解码,让推理模型少想多对

DoubtLess 用免训练的对比解码引导大模型生成更简洁的思维链,缩短 31% 且精度不变。
推理模型的长链式思维虽然提升了准确率,却带来大量冗余 token 和部署成本。现有压缩方案要么需要逐模型训练,要么以牺牲精度为代价。DoubtLess 提出一种免训练的对比解码方法:用一个辅助小模型以「简洁」和「冗长」两种提示分别读取大模型已生成的 CoT,将两次 logit 之差作为方向性引导加到主模型解码中。在七个基准上,Qwen3-32B 的 CoT 长度缩短 31% 而准确率不变,优于五种推理时基线;在自调试编程 agent 中每轮思考 token 减少 20%。行为分析显示,节省主要来自正确答案首次出现之后,方法有效抑制了重复检查,且可跨模型家族复用。
推理模型凭借长链式思维(CoT)在数学、科学和编程任务上表现优异,但代价是生成大量冗余 token。一个 32B 模型在解决一道竞赛题时,可能花掉两倍于必要的思考时间——反复检查、自我怀疑、来回验证。现有缩短 CoT 的方案要么需要为每个模型单独训练,要么在隐藏状态上叠加固定的引导向量,要么用「禁止说 wait」这类粗暴的解码启发式,往往以牺牲准确率为代价。
最近一项名为 DoubtLess 的工作提出了一种免训练的对比解码方法:用一个小推理模型引导大模型走向简洁,且不损失精度。

DoubtLess 怎么工作
核心机制出奇地简单。让一个小推理模型读取大模型到目前为止生成的 CoT 内容,读两遍:
- 简洁思考者(brief thinker):被提示用简短方式推理
- 冗长思考者(verbose thinker):被提示用啰嗦方式推理
两个提示下产生的 logit 向量之差,乘以一个强度系数后,加到主模型每一步解码的 logits 上。直觉上,这个差值捕获了「简洁」与「冗长」之间的方向,把大模型的生成往简洁一侧推。整个过程不需要任何训练,也不需要修改模型权重。
与「禁止说 wait」这类方法相比,DoubtLess 的优势在于它是连续的、方向性的引导,而非硬性切断某些 token。模型仍然可以自由表达,只是整体倾向更精炼的推理路径。
对比解码(Contrastive Decoding) 是这里的关键技术基础。它的核心思想是:同时运行一个「强」模型和一个「弱」模型(或同一模型在不同提示下的两种行为),将两者输出的 logit(即词表上每个 token 未归一化的打分)相减,从而放大强模型相对于弱模型的独特倾向。在 DoubtLess 中,被对比的不是强弱模型,而是同一个辅助小模型在两种提示下的行为——简洁思考者与冗长思考者。这样一来,logit 差值所携带的信号是纯粹的风格/长度方向,而非能力差异。对比解码之所以有效,是因为模型的输出分布可以近似看作「基础倾向」与「提示诱导偏移」的叠加,相减即可抵消共有的基础倾向,只保留你想要的差异维度。
实测效果:31% 缩短,精度不变
论文在七个基准上验证了方法,覆盖竞赛数学、研究生级别科学和竞技编程。以 Qwen3-32B 为例:
- CoT 长度缩短 31%,准确率保持不变
- 优于五种推理时基线方法
- 在自调试编程 agent 场景中,每轮思考 token 减少 20%,任务表现不变
- 可泛化到另外两个模型家族,同样不损失精度
- 与基于训练的压缩方法结合时,能进一步缩短已经过简洁性训练的模型的 CoT
这些结果说明,DoubtLess 并非依赖特定模型架构的技巧,而是一种可迁移的解码策略。
自调试编程 agent 指的是让模型在生成代码后自行运行、观察报错或测试失败,再根据反馈修正代码的智能体循环。每一轮「生成—执行—修正」都是一次完整的推理调用,其中模型会输出一段 CoT 来规划修改策略。由于这类任务往往需要多轮迭代,单轮 CoT 的精简会随轮数线性放大,因此即便每轮只减少 20% 的思考 token,端到端的总 token 消耗和延迟下降会相当可观。这也是 DoubtLess 在这类场景中特别有吸引力的原因:它不是一次性节省,而是在循环中被反复放大。
为什么有效:减少重复检查
消融实验和行为分析揭示了一个关键模式:DoubtLess 节省的 token 主要来自正确答案首次出现之后。
推理模型的一个典型问题是「已经想对了却停不下来」——继续反复验证、换角度检查、自我质疑。DoubtLess 通过简洁方向的引导,抑制了这种事后冗余,而对答案首次出现之前的探索过程影响较小。这也解释了为什么精度能够保持:模型并没有被剥夺思考空间,只是不再过度纠结。
推理模型「已经想对了却停不下来」的现象,与强化学习训练中的奖励设计密切相关。当模型被奖励「最终答对」时,它会学到一种保守策略:多验证几遍以降低出错概率,即使答案早已确定。这种行为在训练分布内是无害甚至有益的,但在推理时就成了纯粹的浪费。从机制上看,这类似于模型内部存在一个「不确定性阈值」——它无法可靠地判断自己是否已经足够确定,于是倾向于继续检查。DoubtLess 的简洁方向引导,本质上是在解码时人为压低「继续检查」这一行为的概率,而不触碰模型对问题本身的求解能力,因此能在不损失精度的前提下削减尾部冗余。
对推理效率竞赛的意义
推理模型的效率问题正在成为部署瓶颈。更短的 CoT 意味着更低的推理成本、更快的响应速度,以及在同等算力下服务更多请求。
DoubtLess 的价值在于它的零训练成本和即插即用特性。团队不需要为每个新模型重新训练压缩策略,也不需要手动调参禁止特定词汇。一个辅助小模型加上对比解码逻辑,就能在多个模型家族上复用。
当然,方法也有其边界:它依赖一个能理解推理过程的小模型作为「引导者」,且强度系数需要针对场景调节。论文代码已开源于 GitHub,为后续研究和工程落地提供了基础。
在推理模型越来越大的趋势下,如何让它们「想得更少、答得更准」,DoubtLess 提供了一个值得关注的免训练思路。
相关推荐

uGAP:统一100+非洲地理数据集的AI平台
uGAP是开普敦大学团队开发的非洲地理空间AI平台,统一120余个非洲数据集并提供Python SDK,支持数据发现、处理与模型训练一站式工作流,已用于气旋洪水制图等实战场景。

Cursor能控制你的电脑了:AI代理可驱动桌面应用测试
Cursor 新增桌面控制能力,AI 代理可驱动 iOS 模拟器等桌面应用测试自己构建的功能。本文分析这一更新对开发工作流的影响、技术实现可能路径及可靠性考量。

Vibecoding自研推理引擎:理想丰满,现实骨感
Reddit开发者分享Vibecoding自研推理引擎的真实经历:用WebGL2和GLSL在浏览器跑GGUF Q4模型,却陷入tokenizer调试地狱。本文分析浏览器端LLM推理的工程难点,以及为何直接clone llama.cpp是更理性的选择。