Circuit atlas networks
The networks behind the entries of the Mechanistic Interpretability Circuit Atlas
(https://github.com/jc1122/mechanistic-interpretability-circuit-atlas): a frozen hand-built transformer ("m2"), a frozen
hand-written menu of encodings, and a trained one-hidden-layer MLP on top (rung PART). Code to rebuild m2 and the menu, train and
analyse: the atlas repository's code/ (MIT). Weights and cards: CC BY 4.0.
| Folder | Entry | Networks |
|---|---|---|
_shared/m2/ |
hand-built base (rung HAND), GPT-NeoX parameter names, config.json |
1 |
modular-addition-mlp/ |
(x + y) mod 59 | 10 seeds, train fraction .4 |
count-mod-5/ |
count of a letter mod 5 | 10 seeds x fractions .4/.6/.8 |
compare-counts/ |
which letter is more frequent | 10 seeds x fractions .4/.6/.8 |
open-bracket-count/ |
number of ( in a bracket line |
10 seeds x fractions .4/.6/.8 |
base-conversion/ |
hex/binary/decimal conversion of 0..255 (rungs HAND, PART, TRAIN; own layout, see its card) | 83 |
decimal-hex-addition/ |
a + b, 3 digits, base 10 and 16, formats A/B/C (rungs HAND, PART, TRAIN; own layout, see its card) | 42 |
binary-addition/ |
a + b, 6 bits, formats A/B/C (rungs HAND, PART, TRAIN; own layout, see its card) | 62 |
Per entry: s<seed>_f<frac*100>.safetensors (W1, b1, W2, b2 float32; test_idx int64 = held-out cells),
inputs.safetensors (X = frozen menu rows at the answer position, one per cell; uv = the two integers; lab = labels),
config.json (shapes, menu block slices, optimiser) and manifest.json (seed, rung, fraction, circuit type, accuracies, sha256).
Forward pass: logits = W2 relu(X W1^T + b1) + b2; accuracy on test_idx reproduces acc_test in the manifest exactly.
No pickles. Each entry folder has its own card (README.md).