拆解 CoT 的内部几何:8 类推理操作在隐藏表征里长什么样

Figure 1: ref-001 的方法学总览

图注:左右双面板。左面板是一道数学题和模型生成的链式思考(CoT)文本,token 级别用 reasoning-vector alignment 颜色高亮(暖色代表与某一操作方向对齐较强)。右面板把 span 表征投影到一个二维平面上,x 轴 = Decomposition operation vector,y 轴 = 移除 d_c 投影后的残差主成分;红点沿 Decomposition 轴聚类,绿点沿 Recall 轴聚类,其它操作居中。这张图同时定义"reasoning vector"和"separability"两个核心概念。

如果让一个大语言模型做一道数学题,它往往不会只吐出答案。它会先说一句"已知两边之和为 10",再写"两边之差为 2",再联立求解。这段文字里其实嵌着好几种不同性质的推理步骤:有的是把题目里的数字抽出来(Extraction),有的是从已知推出新约束(Deduction),有的是直接套公式做数值计算(Arithmetic computation)。

2022 年 Wei 等人证明只要在 prompt 里给几个"⟨输入, 链式思考, 输出⟩"三元组的示例,大模型就能在文本上自然涌现出这种多步推理链,从此 CoT 成为现代推理大模型的标配 Wei et al. 2022。但一个悬而未决的问题是:**这些写在文本上的"操作",在大模型内部到底有没有对应的几何结构?**换句话说,模型写到 Decomposition 这一行时,它的隐藏状态向量是否真的会"挪到"一个跟 Recall 不同的方向上去?

arXiv:2609.04753《Beneath the Surface of Chains-of-Thought》这篇论文就把这个问题正面提出来,并给出了一整套可复现的实验答案:8 类推理操作在 Qwen3-8B、Qwen2.5-7B、Gemma4-31B 三个推理大模型的隐藏表征里高度可分,而且这种可分不是词面或位置造成的假象;更进一步,遮蔽掉上文推理上下文后,下一个 chunk 起点处的"操作对齐表征"会因果性崩塌 Beneath the Surface of Chains-of-Thought。

下面我们就顺着论文的论证顺序,把这套"操作几何"从概念到证据完整走一遍。

一、从 Pólya 四阶段到 8 类操作:分析单元是怎么被造出来的

要让"操作"成为一个可量化的分析单元,第一步是把它定义出来。论文没有凭空造一个分类体系,而是从数学教育家 Pólya 的"解题四阶段"出发,把它细化:

  • 理解问题:把题目里的自然语言/数字抽成可操作的形式。
  • 规划求解:把问题拆成子任务。
  • 执行计划:调公式、做推导、做数值计算。
  • 回看与最终答案:综合前面所有步骤,给出结论。

把每个阶段再切一刀,得到 8 个出现频率最高的推理操作:

Pólya 阶段操作名文本示例
理解问题Extraction"两个数之和为 10"
理解问题Direct mapping"x > 3"(从自然语言转符号)
规划求解Decomposition"先求正七边形面积 → 切成三角形 → 分别求"
执行计划Recall"圆面积公式 A = πr²"
执行计划Deduction"x > 3 且为整数 → x ≥ 4"
执行计划Algebraic manipulation"x + y = 10 → y = 10 − x"
执行计划Arithmetic computation"10 − 3 = 7"
回看Final answer"因此 x = 3,y = 7"

怎么把这些操作标到 CoT 文本上?论文的做法是让 GPT-5 在每个模型生成的 500–700 条正确推理 trace 上自动标出 span(即一段连续子序列)的起止位置和操作类别,每条 trace 被切成 (起始 token, 结束 token, 操作标签) 三元组 Beneath the Surface of Chains-of-Thought。超过 50 token 的长 span 截取以最高熵 token 为中心的 50 token 窗口,超过 300 token 的整段丢弃,避免单个 span 跨度过大。

