上一篇我們看了 Induction Heads 和 IOI,知道研究者確實可以把某些模型行為拆成一組可理解的 circuit。但這些經典案例都有一個共同問題:很花人工。
研究者通常要先提出假設,再逐一檢查 Attention Heads、MLPs、token positions,配合 patching、ablation 和各種 visualization,慢慢把可能的 circuit 拼出來。對 GPT-2 Small 這種模型還勉強可行;當模型有數十甚至上百層時,可能的 nodes 與 edges 數量很快就會爆炸。於是,很自然的我們就會想試試看能不能讓演算法自己幫我們找 circuit?這就是 Automated Circuit Discovery 想做的事。
「Automated」很容易讓人產生一個錯誤印象,以為只要把模型交給演算法,它就會自動告訴我們模型真正的 mechanism。但在搜尋開始以前,研究者仍然必須決定:
演算法自動化的是「在我們定義好的 task、metric 和 computational graph 下,搜尋哪些 nodes 或 edges 最值得保留」因此,同一個模型可能因為 dataset、metric、ablation method 或 graph granularity 不同,而得到不同的 candidate circuits。更具體的說,Automated Circuit Discovery 自動化的是 circuit localization,不是完整的 mechanism interpretation。

假設我們把 Transformer 想成一張巨大的 computational graph。每個 Attention Head、MLP 或其他 component 都可以視為 node,元件之間傳遞的資訊則形成 edges。但對某個非常具體的 behavior,例如 IOI 裡預測正確的人名,我們真正關心的可能只有其中一小部分 connections。Circuit discovery 的目標因此可以寫成兩個同時存在的要求:
只追求第一點,我們可以直接刪掉所有 edges;只追求第二點,我們則可以保留完整模型。真正的問題是「能不能在盡量小的 circuit 中,保留盡量多的模型行為?」
早期很具代表性的方法之一,是 ACDC(Automatic Circuit DisCovery)。[1]
ACDC 從 output 附近開始,沿著 computational graph 往上游檢查 edges。對每一條從 sender 傳向 receiver 的 edge,它都會問「如果把這條 edge 傳遞的 clean contribution 換成 corrupted contribution,模型的輸出會不會明顯改變?」如果幾乎沒有影響,就把這條 edge 從 candidate circuit 中移除;如果影響很大,就保留。
假設完整模型在某個 task 上的 logit difference 是 4.0,我們可能得到下面這種結果:
| Candidate edge | 替換後的 logit difference | 判斷 |
|---|---|---|
| Head 9.9 → Output | 1.3 | 影響大,保留 |
| Head 7.3 → Head 9.9 | 2.1 | 影響大,保留 |
| Head 2.4 → MLP 6 | 3.98 | 幾乎沒影響,移除 |
上面的數值只是示意。ACDC 真正執行時,會反覆進行這類 intervention,逐漸把完整 graph 剪成比較小的 subgraph。這是一種 greedy search,演算法根據當下測試的結果,決定是否保留每條 edge。因此 pruning threshold、搜尋順序,以及前面已經移除了哪些 edges,都可能影響最後得到的 circuit。
在 Greater-Than task 上,ACDC 從 GPT-2 Small 約 32,000 條 candidate edges 中保留了 68 條,並找回先前人工研究辨識出的五類重要 components。[1] 這顯示 circuit discovery 至少有一部分可以被系統化,而不必完全依賴研究者逐張檢查 attention maps。
Day 8 的實驗是由我們先選出 sender 和 receiver,再測試少量 candidate paths。這次我們不再先指定某一條可能重要的路徑,而是讓 ACDC 從一張較完整的 computational graph 開始,自動判斷哪些 edges 可以移除。
Companion notebook 會延續 Japan → Tokyo、Taiwan → Taipei 的 factual recall example。ACDC 會逐步把 candidate edge 的 clean contribution 換成 corrupted contribution;如果這項 intervention 幾乎不改變 metric,就將該 edge 從 circuit 中移除。我們會改變 pruning threshold,得到數張大小不同的 candidate circuits,再真正執行每張 pruned graph,測量它們的 normalized faithfulness。最後的重點不只是哪幾條 edges 排名最高,而是演算法能否從完整 graph 中剪出一張更小、仍能重現模型行為的 subgraph。
ACDC 的限制也很直接,每考慮一條 edge,都可能需要重新執行 intervention。當 candidate edges 很多時,成本仍然相當高。Day 8 介紹的 Edge Attribution Patching(EAP) 提供了比較快的做法,利用 gradient approximation 一次替大量 edges 計算 importance score,再保留排名最高的 top-k edges。[2]
因此兩者的差別可以簡化成:
| 方法 | 搜尋方式 | 主要取捨 |
|---|---|---|
| ACDC | 逐條 intervention,greedy pruning | 比較直接,但慢 |
| EAP | 一次估計 edge scores,再取 top-k | 很快,但 approximation 可能失準 |
EAP 在這篇不是新的 patching 工具,而是 Automated Circuit Discovery 的一種 search strategy:它把原本昂貴的逐條測試,轉換成 edge ranking 問題。後續的 EAP-IG 使用 Integrated Gradients 改善一階 approximation。相關研究也指出,即使 EAP 與 intervention-based methods 找到的 nodes 高度重疊,前者得到的 circuit 仍可能比較不 faithful;因此不能只用 component overlap 評估結果。[3]
ACDC 是逐條測試,EAP 是先替 edges 打分。另一條路則是直接把 circuit discovery 寫成 optimization problem。Bhaskar 等人提出的 Edge Pruning 會凍結原模型的 parameters,再替每條 candidate edge 加上一個可以學習的 mask z_e。[4]
直覺上,每條 edge 真正傳給下游的資訊可以寫成:

