Summary

Towards Automated Circuit Discovery for Mechanistic Interpretability

  • 核心: 把”靠人力做的电路发现”系统化为三步工作流,并把其中最耗时的 Step 3(找电路边)自动化为 ACDC 算法——从输出向输入递归地用 activation patching 剪掉不重要的边,得到稀疏子图。
  • 方法: 给定计算图 、任务数据 与 corrupted 数据 、阈值 ;逐边试删,若删后对原模型输出的 KL 散度增量 则永久删除。另把 Subnetwork Probing (SP)、HISP 两个剪枝方法改造为同任务 baseline。
  • 结果: 在 IOI / Greater-Than / Docstring / Induction / 两个 tracr 任务上重现已知电路(Greater-Than 5/5 组件类型;IOI 选出 32000 条边里的 68 条且全部见于人工电路)。ACDC 的 AUC 与基于梯度的 SP 相当或更优,但对 corrupted 分布、metric、阈值高度敏感,且系统性漏掉 negative heads。
  • Sources: paper | github
  • Rating: 3 - Foundation(自动化电路发现这条线的奠基/命名工作,定义了 edge-level recovery 的评测范式,后继 EAP/EAP-IG 皆以它为起点)

Key Takeaways:

  1. 贡献的本质是”流程系统化 + 一步自动化”:论文先把 IOI、Greater-Than 等工作背后隐含的共同方法论抽象成三步(选行为/数据/metric → 定计算图粒度 → patching 剪边),再只自动化 Step 3。这是一个 framing 贡献而非纯算法贡献。
  2. ACDC = 贪心递归 edge pruning:拓扑逆序遍历节点,对每条入边做 interchange-style patching,按 KL 增量阈值 决定去留。没有训练、没有梯度,是纯前向的暴力搜索。
  3. 首次把电路发现做成可量化的 benchmark:用人工电路当 ground truth,把”找电路”形式化为边的二分类问题,用 ROC/AUC 比较不同算法(ACDC vs SP vs HISP)。
  4. 诚实的负面结果:ACDC 不 robust(对超参/metric/corrupt 分布敏感)、漏掉对性能有害的 negative 组件、且 ground-truth 本身可能不可靠——这些 limitation 比 main result 信息量更大。

Teaser. Figure 1:ACDC 在 GPT-2 Small 的完整计算图上自动恢复出 IOI 任务的电路子图(红色高亮),右侧为带标注的恢复电路;边粗细 ∝ 重要性。所有恢复的 head 都被前人人工识别为 IOI 电路成员。


本文方法

1. 把机制可解释性抽象成三步工作流

论文的第一个贡献是 framing:观察到 IOI、Greater-Than (Hanna et al.)、Docstring、Induction 等一批 post-hoc circuit 工作其实都在重复同一套人力流程,于是把它显式化为三步:

  1. 选行为、数据、metric:挑一个清晰定义的行为(如 Greater-Than:补全 “The war lasted from 1517 to 15__” 时只给 >17 的两位数),构造能稳定 elicit 该行为的 prompt 集,并选一个 metric(logit difference / probability difference / NLL 等)量化行为强度。注意这里 “dataset” 不用于训练,纯做 post-hoc 分析。
  2. 定计算图粒度:把模型内部表示成一张 DAG。粒度可粗(attention head / MLP 层之间)可细(拆 Q/K/V、单 neuron、按 token position 拆)。关键:得益于 residual stream 的可加性,工作流把非相邻层之间也连边(“直接效应”),即便实际实现里是动态规划累加的——这定义了什么算 direct vs mediated interaction(因果中介)。
  3. patching 剪边定位子图:用递归 activation patching 测每条边的重要性——把某节点/边的激活换成 corrupted 激活,前向,比较 metric 变化。从输出节点开始,确定重要入边,再递归考察其父节点。

Table 1. 用于验证 ACDC 的六个任务(前五个有前人给出的端到端电路当 ground truth)

