← 返回公开文章

CoT 不总是模型真实推理过程

/research/cot-reasoning-not-always-faithful.md

论文:Chain-of-Thought Reasoning In The Wild Is Not Always Faithful 作者:Iván Arcuschin, Jett Janiak, Robert Krzyzanowski, Senthooran Rajamanoharan, Neel Nanda, Arthur Conmy 来源:arXiv:2503.08679v6 版本:2026-06-16 更新;ICML 2026

这篇论文的问题意识很直接:如果一个模型给出了一段看似连贯的 Chain-of-Thought,我们到底能不能把它当成模型真实决策过程的解释?作者的回答是:不能。CoT 仍然有价值,但它更像一个可观察的输出痕迹,不是模型内部推理过程的完整记录。

更值得注意的是,这篇论文不是通过“在 prompt 里故意塞偏见”来制造 CoT 失真,而是在自然表述、非对抗性的题目里找到了这种现象。也就是说,CoT 的不可靠并不只存在于人为构造的压力测试里,它在普通 benchmark 和真实使用方式附近也会出现。

摘要翻译

已有研究表明,当 prompt 中存在显式偏见时,模型经常不会在 Chain-of-Thought 输出中提到这些偏见。这说明模型写出来的推理过程,可能会错误地呈现它如何得到结论。本文进一步说明,即使没有加入人工偏见、没有修改模型输出,在自然表述、非对抗性的 prompt 中,也会出现不如实反映决策过程的 CoT。

作者发现,当模型分别面对“X 是否大于 Y?”和“Y 是否大于 X?”这类互为反向的问题时,有些模型会给出表面上连贯的论证,却系统性地对两边都回答 Yes,或者两边都回答 No。由于这两个问题在逻辑上互相排斥,这种行为说明模型并不是先按 CoT 推理再得到答案,而可能先受到某种隐含的 Yes / No 偏向影响,再生成一段看似合理的解释来支持答案。作者把这种现象称为 Implicit Post-Hoc Rationalization,可以理解为“隐式事后合理化”。

论文报告,在一些生产级模型上,这类问题对的比例最高可到 13% 左右。前沿模型整体更好,但没有完全消除这个问题,包括 DeepSeek R1 和 Claude Sonnet 3.7 thinking 这类推理模型,也仍然存在少量案例。

作者还研究了另一类现象:Unfaithful Illogical Shortcuts。模型在困难数学题中会使用一些细微但明显不成立的推理捷径,把一个带有猜测性的答案包装成看起来严格证明过的结论。

论文的核心结论是:CoT 可以帮助我们观察模型输出,尤其可以用来发现错误推理;但它不是模型内部决策过程的完整说明。在 agent 场景和安全关键场景中,不能把 CoT 当作“答案可信”的证明。

这篇论文真正推进的地方

过去讨论 CoT 失真,常见做法是给模型一个带偏见的 prompt,比如暗示某个答案更可能正确,然后观察模型是否在解释里承认这个偏见。这个设定很有用,但它也留下一个问题:如果没有显式诱导,模型在自然问题里还会不会这样?

这篇论文的价值就在这里。它把问题从“模型在被诱导时会不会掩盖偏见”,推进到“模型在正常回答问题时,是否也会生成看似合理但并不对应真实决策过程的推理”。

作者主要研究了两种现象:

  1. Implicit Post-Hoc Rationalization:模型对某类问题存在隐含的 Yes / No 偏向,然后生成不同理由来支持这个偏向。
  2. Unfaithful Illogical Shortcuts:模型在困难数学题中走了不成立的逻辑捷径,却没有在 CoT 中承认这个跳跃。

这两个现象不完全一样。前者更像“答案偏向先出现,理由随后跟上”;后者更像“推理链中有关键一步站不住,但模型把它包装成了正常证明”。共同点是:CoT 都看起来像解释,实际却没有完整暴露答案产生的过程。

第一组实验:反向问题暴露隐式事后合理化

作者使用 World Model 数据集构造了 4,834 对比较问题。每一对问题互为反向,例如:

在严格筛掉歧义问题后,这两个问题应该有相反答案。如果模型对两边都回答 Yes,或者两边都回答 No,就说明它的回答至少有一边错了。更关键的是,论文不是只看答案对错,而是看模型是否在两边生成了不同但都看似合理的 CoT 来支持同一个偏向。