當 z_e 接近 1,模型使用這條 edge 的 clean contribution;接近 0,則改用 corrupted contribution。訓練時同時要求兩件事:
可以把目標粗略理解成:

最後再把連續的 masks 轉成 0 或 1,就得到一張 sparse circuit。
Edge Pruning 和 EAP 的重要差別是:EAP 通常先獨立替 edges 打分,再根據排名選擇 top-k;Edge Pruning 則讓大量 edge masks 一起被最佳化,因此比較有機會考慮 edges 之間的 interaction。這個方法在 GPT-2 的標準 circuit tasks 上,用比先前方法更少的 edges 達到相近的 faithfulness。研究者還在由 Tracr 編譯、具有已知 ground-truth circuit 的模型上測試它,檢查演算法能否真的找回預先知道的結構。[4]
假設一個方法替所有 edges 排好分數,我們接著仍然要選擇保留多少 edges:top-10、top-100,還是 top-1000?不同 threshold 可能得到完全不同的結論。circuit 不是越小越好,也不是 performance 越高就越好;我們真正關心的是兩者的 trade-off。一種常見的 normalized faithfulness 寫法是:

其中:
當 f=1,代表 candidate circuit 在這個 metric 下恢復到完整模型的程度;接近 0,則代表它和 empty circuit 差不多。

2025 年提出的 Mechanistic Interpretability Benchmark(MIB) 更進一步主張,不應該只比較研究者任選的一個 circuit size,而應該觀察方法在多種 circuit sizes 下的整條 curve。[5] MIB 也把常被混稱為 faithfulness 的需求拆成兩個問題:
這提醒我們:一張 subgraph 在 task 上「還做得不錯」,不一定代表它重現了完整模型原本的 computation。
現在假設演算法真的輸出了一張只包含 42 條 edges 的 graph,而且它有很高的 faithfulness。我們可以說,它找到了一個值得研究的 candidate circuit。但這還沒有告訴我們:
Automated Circuit Discovery 很擅長縮小搜尋空間,卻不會自動替 graph 裡的元件賦予人類可理解的意義。因此,今天真正學到的不是「演算法已經可以自動破解 Transformer」,而是一個比較精確的 workflow:
先定義 behavior、dataset、metric 和 graph
↓
用 ACDC、EAP 或 Edge Pruning 搜尋 sparse subgraph
↓
檢查 circuit size 與 faithfulness 的 trade-off
↓
再回到元件功能、資訊內容與 causal validation
我們已經開始能自動找出「哪些 connections 可能重要」。但如果想把這張 graph 變成真正的 mechanistic explanation,還需要回答另一個更根本的問題:「graph 裡傳遞的資訊,能不能對應到人類可以理解、而且具有因果意義的變數?」從一張單純的數據流向、Circuit 圖變成人類能理解、能說出具體步驟的演算法敘述。
接下來,我們會介紹 Causal Abstraction 與 Distributed Alignment Search(DAS),看看模型內 distributed representations 是否能和更高階的 causal variables 對應起來。
[1] Conmy, A., Mavor-Parker, A. N., Lynch, A., Heimersheim, S., & Garriga-Alonso, A., “Towards Automated Circuit Discovery for Mechanistic Interpretability”, Advances in Neural Information Processing Systems (NeurIPS), 2023. https://arxiv.org/abs/2304.14997
[2] Syed, A., Rager, C., & Conmy, A., “Attribution Patching Outperforms Automated Circuit Discovery”, 2023. https://arxiv.org/abs/2310.10348
[3] Hanna, M., Pezzelle, S., & Belinkov, Y., “Have Faith in Faithfulness: Going Beyond Circuit Overlap When Finding Model Mechanisms”, Conference on Language Modeling (COLM), 2024. https://arxiv.org/abs/2403.17806
[4] Bhaskar, A., Wettig, A., Friedman, D., & Chen, D., “Finding Transformer Circuits with Edge Pruning”, Advances in Neural Information Processing Systems (NeurIPS), 2024. https://arxiv.org/abs/2406.16778
[5] Mueller, A., Geiger, A., Wiegreffe, S., et al., “MIB: A Mechanistic Interpretability Benchmark”, 2025. https://arxiv.org/abs/2504.13151