TaskExample PromptOutputMetric
1: IOI”When John and Mary went to the store, Mary gave a bottle of milk to"" John”Logit difference
2: Docstringdef f(self, files, obj, state, size, ...) 文档串补全” shape”Logit difference
3: Greater-Than”The war lasted from 1517 to 15""18”/“19”/…/“99”Probability difference
4: tracr-xproportion["a","x","b","x"][0, 0.5, 0.33, 0.5]MSE
5: tracr-reverse[0, 3, 2, 1][1, 2, 3, 0]MSE
6: Induction”Vernon Dursley and Petunia Durs""ley”Negative log-prob

2. ACDC 算法:从输出向输入贪心剪边

ACDC 自动化的就是 Step 3。直觉:从输出节点出发,逆拓扑序遍历每个节点 ,对它的每条入边逐一尝试删除——若删除后子图相对原模型的输出分布变化(KL 散度增量)小于阈值 ,说明这条边不重要,永久删掉;否则保留。遍历完所有节点后得到一个既稀疏、又保留任务性能的子图。

Figure 2. ACDC 工作流程(Step 2(a)–2(c)):(a) 指定计算图、任务与阈值 τ;(b) 在每个 head 处剪掉不重要的连接;(c) 递归直到恢复完整电路。

子图的评估方式是核心设计。给定输入 ,把 中不在子图 里的所有边的激活替换为它们在 corrupted 输入 上的值(即 interchange intervention),记结果分布为 ,再用它与原模型 的 KL 散度衡量子图保真度(faithfulness):

Equation 1. 子图保真度的度量(对数据集取平均)

含义:用 KL 散度而非 task-specific metric,是为了让算法对”模型整体输出行为”负责而非只盯一个标量——作者认为这更不容易漏掉对该行为有贡献的组件(但见下文 negative head 的反例)。剪边判据即:

Equation 2. 边删除判据

伪代码(Algorithm 1):

H ← G;  H ← reverse_topological_sort(H)      # 输出节点在前
for v in H:
    for w in parents(v):
        H_new ← H \ {w → v}                  # 临时删候选边
        if D_KL(G||H_new) − D_KL(G||H) < τ:  # 删后影响 < 阈值
            H ← H_new                        # 边不重要,永久删除
return H

❓ 父节点遍历顺序是超参(论文用 layer 由后往前、head index 由高到低的字典序),且作者承认至少在 Induction 任务上顺序会影响结果——这说明贪心剪边存在路径依赖,不是良定义的”客观电路”。

关于 corrupted 激活的选择:patching 时用什么替换激活有三派——置零、用数据集均值、interchange intervention(用另一条数据点的激活)。ACDC 默认采用 interchange(沿用 IOI/Causal Scrubbing 的论点:零/均值激活会把模型推离真实激活分布),但所有实验也对比了置零。这个选择对结果影响很大(见结果)。

3. 两个梯度 baseline:SP 与 HISP

为了对照,作者把两个剪枝方法改造成同任务 baseline:

  • Subnetwork Probing (SP):学一个对 head/MLP 的 0/1 mask,目标平衡准确率与稀疏度(带正则 ),用 风格的可微 mask。改造三处:去掉 linear probe、训练 metric 换成 KL、mask 在 corrupted↔clean 激活之间插值(而非 zero↔clean)。
  • HISP (Head Importance Score for Pruning):按梯度绝对值给 head 打重要性分,只保留 top-,扫遍 得到 ROC。同样从置零推广到 corrupted 激活。

关键对照:SP/HISP 用梯度(一次/少量反向),ACDC 不用梯度但要做大量前向 patching——这是后续 EAP 工作的发力点。

4. 评测:把电路发现变成二分类 ROC

作者提出两类评测回答两个问题:Q1 方法能否找到真实算法对应的子图?Q2 能否避免纳入无关组件?

  • (4.1) Grounded in 前人工作 — edge-level ROC/AUC:以前人报告的 canonical 电路为 ground truth,把每条边二分类为”在/不在电路里”。扫 ACDC 的 / SP 的 / HISP 的 画 ROC。

