思维链的水面之下:八种推理操作在大模型内部留下的几何指纹

上周读了一篇挺合我胃口的可解释性论文。做机制可解释性的工作我看了不少,但大多数都在回答"模型在表示什么概念"——颜色、国家、真假命题。这篇问的问题更贴近推理模型的日常:当模型在写思维链的时候,它内部的激活知不知道"我现在是在拆解问题,还是在算数,还是在下结论"?

说实话我第一反应是怀疑的。思维链文本本身就有很强的词汇线索——"Therefore"基本等于 Final Answer,"10 - 3 = 7"一看就是 Arithmetic Computation。如果探针只是学会了这些词面特征,那这工作就没什么意思了。但这篇论文最让我买账的地方,就是它花了一半篇幅去堵这个漏洞,而且堵得相当严实。

核心摘要

这篇来自 KAIST 和 NAVER AI Lab 的工作(arXiv:2609.04753,将发表于 EMNLP 2026 主会)问了一个机制可解释性问题:思维链中显式可分的推理操作(提取信息、分解问题、演绎推导、数值计算等 8 类),在模型的隐藏表示空间里是否有对应的几何结构?答案是肯定的——用 LDA 探针在留出数据上区分 8 类操作,Qwen3-8B 的宏平均 AUROC 达到 0.937,AUPRC 0.742,而最强的文本基线(TF-IDF 逻辑回归)只有 0.849/0.549。可分性在中间层达到峰值,且注意掩码实验证明这种表示因果依赖前文推理上下文。这不是一篇"提出新方法刷榜"的论文,而是一篇扎实的诊断性分析——它的价值在于给"通过潜在空间干预推理过程"这条路铺了第一块砖。

论文信息

  • 标题:Beneath the Surface of Chains-of-Thought: A Mechanistic Interpretation of Reasoning Operations in LLMs
  • 作者:Seogyeong Jeong, Jaehui Hwang, Dongyoon Han, Geonmo Gu, Alice Oh, Taekyung Kim
  • 机构:KAIST、NAVER AI Lab
  • 发表:EMNLP 2026 Main Conference,2026 年 9 月 4 日提交
  • 链接:https://arxiv.org/abs/2609.04753 | 代码:https://github.com/naver-ai/beneath-cot

🎯 问题动机:推理轨迹成了优化对象,那它内部长什么样?

DeepSeek-R1 之后,训练推理模型的范式变了——大家不再只优化最终答案对不对,而是直接用 RL、搜索去优化推理轨迹本身。轨迹成了训练目标,那一个自然的问题就来了:这些优化在模型内部到底塑造了什么结构?

更具体一点。模型写 CoT 的时候,文本上能清楚分出不同的"操作":先读题提取条件,然后把问题拆成子问题,回忆公式,做推导,算数,最后给答案。这些操作在文本层面是显式的。但隐藏表示里呢?模型内部是真的"知道自己在做什么操作",还是只是在逐 token 地续写、操作边界只存在于我们读文本的幻觉里?

这个问题我之前做激活转向(activation steering)相关尝试的时候也想过——如果"当前在做演绎推理"这个状态在表示空间里根本不可分,那一切基于表示的推理过程监控、失败检测都是空中楼阁。所以这篇论文的诊断结果,对后面一整条干预路线都是前提性的。

图1:推理向量分析总览

图1:方法总览。左边是给定数学问题后 Qwen3-8B 生成的推理轨迹,同一段文本分别用 Extraction、Recall、Decomposition 三个推理向量的分数上色——可以看到不同操作对应的 token 段被各自的向量"点亮"。右边是把所有 span 投影到 Recall 分数 × Decomposition 分数的二维平面上,不同操作的 span 聚成不同的簇,三个星标是左图句子的落点。


🧠 方法核心:给思维链打操作标签,再拿 LDA 去探

八种推理操作:从 Pólya 出发的分类体系

分类体系不是拍脑袋来的,作者基于 Pólya 1945 年《How to Solve It》的四阶段解题框架构建了层次化标签。主分析用 8 种高频操作:

Pólya 阶段 推理操作 文本示例
理解问题 Extraction(提取显式信息) "题目说两个数加起来等于 10"
理解问题 Direct Mapping(自然语言→形式化) "x 大于 3 → x > 3"
制定计划 Decomposition(拆成子问题) 七边形面积 → 拆成三角形分别求
执行计划 Recall(回忆公式/定义) 需要圆面积 → 回忆 A=πr²
执行计划 Deduction(前提推结论) "x>3 且 x 为整数 → x≥4"
执行计划 Algebraic Manipulation(代数变换) "x+y=10 → y=10−x"
执行计划 Arithmetic Computation(数值计算) "10−3=7"
回顾 Final Answer(给最终结果) "因此 x=3,y=7"

标注流程有个细节值得说。他们先用 GPT-5 给切分好的 span 打标签,然后请了 7 个人(含 3 位作者)对 84 个 span 做独立标注验证:人类多数一致率 96.4%(Fleiss' κ=0.666),GPT-5 与人类多数标签一致率 76.2%(Cohen's κ=0.715)。