标注可靠性必须心里有数。在 84-span 子集上,共 7 位标注者(含 3 位作者)每人独立标注,每个 span 由 3 位标注者完成,81/84(96.4%)达到多数一致(Fleiss κ = 0.666);GPT-5 与人类多数标签的一致率为 76.2%(Cohen's κ = 0.715)。8 类随机猜测基线是 12.5%,所以这个一致率远高于随机,但单 span 噪声不低。

一个具体例子:模型生成的某条 trace 里,"将原式两边乘以 2"被标为 Algebraic manipulation,"得到 2x + 4 = 10"被标为 Arithmetic computation 之前的 Deduction;这种切分不是天然唯一的,标注噪声就来自这里。

到这里我们手上就有了"分析单元"——一段被打上 8 类之一标签的文本片段。下一步要做的是去看这些片段对应的隐藏表征向量,是不是真的按标签分到了 8 个不同的方向去。

二、用 LDA + PCA 把 8 类操作"投影"到隐藏空间里

拿到带标签的 span 之后,下一步是在 hidden state 上做探针(probing),看 8 类操作的向量能不能被线性分开。论文给出的流水线分四步,必须按顺序理解:

第一步:L2 归一化。每个 span 取其在模型某层 ℓ 的隐藏表征向量 z,先除以它的 L2 范数,把它压到单位球面上。这样做的目的是让后续的距离比较只比"方向"不比"模长"。模长本身往往跟"模型对当前 token 有多自信"耦合,会污染类别信号。

第二步:PCA(128) 降维。归一化后的向量先经过主成分分析压到 128 维。这一步去掉了高维隐藏空间里的噪声方向,保留主要方差。论文没有解释为什么是 128 而不是 64 或 256,但从后续报告的结果看这个选择是稳定的。

第三步:有监督 LDA。把降维后的向量投到一个 C−1 = 7 维子空间里,C = 8 是操作类别数。LDA 的目标是让 8 类之间的方差尽量大、每类内部方差尽量小。从几何上看,LDA 给出的就是"最能区分这 8 个操作"的 7 个正交方向。

第四步:one-vs-rest operation vector。对每类 c,计算它的类均值 μ_c 和除它之外所有类的合并均值 μ_¬c,然后取方向:

$$d_c = \frac{\mu_c - \mu_{\neg c}}{|\mu_c - \mu_{\neg c}|_2}$$

这个单位向量 d_c 就是"操作 c 在隐藏空间里的方向"。任何一段 span 表征 z_i 在 c 这个操作上的对齐分数定义为 a(i, c) = z_i ⊤ d_c。

为什么 LDA + one-vs-rest 这种线性探针是合理的?这背后有一层理论合法性。arXiv:2403.03867 证明了一件不那么显然的事:在 next-token prediction 的训练目标下,softmax + cross-entropy + gradient descent 的隐式偏置会自然把概念编码到线性方向上 Jiang et al. 2024. 该论文把 next-token prediction 抽象成一个 latent conditional model:上下文 X 先映到一组核心概念 C,再补全剩余未知位,最后映回下一 token Y;论文证明两个定理保证概念编码方向会自然线性化。

latent conditional model

图注:latent conditional model 流程图。X 是上下文(如"The ruler of a kingdom is a"),红色虚线框是概念空间 𝒞,里面有三个概念节点 C₁、C₂、C₃;蓝色虚线子框 core(x) 覆盖 C₁、C₂(由 X 决定的已知位)。X 与 core(x) 之间是双向确定性映射 h_x,Y 与 (C₁, C₂, C₃) 之间是双向映射 h_y。core(x) → C₃ 是一条带条件概率 p(·|c_core(x)) 的虚线箭头,代表 C₃ = ?k 由上下文决定是 male("king")还是 female("queen")。这张图给"为什么 LDA 在 hidden state 上能找出线性方向是合法的"提供了形式化背景。

有了这套流水线,论文就可以问一个干净的几何问题了:8 个 d_c 之间两两正交吗?每类内部的 span 在自己的 d_c 上投影大吗?

三、跨模型一致:三个推理 LLM 都看到了高 separability

答案出乎意料地干净。

Figure 3 panel A: 跨模型 peak-layer one-vs-rest AUROC

图注:8 个操作 × 3 个模型的 peak-layer one-vs-rest AUROC 分组柱状图(Qwen3-8B / Qwen2.5-7B / Gemma4-31B),带 95% CI 误差棒。所有柱子都明显高于 0.5 随机基线,多数落在 0.85 以上。这张图不含 layer 位置信息,"peak 在中层"这个细节来自原论文 Figure 3 panel B。

论文报告:Qwen3-8B、Qwen2.5-7B、Gemma4-31B 三个不同系列的推理大模型,每个都在 8 个操作上达到了很高的 peak-layer one-vs-rest AUROC,且 separability 在中层最强 Beneath the Surface of Chains-of-Thought。三个模型不只是同家族(Qwen + Qwen),还跨到了 Gemma4 这种不同架构路线,结果一致。

"peak 在中层"是一个值得记住的细节。Transformer 通常是早期层处理表层词汇、中层处理句法和语义、末层处理任务相关决策。这里的发现意味着:8 类推理操作的可分信号不是在"做完决定"的最后一层,而是在中间层就浮现了,探针最容易在中层读出操作标签。需要点破的是,AUROC 高只是说"线性方向在中层最容易区分操作",并不证明模型内部存在一个显式的"我现在在做 Deduction"的状态或专门负责某种操作的电路;可分信号来自探针的视角,不等于模型自己"知道"自己在做什么。

到这里,论文立住了第一个事实:8 类操作在隐藏表征里几何可分,且跨模型一致。

四、这不会只是词面/位置造成的假象吧?五重控制

上一节留下一个尖锐的问题:Decomposition 操作对应的 span 里经常出现"first / then / next / therefore"这种词。会不会模型只是把高频词的位置记下来,根本没学操作本身?这是一个合理的怀疑,因为"词面混淆"在 NLP 探针研究里是个经典坑。

论文的回应是 5 重 lexical / position control:

  • text-only baseline:用 bag-of-words 或 TF-IDF 加 logistic regression,从文本表面预测操作标签。
  • position-only baseline:只用 span 在 trace 里的位置预测。
  • Lexically matched pairs:把两个不同操作的 span 配上相似的词面,看探针是否仍能区分。
  • Competing-vocabulary subset:训练时只让探针看到其它操作的词汇子集。
  • Digit / formula density 控制:选数字和公式密度匹配的不同操作 span 比较。

跨三个模型的结果如下(hidden-state 探针 vs text-only vs position-only,AUROC / AUPRC 两个指标,越高越好):

模型hidden-statetext-onlyposition-onlyhidden 比 text-only 高
Qwen3-8B0.937 / 0.7420.849 / 0.5490.718 / 0.279+0.088 / +0.193
Qwen2.5-7B0.895 / 0.6460.854 / 0.5620.708 / 0.269+0.041 / +0.084
Gemma4-31B0.899 / 0.6410.802 / 0.4660.751 / 0.311+0.097 / +0.175

三行三个模型的 hidden-state 探针都同时击败 text-only 和 position-only 基线。提升幅度在 +0.041 到 +0.097 AUROC、+0.084 到 +0.193 AUPRC 之间 Beneath the Surface of Chains-of-Thought. Lexically matched pairs 和 competing-vocabulary 子集的结果指向同一方向:在严格控制词面之后,隐藏表征仍然能区分操作。

这里有一个值得点破的细节:"词面不能完全解释"不等于"词面完全没有用"。text-only baseline 在 Qwen3-8B 上也能拿到 0.849 的 AUROC,说明词面信号确实存在且可观;隐藏表征把它再往上推了 0.088 个 AUROC,说明 hidden state 含有 text-only 基线未捕捉到的操作相关信号。

到这里,第二块事实立住了:可分性不是词面或位置的表层 artifact。

五、因果干预:遮蔽上文,下一块的"操作表征"会塌吗?

到了这一步,我们有了"相关性的几何结构"。但要把它从相关升级为因果,需要做白盒干预:人为破坏输入,看表征是否真的依赖被破坏的部分。

论文的干预手段是 attention-masking。选一个 span 的起点 token(chunk-start),把它的 attention 向"前 30 个 token"的连接全部置零,看 chunk-start 处那个 token 的 operation-alignment score a(i, c) 会怎么变。

直觉是:如果 chunk 起点处的"操作对齐表征"真的依赖上文推理上下文,那么上文被 mask 之后,这个表征应该会塌。

Figure 7: preceding-token masking 的 Δ

图注:Qwen3-8B 上 8 个操作的 target operation-alignment score Δ(after − before,after = 遮蔽前 30 token,before = 基线 attention)。所有操作的 Δ 都是负的,说明被遮蔽的上文确实在为 chunk 起点提供 operation-aligned 的表征。论文自己警告不要直接把 preceding-token masking 的量级与 Appendix B.1 的 preceding-chunk / random-chunk masking 量级比较,因为 masked-span 长度和 eligible samples 不同。

8 个操作的 Δ 全部为负,没有例外 Beneath the Surface of Chains-of-Thought. 这说明 chunk 起点的"操作对齐表征"确实因果性依赖上文的推理上下文。论文还做了两个 robustness check:遮蔽整个 preceding annotated chunk(Appendix B.1)和随机等长 chunk,得到一致的崩塌方向,只是量级不可直接比较(因为 mask 长度不同)。

这是一条白盒因果链:人为切断注意力 → 表征几何塌陷 → 因果依赖存在。

同一类问题可以用完全不同的角度回答。arXiv:2506.19143《Thought Anchors》这篇就用了黑盒反事实:对 trace 里每一句话 S_i,分别在"包含 S_i"和"不包含 S_i"两种条件下各采样 100 次 rollout,看最终答案分布的 KL 散度有多大 Bogdan et al. 2025. 这种方法不读 hidden state,只看输出分布的偏移。结果发现真正重要的句子集中在 plan generation、uncertainty management(含 "Wait…" 类的回溯)、self checking 这几类。

Thought Anchors overview

图注:三联图。Panel A 是带句类标签的 worked-example CoT(PG = plan generation,UM = uncertainty management,FR = fact retrieval,AC = active computation,SC = self checking,PS = problem setup,FAE = final answer emission),两句被圈出放大标记为 thought anchor。Panel B 是三个方法图标:black-box resampling、receiver heads、attention suppression。Panel C 是以句子为节点的 DAG,节点大小表示重要度,灰色虚线箭头表示因果连接。这张图给出的是"句子级因果 attribution"与 ref-001"表征级因果干预"的平行视角。

虽然 ref-001 在 span 级别的白盒 attention-masking 和 ref-002 在句子级别的黑盒 resampling 用了完全不同的工具,但两者收敛到同一类直觉:不是 trace 里的每一步都同等重要。前者证明的是"操作几何结构依赖上文",后者证明的是"答案分布的偏移主要来自少数关键句子"。两者都提示 CoT 上下文会影响后续计算或输出,但回答的是不同层级的问题,不能互相验证。 DAPO

到这里,第三块事实立住了:操作几何结构不只是相关的,它在白盒干预下会因果性崩塌。

六、错误推理下几何结构保留但弱化:边界在哪?

最后一块拼图是"这套几何结构有多稳"。论文做了一个看似反直觉的实验:在同一个模型(Qwen3-8B)做错的 trace 上,复用只在正确 trace 上训练过的探针,看它还能不能分辨操作。

直觉上可能会想:模型做错了,表征肯定乱掉,几何结构应该消失。事实是它没消失,只是变弱了一点:

探针类型factual-error span同一 trace 内非错误 span
mean-pooled0.955 / 0.8770.971 / 0.901
middle-token0.920 / 0.7590.937 / 0.808

错误推理下的 AUROC/AUPRC 仍然远高于 0.5 随机基线,跟正确推理的差距只有 1.5–3 个百分点 Beneath the Surface of Chains-of-Thought. 更值得关注的是衰减是操作特异性的:Deduction(演绎推导)和 Arithmetic Computation(数值计算)衰减最大,Recall(调公式/调事实)几乎不受影响。

这暗示了一个有意思的层级:事实性操作(Recall)的几何比推理性操作(Deduction、Arithmetic)更稳。论文没有给出更深解释,只把这个观察留给后续工作。一个可能的解读:调公式本质上是"把外部知识索引进来",跟最终答案对错关系不大;但演绎和数值计算每一步都建立在前面结果之上,一步错步步错,几何自然会跟着飘。

到这里第四块事实立住了:操作几何在错误推理下保留但弱化,且衰减是操作特异性的。

七、它打开了什么、它的边界在哪

把四块事实拼在一起,这篇论文的核心主张可以一句话概括:语言模型在隐藏表征里维持了与语言推理表达对应的几何结构。具体到证据:

  • 8 类操作在三个推理 LLM 的中层隐藏空间里几何可分(跨 Qwen3-8B / Qwen2.5-7B / Gemma4-31B 一致)。
  • 这种可分不能被词面或位置混淆解释(hidden-state 比 text-only 高 +0.041 到 +0.097 AUROC)。
  • 这种可分在白盒 attention-masking 因果干预下方向一致地崩塌(preceding-30-token masking 在所有 8 个操作上一致拉低 chunk 起点处的 target operation-alignment score;附录 B.2 报告 reasoning probe aggregate Δ̄ = −0.4356, p < 0.0001,显著下降的具体操作包括 Arithmetic Computation、Extraction、Final Answer、Recall、Direct Mapping)。
  • 在错误推理下结构保留但弱化,且 Deduction / Arithmetic 衰减最大、Recall 几乎不受影响。

这套工作的意义在于,它第一次把"推理文本层面"对应到"隐藏表征几何层面",给后续做 latent space intervention(潜在空间干预)和 decoding-time control(解码时控制)留了清晰的接口。如果操作真的在线性方向上编码,那么"把 d_Deduction 加到当前表征上"这种几何动作,可能真的能让模型切换推理模式。这正是论文 Section 6 limitation 里明确点出的未来工作方向。

边界也必须说清楚。论文的结论只在以下范围内成立:

  1. 操作标签来自 GPT-5 自动标注,人类验证只覆盖 84-span 子集且只标操作不标 span 边界。单 span 噪声不低(76.2% / Cohen's κ = 0.715)。
  2. 只在 Qwen2.5-7B / Qwen3-8B / Gemma4-31B 三个推理 LLM 上验证,均为推理型模型(reasoning-tuned)。对真正的 base LLM(无任何指令微调)上是否也存在同样的操作几何,目前仍是开放问题;论文在 Appendix C.1 的 Llama-3-8B(instruct-tuned,非专门 reasoning RL 后训练)上做了 cross-model replication,得到 macro AUROC/AUPRC = 0.958/0.840,所以可分性并非只局限在 reasoning RL 后训练模型上。
  3. 只在数学/定理任务上验证(DAPO-Math-17K、TheoremQA)。常识、代码、规划、agent 风格的 trace 是否也呈现相同的 8 类操作几何,论文未覆盖。
  4. 诊断性质而非干预性质——probes 能 reveal 结构,但还没有证明能用来 steering 或控制模型行为。

这意味着:如果你看到一篇后续工作声称"在 Llama-3-70B base 上也有相同的几何",那是一个新发现,不在本文结论范围内;如果声称"我们能用 operation vector 让模型切换 Decomposition 到 Deduction",那就是接下来该走的方向。

最后留一个被磨利的问题给感兴趣的读者:如果操作几何是"推理 LLM 真的在做这些操作"的内部证据,下一步自然就是问"能不能用 operation vector 干预模型行为"——这是从诊断走向工程的转折点,也是这篇论文给自己铺的下一步。


参考文献

拆解 CoT 的内部几何:8 类推理操作在隐藏表征里长什么样