Figure 3. ACDC / SP / HISP 在 5 个 transformer 电路上恢复前人组件的 ROC 曲线。

发现三点:(i) 所有方法对 corrupted 分布都极度敏感;(ii) ACDC 的 AUC 与基于梯度的方法相当,并在 IOI / Greater-Than / tracr-reverse 上更优;(iii) ACDC 不 robust,某些设置下直接失败(如 tracr 任务在 interchange 下 AUC 很差,但换成置零 patching 后任意 都能完美恢复)。

  • (4.2) Stand-alone 属性 — 不依赖前人电路:在 Induction 任务上,直接测恢复子图相对原模型的 KL 散度 vs 子图边数。边更少、KL 更低 = 更好。

Figure 4. Induction 任务上 ACDC vs SP 的 KL 散度 vs 边数(左:置零激活;右:corrupted 激活)。越靠左下越好。

在 >20 边区间 ACDC 略占优(Pareto 前沿点都来自 ACDC)。Reset network 对照(用随机重置权重的网络跑同算法)显示:训练过的网络 KL 显著更低,说明算法确实从模型的真实能力里取信号;但 HISP 和置零 SP 在 reset network 上也能优化出”电路”,这是它们容易找到不存在电路的证据(不利于 Q2)。


关联工作

基于 / 自动化的对象

  • IOI、Greater-Than、Docstring、Induction 电路:ACDC 把这些”靠人力 + 直觉”做出的电路发现工作系统化,并将其 Step 3 自动化。它们既是 ACDC 的 motivation,也是其 ground-truth 评测集。
  • activation patching / 路径补丁 (path patching):ACDC 的内核就是递归 patching;path patching(Induction 工作引入)是其逐边分析连接的方法学前身。
  • Causal Scrubbing:interchange intervention 优于 zero/mean ablation 的论点直接采自 Causal Scrubbing,后者也是”严格检验可解释性假设”的框架。

