Circuit Condensation: Post-Training that Concentrates a Behavior's Causal Circuit
Organizations: George Mason University
Abstract
One approach in mechanistic interpretability explains model behavior through circuits: the components and connections that carry it. Frozen discovery often returns hundreds of edges, making them hard to inspect, compare, or verify exhaustively. We introduce Circuit Condensation, which post-trains models to concentrate behaviors into smaller causal graphs. Each round prunes low-attribution edges and trains a low-rank adapter to match the original through what remains. It keeps the cut only if task accuracy and held-out perplexity remain within tolerance. Across four behaviors and eight models, condensed circuits are smaller than the strongest published frozen-weight baseline in 30 of 32 settings, by 8.1x on average and up to 316x. Repeating the search without weight updates produces larger circuits in 29 of 32 settings, showing that weight updates drive the reduction rather than search alone. For 19 small circuits, exhaustive subset tests show that 11 are exactly minimal and identify removable edges in the rest. Pair ablations reveal dependencies that single-edge tests miss. On indirect object identification, condensation isolates 24 heads, including 17 with documented roles, whereas a matched frozen circuit needs 61 heads, 36 without documented roles. The result is a sufficient subcircuit of the published mechanism rather than a reconstruction of it. The resulting circuit tracks the original model's next-token distribution and, at matched edge count, predicts its errors better than a frozen circuit in 10 of 11 evaluable settings.
Figures & tables
| Arm | vs | cells | 95% CI |
|---|---|---|---|
| Random | 32/32 | ||
| EAP | 31/32 | ||
| EAP-GP | 30/32 | ||
| EAP-IG | 30/32 | ||
| 29/32 |
| Route | ( ) | – ( ) | ( ) | matches |
|---|---|---|---|---|
| , re-ranks every round | — | |||
| Five-stage cut | 21 | |||
| Single cut | 15 | |||
| Random mask |
| Control | What changes | Cells | Seeds | Outcome | Reference |
|---|---|---|---|---|---|
| Shorter path (Tab. 2 ) | route to the endpoint | 32 | 1 | 0/7 match at | at equal size |
| Random order | edge ranking | 32 | 3 | larger | endpoint |
| Reverse order | edge ranking | 32 | 1 | 0 edges removed | full graph |
| No-prune heal | pruning removed | 32 | 3 | PR ratio | before healing |
| Target test | behavior condensed | 32 | 3 | target , rest | untouched model |
| Sibling swap | head identity | 32 | 3 | 30/32 to chance | intact circuit |
Appendix figures & tables22 assets
Supplementary material from the paper’s appendix.
Appendix
| Setting | Value |
|---|---|
| Data | |
| Data per task and model | 2000 train / 2000 validation ( eval_big.jsonl ) / 1000 sealed test |
| Validation read per controller decision | full 2000-example split |
| Paper seeds | 11, 22, 33 |
| Ranking and pruning | |
| Edge-ranking method | EAP-IG, re-ranked after every accepted cut |
| Task | Runs | Ratios available | Reduction (geom. mean) | fewer edges | Max reduction |
|---|---|---|---|---|---|
| IOI | 24 | 24 | 24/24 | ||
| Agreement | 24 | 24 | 21/24 | ||
| Induction | 24 | 24 | 24/24 | ||
| Docstring | 24 | 24 | 19/24 | ||
| Overall | 96 | 96 | 88/96 |
| Quantity | Ranked on | Selected on | Reported on | Examples |
|---|---|---|---|---|
| Primary sizes, every arm | train | validation (own full graph ) | sealed test | 2000 / 1000 |
| Matched frozen circuit (§ 5.3 ) | train | matched to test endpoint | sealed test | 1000 |
| Subset enumeration | – | circuits fixed above | sealed-test subsample | 200 |
| Single-edge ablations | – | circuits fixed above | sealed-test subsample | 96 |
| Whole-set ablation, pairs, roles, specificity | – | circuits fixed above | sealed-test subsample | 200 |
| Task | Runs | Median reduction | Wins | |
|---|---|---|---|---|
| IOI | 24 | 24/24 | 21/24 | |
| Agreement | 24 | 21/24 | 16/24 | |
| Induction | 24 | 24/24 | 21/24 | |
| Docstring | 24 | 19/24 | 8/24 | |
| Overall | 96 | 88/96 | 66/96 |
| Task | Median KL | KL IQR | Median circuit acc. | Median original acc. | Sealed pass |
|---|---|---|---|---|---|
| IOI | 0.048 | [0.045, 0.063] | 0.978 | 0.996 | 24/24 |
| Induction | 0.081 | [0.060, 0.124] | 0.951 | 0.965 | 19/24 |
| Docstring | 0.089 | [0.074, 0.138] | 0.994 | 1.000 | 24/24 |
| Agreement | 0.254 | [0.145, 0.343] | 0.777 | 0.764 | 24/24 |
| All | 0.088 | – | – | – | 91/96 |
| Seed | Median ratio | Worst ratio | Median KL | Median LAMBADA | Cells |
|---|---|---|---|---|---|
| 11 | 1.088 | 1.672 | 0.278 | 19/32 | |
| 22 | 1.091 | 1.742 | 0.255 | 19/31 | |
| 33 | 1.087 | 1.621 | 0.262 | 18/32 |
| Task | Model | EAP-IG (ours) | Random | Anti-ranked |
|---|---|---|---|---|
| edges @ acc | edges @ acc | edges @ acc | ||
| IOI | GPT-2 | 58 @ 0.94 | 1484 @ 0.94 | 2041 @ 0.98 (full) |
| Agreement | Llama-3.2-1B | 263 @ 0.71 | 7644 @ 0.60 | 8993 @ 0.70 (full) |
| Induction | Gemma-3-1B | 3 @ 0.90 | 1197 @ 0.92 | 3537 @ 0.89 (full) |
| Docstring | Llama-3.2-1B | 519 @ 1.00 | 7128 @ 1.00 | 8993 @ 1.00 (full) |
| Task | Model | PR before | PR after (no-prune heal) | Ratio |
|---|---|---|---|---|
| IOI | GPT-2 | 50.7 | 50.5 | 1.00 |
| IOI | Llama-3.2-1B | 331.0 | 328.3 | 0.99 |
| IOI | Qwen3-4B | 1017.7 | 876.1 | 0.86 |
| Agreement | Llama-3.2-1B | 267.9 | 261.7 | 0.98 |
| Agreement | Llama-3.2-3B | 479.3 | 475.2 | 0.99 |
| Induction | Gemma-3-1B | 47.1 | 46.7 | 0.99 |
| Task | Model | Edges | Swapped | Kept | All off | Chance | Swapped acc. | To chance |
|---|---|---|---|---|---|---|---|---|
| IOI | Gemma-3-4B | 4 | 2 | 1.000 | 0.555 | 0.50 | 0.550 | yes |
| Llama-3.2-3B | 10 | 3 | 0.985 | 0.510 | 0.50 | 0.490 | yes | |
| Gemma-3-1B | 12 | 5 | 0.985 | 0.510 | 0.50 | 0.435 | yes | |
| Llama-3.2-1B | 18 | 7 | 0.980 | 0.515 | 0.50 | 0.580 | no | |
| GPT-2 | 58 | 17 | 0.970 | 0.485 | 0.50 | 0.475 | yes | |
| Qwen3-1.7B | 94 | 23 | 0.975 | 0.510 | 0.50 | 0.560 | yes |
| Task | Model | W3 edges | edges | /W3 | Admissible configs |
|---|---|---|---|---|---|
| IOI | GPT-2 | 5 | 58 | 11.6 | 2 of 16 |
| Llama-3.2-1B | 22 | 18 | 0.8 | 2 of 5 | |
| Llama-3.2-3B | none | 10 | — | 0 of 5 | |
| Gemma-3-1B | 3 | 12 | 4.0 | 3 of 5 | |
| Gemma-3-4B | 3 | 4 | 1.3 | 4 of 5 | |
| Qwen3-0.6B | none | 169 | — | 0 of 5 |
| Task | Containment | Edge Jaccard | null |
|---|---|---|---|
| IOI | 0.93 | 0.53 | |
| Agreement | 0.89 | 0.68 | |
| Induction | 0.95 | 0.83 | |
| Docstring | 0.94 | 0.76 |
| Candidate set | Condensed | Original | Passes | Time | Speedup |
|---|---|---|---|---|---|
| Head edges | 70 | 256 | 1280 350 | 137.02s 37.66s | |
| Measured on an earlier 70-edge IOI/GPT-2 endpoint; the reported endpoint is 58 edges (Table 20 ), so this understates the saving. | |||||
| Aligned variable | condensed | Frozen (matched acc.) | Unmodified model |
|---|---|---|---|
| Output (name-mover logits) | 0.995 | 0.985 | 0.995 |
| Intermediate (subject inhibition) | 0.930 | 0.735 | 0.645 |
| per-seed range | – | – | – |
| Random-edge control (intermediate) | 0.03 | 0.04 | 0.01 |
| Sham hypothesis (different task) | 0.00 | 0.01 | 0.01 |
| Task | Model | Edges | Acc. | Match( ) | LD rec. | ||
|---|---|---|---|---|---|---|---|
| IOI | GPT-2 | 13 | 0.96 | 0.95 | 0.079 | 0.025 | 0.58 |
| Llama-3.2-1B | 15 | 0.98 | 0.99 | 0.217 | 0.047 | 0.95 | |
| Llama-3.2-3B | 12 | 0.955 | 0.95 | 0.067 | 0.040 | 0.58 | |
| Gemma-3-1B | 4 | 0.995 | 0.99 | 0.118 | 0.046 | 1.23 | |
| Gemma-3-4B | 4 | 0.995 | 0.99 | 0.072 | 0.043 | 0.91 | |
| Qwen3-0.6B | 71 | 0.98 | 0.96 | 0.157 | 0.030 | 1.03 |
| Model | Err. rate | (matched) | Frozen (matched) | Frozen (full) | |
| Agreement | |||||
| GPT-2 | 453 | 0.983 | 0.985 | 0.992 (600e) | |
| Llama-3.2-1B | 263 | 0.943 | 0.927 | 0.965 (1400e) | |
| Llama-3.2-3B | 314 | 0.936 | 0.635 | 1.000 (20329e) | |
| Gemma-3-1B | 125 | 0.829 | 0.639 | 0.931 (600e) | |
| Gemma-3-4B | 180 | 0.823 | 0.675 | 0.981 (2000e) | |
| Frozen | ||
| Edges | 58 | 256 |
| Heads | 24 | 61 |
| KL to original | 0.056 | 0.50 |
| No published role | 7 | 36 |
| Precision | 0.71 | 0.41 |
| Recall |
| IOI | Agreement | Induction | Docstring | ||||||
|---|---|---|---|---|---|---|---|---|---|
| Model | Full | Edges | Acc | Edges | Acc | Edges | Acc | Edges | Acc |
| GPT-2 small | 2041 | 58 (54–71) | 0.94 | 453 (317–595) | 0.79 | 160 (148–160) | 0.91 | 144 (118–175) | 0.44 |
| Llama-3.2-1B | 8993 | 18 (17–27) | 0.97 | 263 (205–279) | 0.71 | 104 (104–119) | 0.97 | 519 (480–519) | 1.00 |
| Llama-3.2-3B | 20329 | 10 (8–267) | 0.98 | 314 (254–316) | 0.72 | 91 (77–97) | 0.97 | 697 (545–720) | 1.00 |
| Gemma-3-1B | 3537 | 12 (4–16) | 0.99 | 125 (51–129) | 0.83 | 3 (3–3) | 0.90 | 3 (3–4) | 0.97 |
| Gemma-3-4B | 10745 | 4 (3–6) | 1.00 | 180 (176–226) | 0.71 | 4 (4–6) | 0.90 | 7 (6–7) | 0.98 |
| Accuracy after cutting | Load-bearing alone | No smaller | |||
|---|---|---|---|---|---|
| Task | random edges | frozen | subset | ||
| IOI | 2 of 7 | ||||
| Agreement | none enumerable | ||||
| Induction | 6 of 6 | ||||
| Docstring | 3 of 6 | ||||
| Model | Adapted matrices | LoRA params | % of base | Top-quartile share |
|---|---|---|---|---|
| GPT-2 small | 48 | 2.36M | 1.90% | 37.6% |
| Llama-3.2-1B | 112 | 11.27M | 0.91% | 50.0% |
| Gemma-3-1B | 182 | 13.05M | 1.30% | 47.9% |
| Qwen3-1.7B | 196 | 17.43M | 1.01% | 61.3% |
| Arm | Cells | PR ratio | Concentrates | Task acc. | Probe |
|---|---|---|---|---|---|
| SFT | |||||
| DPO ( Rafailov et al., 2023 ) | |||||
| GRPO ( Shao et al., 2024 ) | |||||
| REINFORCE ( Williams, 1992 ) |
Mechanistic Interpretability
Mechanistic interpretability studies how neural networks implement behaviors through internal features, circuits, and causal information flow.
See all 391 papers