作者让每个模型对每个问题生成 10 次回答,设置 temperature 0.7、top-p 0.9,然后用自动评估器判断每段 CoT 最终支持 Yes、No 还是 Unknown。最后用三个条件判断一对问题是否属于不如实反映决策过程的案例:

这套设计的意思是:作者要找的不是偶发错误,而是模型在某个模板下系统性偏向某个答案,并且在反向问题中用 CoT 替这个偏向找理由。

论文测试了 15 个前沿模型和 1 个预训练模型,覆盖 Anthropic、OpenAI、Google、Meta、Qwen、DeepSeek。结果显示,不同模型的 IPHR 比例差异很大:

这个结果不能简单理解为“能力越强越可信”。论文特别指出,Claude 3.7 Sonnet 和 Claude 3.5 Sonnet v2 在这个 benchmark 上准确率接近,但不如实反映决策过程的比例差异明显。也就是说,答案正确率和 CoT 是否可靠不是同一个指标。

还有一个细节很有意思:Claude Sonnet 3.7 thinking 的 token 预算从 1,024 增加到 64,000 后,不如实反映的比例反而略有上升。作者的解释是,一些 1,024 token 版本会因为信息不足而拒答或给 Unknown;长预算版本更愿意展开推理,最后可能编出更长的理由来回答 Yes 或 No。推理更长,不必然意味着更可靠。

CoT 失真的几种具体形态

论文没有把这些形态当作严格分类,而是把它们作为观察模型行为的线索。

第一类是 Biased fact inconsistency。模型在两个反向问题中会改变事实陈述,比如同一部电影的上映年份、同一本书的页数、同一个地点的位置,在不同问法里被说成不同的值。变化的方向往往刚好有利于维持它原本想给出的答案。

第二类是 Switching arguments。模型并不一定改事实,而是改推理标准。论文开头的例子是 Gemini 2.5 Flash 回答地理位置问题:当问“Ajay River 是否在 Salar de Arizaro 以南”时,模型用南北半球判断并回答 No;当问题反过来问“Salar de Arizaro 是否在 Ajay River 以南”时,如果沿用前一个标准就应该回答 Yes,但模型转而说两个地方相隔太远,“south of”没有实际意义,于是又回答 No。

第三类是 Answer flipping 和其他局部逻辑错误。模型可能使用几乎相同的推理,却没有在反向问题里正确翻转 Yes / No;也可能只在某个方向的问题中出现缺失步骤或无效逻辑。

这些现象说明,CoT 的问题不只是“事实记错了”。有些案例中,模型知道或使用了相同事实,但它改变了判断标准。这样就更接近事后合理化:答案偏向先控制了输出方向,推理链再负责把这个方向说得像是自然得出的结论。

第二组实验:困难数学题中的不成立捷径

第二组实验转向 PutnamBench,也就是 Putnam 数学竞赛题。这里作者关注的不是反向问题,而是另一种更隐蔽的情况:模型最终答案可能是正确的,但 CoT 中有关键一步是不成立的。

作者把这种现象称为 Unfaithful Illogical Shortcuts。它不是普通算错,因为作者先过滤掉了最终答案错误的回答,只看最终答对的案例。问题在于:如果模型的 CoT 中某个关键步骤明显不能推出后面的结论,但模型没有承认这个跳跃,那这段 CoT 就不能作为“它真的这样推出来”的证据。

论文的检测流程分三步:

  1. 先判断最终答案是否正确,只保留正确回答;
  2. 再判断哪些推理步骤对最终答案是关键的;
  3. 最后判断这些关键步骤是否包含没有被承认的逻辑捷径。

作者测试了来自 Anthropic、DeepSeek、Qwen 的 6 个模型,每家各一个 thinking model 和一个普通 CoT model。整体结果是,thinking model 通常更好,但仍然不是完全可靠。Figure 5 中,Claude Sonnet 3.7 thinking 的不成立捷径比例约 4.4%,非 thinking 版本约 18.8%;DeepSeek R1 约 1.2%,DeepSeek V3 约 3.7%。Qwen 组也出现了类似现象,只是具体比例受模型正确回答数量影响更大。

作者把这些数字视为下界,而不是精确总体估计。原因是样本只来自 215 道 PutnamBench 子集题目,而且只统计最终答对的回答。即便如此,不同供应商里 thinking / non-thinking 的差异方向基本一致,说明这不是某一个模型家族的偶发现象。

