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 |
subtraction/ |
a - b, base 10 (3 digits) and base 2 (6 bits), formats A/B/C (rungs HAND, PART, TRAIN; own layout, see its card) | 112 |
binary-multiplication/ |
a * b, 6 bits, formats A/B (rungs HAND, PART, TRAIN; own layout, see its card) | 41 |
long-division-square-root/ |
binary long division and long-hand square root, 8-bit and wide ranges, formats A/B (rungs HAND, PART, TRAIN; own layout, see its card) | 202 |
dfa-group-automata/ |
parity, Z3 and S3 group automata (state tracking), formats A/B (rungs HAND, PART, TRAIN; own layout, see its card) | 223 |
gf2-matrix-product/ |
C = A B over GF(2), 3x3 bit matrices, formats T (trace)/A (rungs HAND, PART, TRAIN; own layout, see its card) | 15 |
gf2-elimination/ |
A x = b over GF(2) by Gauss-Jordan, m = 3 and 4, formats T (scratchpad)/A (rungs HAND, PART, TRAIN; own layout, see its card) | 35 |
router-addition/ |
a + b, base 2 and 10, formats AM/AL/I/R (router), length generalisation (rungs HAND, PART, TRAIN; own layout, see its card) | 105 |
multiplication-base-order/ |
x * y, x, y < 256, answer only and running-sum scratchpad, bases 2/10/16, MSB/LSB-first, curriculum mixes (rung TRAIN; own layout, see its card) | 43 |
gcd-euclid/ |
gcd, modular inverse, fraction reduction; formats A (answer only)/T (subtractive-Euclid trace) (rungs HAND, PART, TRAIN; own layout, see its card) | 39 |
modular-arithmetic-mod-97/ |
a * b and a + b mod 97, residue tokens and binary (rungs HAND, PART, TRAIN; own layout, see its card) | 35 |
modular-arithmetic-formats/ |
a * b and a + b mod 97, residue tokens, final run (rungs HAND, TRAIN; own layout, see its card) | 20 |
chess-krk/ |
king + rook vs king mate, fixed 8-rule fence policy, formats A/G/C (rungs PART, TRAIN; own layout, see its card) | 41 |
chain-rule-differentiation/ |
symbolic derivative of prefix expressions (powers, sin, cos, exp, +, *), formats A (answer only)/T (register rewrite) (rungs HAND, PART, TRAIN; own layout, see its config) | 30 |
polynomial-differentiation/ |
integer polynomial differentiation (power rule), formats A (answer only)/T (scratchpad) (rungs HAND, PART, TRAIN; own layout, see its card) | 60 |
polynomial-add-mul/ |
integer polynomial addition and multiplication, degree 3, formats A (answer only)/T (scratchpad) (rungs HAND, PART, TRAIN; own layout, see its card) | 59 |
output-order-base-conversion/ |
16-bit decimal/binary conversion, answer MSB- or LSB-first, answer only (A) and scratchpad (B) (rungs HAND, PART, TRAIN; own layout, see its card) | 95 |
symbolic-algebra-atoms/ |
symbol-level polynomial collection, binomial expansion and linear equations on (side, power, coefficient) atoms, formats A/T (rungs HAND, PART, TRAIN; own layout, see its card) | 72 |
polynomial-integration/ |
integer polynomial integration with reduced-fraction coefficients, formats A (answer only)/T (subtractive-Euclid scratchpad) (rungs HAND, PART, TRAIN; own layout, see its card) | 40 |
grid-bfs/ |
shortest-path distance on 6x6 mazes, formats A (answer only)/T (reached-set map scratchpad) (rungs HAND, PART, TRAIN; own layout, see its card) | 18 |
compose-arithmetic-registers/ |
base-2 register scratchpad: STEP (ADD/SHL/REV on tagged registers) and its compositions SUM/MUL/POW, formats O/S (rungs HAND, PART, TRAIN; own layout, see its card) | 14 |
dpll-search/ |
DPLL search on 3-SAT (n 4-6, m 10-25), formats A (answer only)/T (solver-state scratchpad) (rungs HAND, PART, TRAIN; own layout, see its card) | 44 |
chess-mate-in-one/ |
mate-in-one candidate selection (bare black king, K 1-16 candidates), formats A (answer only)/T (escape-count scratchpad) (rungs HAND, PART; own layout, see its card) | 24 |
linear-systems-finite-fields/ |
A x = b over F5/F7 by Gauss-Jordan, m = 2/3, formats A (answer)/T (matrix updates)/S (microstep scratchpad) (rungs PART, TRAIN; own layout, see its card) | 158 |
quadratic-roots/ |
integer roots/discriminant of x^2 + bx + c: parent formats A/S/T and an addressed-NAND register executor S_exec (rungs HAND, PART, TRAIN; own layout, see its card) | 33 |
crc-remainder/ |
GF(2) polynomial remainder N mod D (degree-4 divisors), formats A (answer only)/T (quotient + remainder scratchpad) (rungs HAND, PART, TRAIN; own layout, see its card) | 38 |
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).