看到了什么现象?

阅读 Hahami (2025) 的开源代码mechinterp.pyexperiment_4_residual_tracking 函数),发现残差恢复测量有一个之前忽略的关键细节:所有测量都发生在 last token 位置,而非注入位置

具体来说,代码中(约第 248 行):

1
storage[layer_idx] = hidden_states[:, -1, :].detach().clone()

注入发生在句子 token(比如位置 50-60),但 cosine similarity 和 projection 测量的是 last token(位置 ~200)的残差流变化。

为什么这重要?

这完全改变了对"残差恢复"的理解。之前的分析(方向收敛假说)假设测量的是注入位置的残差,推导了 LayerNorm 0-齐次性如何导致方向收敛。但如果测量的是 last token 的残差,那机制就不同了。

这篇文章解决什么问题?

修正对残差恢复实验的理解,区分两种不同的衰减机制。


实际的信号传播路径

Hahami 实验中的信号路径

1
2
3
句子 token (位置 50-60) ← 注入发生在这里
↓ attention routing
last token (位置 ~200) ← 测量发生在这里

三个阶段

  1. 注入阶段 (Layer l_inject):扰动 δ 被添加到句子 token 的残差中
  2. 路由阶段 (Layer l_inject+1 onwards):attention heads 将扰动信号从句子 token 路由到 last token
  3. 衰减阶段 (后续层):last token 的残差中,扰动信号逐渐消散

之前的错误理解

之前分析的是"注入位置的残差如何方向收敛"——这当然也在发生,但 Hahami 的 Figure 5 测量的不是这个。Figure 5 测量的是扰动信号经过 attention routing 到达 last token 后的衰减


对方向收敛假说的影响

Last token 的残差恢复涉及两个机制

  1. 注入位置的恢复:句子 token 的残差 h_inject 在后续层趋向于 h_baseline(方向收敛、LayerNorm 归一化)

  2. 路由信号的稀释:即使注入位置的扰动还存在,last token 通过 attention 接收的信号在后续层中被其他 token 的信息"稀释"

哪个是主导机制?

Hahami 论文的 attention 实验(Experiment 2,Figure 3)给出了线索:

  • Layer 3(注入后 1 层):100% 注意力定位准确率——说明扰动信号此时对 attention 模式有强烈影响
  • Layer 4-8:67%-97% 准确率——信号逐渐减弱但仍然可检测
  • Layer 20-31:37% 准确率——信号大幅衰减但仍高于 20% 基线

这暗示注入位置的恢复是主导因素——如果扰动在注入位置已经消失,attention heads 就无法检测到它。


Norm Ratio 数据的确认

代码中的计算(第 268-270 行)

1
2
3
norm_i = r_i.norm().item()
norm_b = r_b.norm().item()
norm_ratio_by_layer[layer_idx].append(norm_i / norm_b if norm_b > 0 else 1.0)

代码中的绘图(三面板图)

代码 create_comprehensive_plots 创建了三面板图:

  • Panel A: Cosine similarity
  • Panel B: Norm ratio (标注为 “Activation Norm Change”)
  • Panel C: Projection

图片尺寸 5355×1455(宽高比 ~3.68:1),除以三面板 = 每面板 1785×1455,合理。

论文 caption 的不完整描述

论文 Figure 5 caption 只提到"(Left) Cosine similarity… (Right) Projection…",但图实际包含三面板。Norm ratio 面板可能是中间面板但 caption 跳过了描述。

从图中观察到的 Norm Ratio 数据

直接查看仓库中生成的三面板图(figures/mechinterp_exp4_residual.png),Panel B “Activation Norm Change” 显示:

Hahami Figure - Residual Stream Recovery (三面板)

  • Layer 0-1:Norm ratio ≈ 1.0(注入前)
  • Layer 2-4:Norm ratio 骤降至 ~0.92(注入后立即)
  • Layer 5-15:Norm ratio 在 0.975-1.025 范围内震荡,有恢复趋势但不稳定
  • Layer 15-30:Norm ratio 基本稳定在 ~1.0 附近,但仍有微小偏差

关键结论:Norm ratio ≠ 1——注入后 last token 的范数确实发生了变化(先下降再恢复),支持方向收敛假说的预测 1。但恢复速度比 cosine similarity 更快,说明范数变化可能不是主要信号载体。

三个度量的对比(来自同一图)

度量 注入后变化 恢复速度 最终值
Cosine similarity 从 1.0 降至 ~0.7 缓慢(~20层恢复) ~0.99
Norm ratio 从 1.0 降至 ~0.92 较快(~10层恢复) ~1.0
Projection 从 0 升至 ~0.6 快速(~10层衰减) ~0.0

解读

  • Cosine similarity 的恢复最慢——说明方向偏差是最持久的信号
  • Norm ratio 恢复较快——说明范数变化是暂态的
  • Projection 衰减最快——说明在注入方向上的信号快速消散

这个模式与 LayerNorm 的 0-齐次性一致:

  • 0-齐次性直接消除径向(范数)变化 → Norm ratio 快速恢复
  • 但切向(方向)变化不被 0-齐次性消除 → Cosine similarity 恢复慢
  • 注入方向上的特定投影比整体方向偏差消散更快 → Projection 最快衰减

理论修正

修正前的框架

残差恢复 = LayerNorm 的方向收敛 + 切向扰动分散(注入位置的局部效应)

修正后的框架

残差恢复(Hahami Figure 5 测量的)= attention routing 后,last token 残差的去扰动化

这涉及:

  1. 注入位置的局部恢复(LayerNorm 方向收敛 — 之前的分析仍然成立)
  2. attention routing 中的信号稀释(多个 token 竞争 attention)
  3. last token 残差的 LayerNorm 归一化

对内省窗口的启示

内省窗口不仅由"注入位置的残差恢复速率"决定,还受"attention routing 效率"影响:

  • 早期注入(L0-L5):扰动有足够多的层来通过 attention 路由到 last token,并在 mid-layer 整合
  • 晚期注入(L15+):即使扰动在注入位置还在,也没有足够的层来完成 routing + integration

验证方向

  1. 分离两个机制:分别测量注入位置和 last token 的残差恢复,看哪个衰减更快
  2. 检查 Norm ratio 数据:下载 exp4_residual_tracking.pt,检查 norm_ratio_mean 是否 ≠ 1
  3. 关注 attention routing 效率:如果在 last token 的 cosine similarity 恢复比注入位置更快,说明 routing 稀释是主要因素

批判性反思

为什么之前忽略了测量位置?

因为论文文本说"cosine similarity between perturbed and baseline residual streams"——没有明确说在哪个位置。直到读了代码才发现是 last token。这是一个方法论细节,但对理论解释至关重要。

这篇发现改变了什么?

  • 之前的 LayerNorm 方向收敛分析仍然对注入位置成立
  • 但 Hahami Figure 5 显示的恢复动态是复合效应:局部恢复 + routing 稀释
  • 方向收敛假说需要更谨慎的表述

局限

  • Norm ratio 数据是从图中目视读取的,精确值需要从 exp4_residual_tracking.pt 文件中提取
  • 对"routing 稀释"机制的理解还是推测性的
  • 三个度量的恢复速度差异还需要更严谨的量化分析

关键引用


最后更新: 2026-03-16 21:35
核心发现: Hahami Figure 5 测量的是 last token 的残差恢复,不是注入位置。这意味着残差恢复是复合效应:注入位置的局部恢复 + attention routing 信号稀释。代码确认了 Norm ratio 被计算并存储在三面板图中。