坦白讲,76.2% 这个数字不算惊艳——四分之一的 span 上 GPT-5 和人不一致。作者在局限性里也承认,这些标签应该被视为"文本表达的推理功能"的近似,而不是模型认知状态的真值。这个态度是对的,但读后面 0.93 的 AUROC 时,脑子里要留一根弦:标签噪声会压低估真值,所以实际的可分性可能还要更高。

探针:L2 归一化 → PCA → 监督 LDA

技术管线本身很标准,但干净利落:

  1. 对每个标注 span,提取每一层的隐藏表示,主实验用 span 的中间 token 表示 \(x_i^{(l,m)}\)
  2. L2 归一化 → PCA 降到 128 维 → 用 8 类操作标签拟合监督 LDA(最多张成 7 维判别空间,全用);
  3. 构造 one-vs-rest 操作向量:\(d_c = (\mu_c - \mu_{\neg c}) / \|\mu_c - \mu_{\neg c}\|_2\),其中 \(\mu_c\) 是该类训练 span 的均值方向;
  4. 对齐分数 \(a(i,c) = z_i^\top d_c\),按二分类算 AUROC / AUPRC。

每类最多采 300 个训练 span、60 个测试 span,无放回,划分在拟合前完成——评估协议上没什么可挑的。

实验配置:数据集用 DAPO-Math-17K 和 TheoremQA,每个模型/数据集保留 500–700 条回答正确的推理轨迹;模型覆盖 Qwen2.5-7B、Qwen3-8B、Gemma4-31B,附录里还补了 Llama-3-8B。


📊 实验结果:0.937 的 AUROC,而且真不是词汇特征

主结果:中间层可分性达到峰值

图2:各操作在峰值层的 AUROC

图2:三个模型在 8 种操作上的峰值层 one-vs-rest AUROC(95% 置信区间)。几乎所有点都在 0.85 以上,黑色菱形是宏平均。随机基线是 0.50 那条虚线——差距大到不用统计检验都看得出来。

分阶段看更清楚:

图3:按层阶段统计的平均 AUROC

图3:Embed / Early / Middle / Late 四个层阶段的平均 AUROC 曲线。三条实线对应三个模型,都从 embedding 层的约 0.65 一路爬到中间层的 0.87–0.92 峰值,到晚期层轻微回落。底部两条贴着 0.5 的虚线是随机标签对照——说明探针确实在学真实结构。

中间层峰值这个模式其实和很多既有发现一致(语义概念通常也在中层最线性可分),但在这里它有个额外含义:操作身份是一种"加工过"的抽象,不是表层特征。embedding 层几乎不可分,说明它不是词面身份直接决定的。

堵漏洞环节:不是词汇,不是位置,不是数字密度

这是全文我最喜欢的部分。作者列了三类混淆变量,逐个排除:

模型 仅位置 仅文本(TF-IDF/BoW 较强者) 隐藏表示(本文)
Qwen3-8B 0.718 / 0.279 0.849 / 0.549 0.937 / 0.742
Qwen2.5-7B 0.708 / 0.269 0.854 / 0.562 0.895 / 0.646
Gemma4-31B 0.751 / 0.311 0.802 / 0.466 0.899 / 0.641

表1(原文 Table 2):宏平均 AUROC/AUPRC 对比。隐藏表示相对最强文本基线,AUROC 高 0.041~0.097,AUPRC 高 0.084~0.193。

光这张表还不够,因为"文本基线打不过隐藏表示"也可能只是线性模型的容量问题。所以作者又做了三手更狠的:

  • 词汇匹配对比较:挑出在不同操作中出现的高频共有 token 对,比较探针到底更对齐"操作身份"还是"词汇相似"。8 个操作的中位效应全部偏向操作身份,其中 5 个置信区间不含 0。
  • 竞争性词汇子集:专挑那些含有其他操作强线索词的 span(比如一个 Deduction span 里出现了 Recall 的典型词汇),AUROC/AUPRC 仍有 0.919/0.848(Qwen3-8B)。
  • 数字密度控制:只看数字/公式 token 占比 50–75% 的 span,宏 AUROC/AUPRC 0.917/0.789。其中 Arithmetic Computation 的余量最小(AUPRC 0.510 vs 随机 0.204)——这也合理,算数操作本来就是最依赖表面数字特征的。

说实话,看到这串控制实验我才真正被说服。文本基线能到 0.849 已经说明词汇线索确实强,但隐藏表示多出来的那截,是词汇解释不了的东西。

泛化:LDA 不是必须的,跨任务也不重训

两个鲁棒性结果值得拎出来:

  • 去掉监督 LDA,只用 PCA + 类均值方向:Qwen3-8B 仍有 0.938/0.716。LDA 起的是"锐化"作用,几何结构本身在线性探针层面就已经在了。
  • 跨任务迁移(Qwen3-8B 的探针不重训):GPQA-Diamond 上 0.938/0.764,MATH-500 上 0.948/0.799。跨模型到 Llama-3-8B 也成立(0.958/0.840)。