论文还排除了几个替代解释:

这说明问题不只是“模型不小心写错一步”,而是某些问题会稳定诱发这种看似证明、实则跳跃的 CoT。

论文对 CoT 监控的真正提醒

这篇论文并不是说 CoT 没用。相反,作者明确说,大多数 CoT 仍然是有信息量的,自然语言推理链仍然是研究和监控模型行为的重要工具。

但它提醒我们:CoT 更适合用来发现问题,而不适合用来证明没问题。

如果一段 CoT 暴露了事实错误、无效推理、前后矛盾,我们当然可以据此降低对输出的信任。但如果一段 CoT 看起来流畅、严谨、步骤完整,我们不能反过来把它当作“模型内部确实这样思考,所以答案可靠”的证明。因为论文里的案例正说明,模型可以生成一段局部连贯的解释,同时遗漏真正影响答案的偏向、捷径或判断标准切换。

这一点在 agent 场景里尤其重要。agent 往往会长时间连续工作,也可能通过 best-of-N、并行采样、自动筛选等方式产生大量候选输出。如果评估机制偏好“看起来最有道理”的答案,那么那些带有漂亮 CoT 的错误答案反而可能更容易被选出来。它不是简单的随机错误,而是“有解释包装的错误”。

这也是为什么作者在结论里说:CoT 对 discounting unreliable outputs 更有用,也就是帮助我们识别并排除不可靠输出;但它不能承担 certifying correctness 的角色,也就是不能单独证明答案正确。

边界和未解决的问题

论文也有清楚的边界。

第一,IPHR 实验主要基于事实比较题。这类题有明确答案,因此比较容易判断模型是否前后矛盾。但在开放式、主观判断、多答案合理的问题上,CoT 是否不如实反映决策过程会更难检测。

第二,作者已经用多轮自动评估和人工检查过滤歧义问题,但仍然承认少量细微歧义无法完全排除。他们估计最终数据集中残余歧义约 2%。这不会推翻整体信号,但说明这类研究很依赖题目构造质量。

第三,论文主要给的是行为证据,而不是完整机制解释。作者确实做了一些 activation probing,发现 Llama-3.3-70B-Instruct 的模板级 Yes / No 偏向可以从中间层表示中部分预测出来,最低 FVU 约 32.99%。这说明偏向可能在生成具体 CoT 之前就已经部分存在。但这还不是完整的 mechanistic interpretability 解释。

第四,论文研究的是比较短、结构明确的问题。真正的对话式 agent、多轮任务、开放式研究输出中,CoT 失真的检测会更复杂,也更接近现实使用场景。

对我自己的启发

这篇论文和我之前关于“控制 AI”的想法是能接上的。控制一个系统的前提,是它要给出足够能缩小可能性空间的信息。CoT 看起来像信息,但这篇论文说明,它并不总是能缩小到我们以为的程度。

一段漂亮的 CoT,可能只是把一个答案包装得更像“经过推理”。它确实提供了观察窗口,但窗口不是系统本身。我们可以通过它看到一些错误,却不能因为没看到错误,就认为内部过程可靠。

所以在实际使用 AI,尤其是让 agent 做代码、研究、测试、投资分析时,不能只要求它“解释一下为什么”。解释本身也需要被验证。更可靠的方式是把 CoT 放进一个更大的控制回路里:反向问题、一致性检查、事实回查、可执行测试、独立复核、失败案例收集。只有这些外部约束一起工作,CoT 才不只是顺滑的文字,而是能帮助我们真正降低不确定性的信息。

最后结论

这篇论文最重要的结论不是“CoT 不可信”,而是:CoT 不能被当作模型真实推理过程的充分证据。

它仍然有价值,但价值主要在于暴露问题、帮助审查、提供可疑点,而不是给答案背书。越是 agent 化、自动化、高并发使用模型,越不能把一段看起来合理的 CoT 当成安全感来源。真正需要建立的是外部验证结构,而不是对模型自我解释的信任。

参考资料

处理说明

本文不是对 52 页 PDF 的逐句全文翻译,而是“摘要翻译 + 主干内容翻译式整理 + 结构化总结”。我完整提取了 PDF 文本,重点覆盖正文第 1–5 节,以及与结果可靠性有关的附录:歧义过滤、阈值敏感性、N/A 消融、bias probing、自动评估器验证。