对比 / 平行

  • DAS / Causal Abstraction(DAS:同期的因果抽象路线是”验证模型是否实现某算法”,ACDC 是”发现算法轮廓”——find vs verify 的分工。
  • Subnetwork Probing / HISP / movement pruning:剪枝文献。区别在目标——剪枝为压缩/加速,ACDC 为找出反映模型计算的电路(且通常会让前向更慢)。
  • ROME 等模型编辑:同样依赖”看子图/定位组件”,但目的是改行为而非解释。

后继 / 方法相关

  • EAP / EAP-IG(Edge Attribution Patching):ACDC 最大痛点是慢(每条边一次前向)。后继用梯度一阶近似一次性估计所有边的重要性,把 次前向降到常数次反向;EAP-IG 进一步用 integrated gradients 提升近似保真度。ACDC 是这条加速线的起点与对照基线。
  • Attribution Graphs:把”组件单位”从多义的 head/neuron 换成 cross-layer transcoder 特征后再建图,部分回应 ACDC 单位多义的痛点。
  • 字典学习:直面 ACDC 的组件 多义性问题——若节点本身是 superposition 出的多义方向,那么”电路边”的语义本就模糊。
  • Parameter Decomposition:另一条思路,绕开”在固定计算图上剪边”,直接在参数空间分解出机制成分。

论文点评

Strengths

  1. Framing 的价值高于算法本身:把一批散落的人力电路工作抽象成可复用的三步工作流,并指出”哪一步可自动化”——这是 first-principles 的问题分解,给整个子领域立了坐标系。
  2. 首次把电路发现变成可量化、可对比的任务:edge-level ROC/AUC + reset-network 对照,让”找电路”从手艺变成有 baseline、有指标的研究问题。后续所有自动电路方法(EAP 系)都沿用这套评测。
  3. 诚实暴露负面结果:明确写 ACDC 不 robust、漏 negative head、ground-truth 不可靠。这些 negative result 给了后继工作清晰的攻击面。
  4. 开源 + 命名效应:“ACDC” 这个名字 + 可用实现,使其成为该方向的默认引用与起点。

Weaknesses

  1. 贪心 + 路径依赖:逐边阈值剪枝是局部贪心,父节点遍历顺序会改变结果(作者自己承认)。这意味着 ACDC 找到的不是唯一/客观电路,而是一条依赖超参的路径。
  2. 昂贵:每条候选边一次前向,GPT-2 Small 已有 32000 边,无法 scale 到大模型——这是 EAP 出现的直接原因(不 scale 的方法大概率方向不对)。
  3. 系统性漏 negative 组件:单 metric 优化天然漏掉对性能”有害”的组件(IOI 的 negative name mover heads)。说明”删了影响小 = 不重要”的判据本身有 blind spot——抵消效应被当成不重要。
  4. 组件单位多义:节点是 head/MLP/neuron,本身可能 多义;在多义单位上画的边,语义可解释性打折。这是 framing 层面的限制,非算法能修。
  5. Ground-truth 循环论证风险:用人工电路当 ground truth 来评测”自动化人工电路的方法”,而人工电路本身可能漏边/多边(作者承认 IOI 1041 边的 ground truth 不 100% 可靠)。高 AUC 既可能是”找得准”也可能是”复刻了人的偏见”。

可信评估

Artifact 可获取性

  • 代码: 开源(inference/分析全流程),https://github.com/ArthurConmy/Automatic-Circuit-Discovery
  • 模型权重: 不训练模型,分析现成 GPT-2 Small / tracr 编译的玩具 transformer
  • 训练细节: N/A(无训练);算法超参( / / 、遍历顺序、corrupt 方式)在正文与附录 E 有 ablation
  • 数据集: 各任务 prompt 集随代码开源(IOI / Greater-Than / Docstring / Induction / 两个 tracr 任务)

Claim 可验证性

  • 可信:“Greater-Than 重现 5/5 组件类型、IOI 选 68/32000 边且全在人工电路里”:有代码 + ROC 实验支撑,可复现
  • 可信:“ACDC AUC 与梯度方法相当或更优”:Figure 3 / 附录 Table 2 给出,可查
  • 存疑:“ACDC 自动化了 Step 3”:成立但有边界——只在小模型、清晰任务、已有 ground truth 的设置下验证;对真实大模型 scale 性未证,且贪心/超参敏感使”自动”含人工调参成分
  • 存疑:“找到的是模型用来计算的电路”:依赖 ground-truth 可靠性与 patching 的因果有效性,作者自己列为 limitation
  • ❌(无明显营销话术;论文对 limitation 相当克制诚实)

Notes

  • 在可解释性方法谱系里,ACDC 是”自动电路发现”这条支线的命名/奠基节点:上游是人力电路(IOI/Induction)+ patching 方法学,下游是 EAP/EAP-IG(提速)与换组件单位的 Attribution Graphs / SAE(修多义)。它的两个痛点(贵、组件多义)正好定义了后继两条改进线。
  • 一个值得追问的 first-principle 问题:edge-level recovery 把”电路”定义成”删了影响小的边的补集”,这等价于假设组件贡献可加、无强抵消。negative head 的漏检正是这个假设 break 的地方——后续方法是否真的解决了,还是换了个地方藏?

Rating

Metrics (as of 2026-06-27): citation=N/A (S2 IP throttled), influential=N/A, velocity=N/A; HF upvotes=0; github 290⭐ / forks=48 / 90d commits=0 / pushed 634d ago · stale

分数:3 - Foundation 理由:尽管今日 citation 因 S2 限流取不到、且 repo 已 stale(仓库是研究原型,停更属正常,不作减分),但 ACDC 在”自动化机制可解释性电路发现”这条线上是公认的奠基与命名工作——它定义了 edge-level recovery 的评测范式,并直接催生了 EAP/EAP-IG 等一系列后继(followed-by-many)。在可解释性方法谱系里,不读它就接不上从人工电路到自动电路的关键一跳,符合 Foundation 的准入门槛(只读 rating=3 即可理解该方向主脉络)。