这意味着学到的不是 DAPO-Math 这个数据集的特殊性,而是某种跨题目、跨任务都稳定的"操作几何"。

图4:Deduction 操作的二维判别投影

图4:Qwen3-8B 测试集 span 在 LDA 判别空间的二维投影,橙色点是 Deduction 操作的 span——明显向箭头方向(Deduction 方向)偏移聚团,其余颜色是其他操作。注意不同颜色之间有交叠,这对应 AUROC 在 0.9 上下而不是满分。


🔬 更深入的两刀:信号怎么分布,错误时还剩什么

Span 内部的信号结构:从 cue token 到整段分布式

一个有意思的问题是:一个 span 的"操作身份"信号,是集中在一两个关键词 token 上,还是分布在整个 span 里?作者看了 span 内 token 级对齐分数的方差随层的变化:

图5:span 内 LDA 分数方差随层变化

图5:Qwen3-8B 各操作的 span 内 LDA 分数方差随层数变化。早期层方差很高(信号集中在少数 cue token 上),向中间层递减(信号摊到整个 span),最后几层略微回升。不同颜色对应不同操作,模式定性一致。

这个曲线讲的是个很顺的故事:浅层靠词面线索定位操作,中层把操作身份"摊平"成 span 级的上下文表示。配合另一个观察——同一对操作里最高频的 10 个共有 token,在早期层表示混杂、中后层沿各自操作方向分开、最后一层又混回去——可以说操作对齐确实是上下文决定的,不是 token 自己带的。

图6:相同表面 token 在 Recall vs Final Answer 上的分离

图6:第 27 层上,Recall 与 Final Answer 两类 span 里相同的共有 token 的散点(紫色圆 vs 灰色叉)。同样的词面 token,在中后层被各自的上下文"染"成了不同的表示。对比一下 embedding 层(两个类基本重叠)就能看出这种分离是逐层长出来的。

因果验证:mask 掉前文,操作表示就塌了

相关不等于因果,所以作者做了个干脆的干预:对目标 chunk 的首 token,mask 掉它对前面 30 个 token 的注意力。

图7:前文上下文掩码干预

图7:8 种操作在干预前(蓝)后(橙)的推理向量对齐分数。几乎所有操作的分数都明显下降——Extraction 从约 4.4 掉到 3.0,Final Answer 从约 5.1 掉到 3.8。说明 chunk 起始处的操作表示因果依赖紧邻的前文推理上下文。

这个结果的信息量在于:操作表示不是 chunk 局部内容自己生成的,它是"读到前面推到哪一步了"之后才形成的。你想想看,这其实很符合人对"推理状态"的直觉——同样的 "x > 3",出现在审题阶段和出现在收尾阶段,含义完全不同。

错误执行下的部分分离:最值得玩味的一笔

最后一个实验我觉得是全文最有想象力的。拿 Qwen3-8B 答错的轨迹,区分"含事实错误的 span"和"操作匹配的无错误 span",探针只在正确轨迹上训练、不重训:

表示方式 事实错误 span 无错误 span
Mean-pooled 0.955 / 0.877 0.971 / 0.901
Middle-token 0.920 / 0.759 0.937 / 0.808

模型做错了,但它"知道"自己在做哪类操作——Deduction 做错了还是 Deduction 的表示。更有意思的是衰减不均匀:Deduction 和 Arithmetic Computation 掉得最多,Recall 几乎不受影响

也就是说,"功能身份"和"执行正确性"在表示空间里是部分分离的两根轴。这个结果对推理失败检测很有启发——你没法靠操作探针直接判断这一步算没算对,但至少可以先定位"这是哪类操作",再针对不同操作挂不同的验证器。


🤔 我的判断

亮点:问题选得准。在"轨迹级行为分析"(Thought Anchors、认知行为那套)和"表示几何"两条线之间,这篇论文恰好卡在中间——span 级的功能操作,比 backtracking 那种跨多步的轨迹模式细,比真假命题那种静态概念动态。控制实验做得密,三个混淆变量(词汇、位置、数字密度)一个都没放过,这在可解释性论文里不算常见。

问题:也有几个。第一,标签是 GPT-5 打的,人工验证只有 84 个 span,而且验证的是标签不是 span 边界——整个分析的地基其实是"文本上看似可分"这个假设。第二,全是数学/定理推理,常识推理、代码、规划任务下这套几何还在不在,完全是开放问题。第三,也是最要命的——纯诊断,零干预。操作向量学出来了,但没有用它做成任何一件事:失败检测没跑,激活转向没跑,解码控制也没跑。论文最后列的一串 future work,才是大家真正想看的东西。

我的总体判断是:这是一篇"铺路"论文,路的终点是用潜在空间信号监控和干预推理过程。0.937 的 AUROC 说明路能铺,但车还没开上去。如果你在做推理过程监控、PRM、或者 activation steering,这篇值得细读,代码也开源了;如果你期待的是"方法立刻能用",那还得等他们的下一篇。


觉得有启发的话,欢迎点赞、在看、转发。跟进最新AI前沿,关注我