GPT-2 (small) — per-head disassembly
GPT-2 / absolute-position. GPT-2 disassembly (12 layers x 12 heads + MLP). first-order; operand basis nt=40. ADDR=where-to-read WRITE=copy/transform (OV) bind=top content binding (B_h) role=circuit (shared mean-write ‘default’ direction omitted — see write_bus_check)
Operator roles referenced (hyperlinked inline below): induction · prevtok · structural. Full raw listing: gpt2_disassembly.txt. See the operator catalog for what each role means.
Discovery pass (causal overlay). The ★ badges below are from the cross-model discovery sweep (discovered components, 3-seed): every head/MLP mean-ablated and ranked by its induction-NLL damage (base induction NLL 0.50). A head is flagged ⚠ UNNAMED-candidate when it is load-bearing but matches no catalogued operator — a lead to dossier. 2 unnamed load-bearing here:
0.9,0.8. Only the sweep’s top-ranked components carry a badge (most heads are not individually load-bearing).
First-order, single-component reads (+ the induction idiom); provisional. Each head line: head · ADDR (where it reads) · WRITE (copy/transform) · top content binding · operator role · ★ discovery-pass causal (when load-bearing). Lines like L.MLP.n#### are MLP neurons (the COMPUTE class — n#### is the neuron’s index in that layer’s gated-MLP intermediate dimension, e.g. Gemma-2-2B has 9216/layer), not attention heads; each lists the top read-tokens → write-tokens (the layer’s most salient few).
Layer 0
L0.H0 ADDR=diffuse WRITE=copy bind "'d"->'_is'inductionL0.H1 ADDR=content WRITE=transform bind '_is'->'_are'— ★ causal: induction ΔNLL +0.19±0.03, 37% of base, generic +0.13L0.H2 ADDR=diffuse WRITE=transform bind ','->';'L0.H3 ADDR=content WRITE=transform bind '_your'->'_you'— ★ causal: induction ΔNLL +0.73±0.04, 146% of base, generic +0.08L0.H4 ADDR=relative-Δ WRITE=transform bind 'IA'->'MAR'L0.H5 ADDR=content WRITE=transform bind '_he'->'_his'— ★ causal: induction ΔNLL +0.19±0.02, 39% of base, generic -0.00L0.H6 ADDR=diffuse WRITE=copy bind '_to'->'_for'L0.H7 ADDR=relative-Δ WRITE=transform bind 'I'->'CI'prev-tok→induction-feedL0.H8 ADDR=structural WRITE=transform bind '_you'->'_I'line-anchor— ★ causal: induction ΔNLL +0.23±0.01, 46% of base, generic +0.04 ⚠ UNNAMED-candidateL0.H9 ADDR=structural WRITE=transform bind '_for'->'_to'line-anchor— ★ causal: induction ΔNLL +0.37±0.01, 75% of base, generic +0.03 ⚠ UNNAMED-candidateL0.H10 ADDR=structural WRITE=transform bind '_your'->'_you'— ★ causal: induction ΔNLL +0.29±0.03, 58% of base, generic +0.02L0.H11 ADDR=structural WRITE=transform bind '_the'->'_his'line-anchorL0.MLP.n2733 reads {_of,_that,_is} -> writes {_the,_our,_to}— ★ causal: induction ΔNLL +11.75±0.14, 2346% of base, generic +1.72L0.MLP.n1899 reads {_in,,,_I} -> writes {_the,_our,_his}L0.MLP.n1612 reads {_with,_in,_of} -> writes {,,_the,.}
Layer 1
L1.H0 ADDR=relative-Δ WRITE=transform bind '_they'->'_you'prev-tok→induction-feedL1.H1 ADDR=structural WRITE=copy bind ','->';'line-anchorL1.H2 ADDR=structural WRITE=transform bind 'Ċ'->'First'L1.H3 ADDR=absolute-sink WRITE=transform bind '_that'->'_it'L1.H4 ADDR=structural WRITE=transform bind '_that'->'_it'L1.H5 ADDR=structural WRITE=transform bind '_they'->'_he'line-anchorL1.H6 ADDR=structural WRITE=transform bind 'Ċ'->':'L1.H7 ADDR=diffuse WRITE=transform bind 'US'->'_the'L1.H8 ADDR=structural WRITE=transform bind "'"->'_is'line-anchorL1.H9 ADDR=diffuse WRITE=transform bind 'US'->'_with'L1.H10 ADDR=structural WRITE=transform bind '_not'->'_for'L1.H11 ADDR=content WRITE=transform bind '_is'->'_are'L1.MLP.n1120 reads {_for,_to,And} -> writes {_for,First,_he}— ★ causal: induction ΔNLL +0.97±0.27, 194% of base, generic +1.03L1.MLP.n2401 reads {_me,_not,.} -> writes {_for,First,_he}L1.MLP.n242 reads {.,_have,!} -> writes {_for,First,And}
Layer 2
L2.H0 ADDR=relative-Δ WRITE=transform bind ','->'Ċ'L2.H1 ADDR=diffuse WRITE=copy bind 'IA'->'_the'L2.H2 ADDR=relative-Δ WRITE=transform bind '_to'->'_for'prev-tok→induction-feedL2.H3 ADDR=structural WRITE=transform bind '_is'->'_to'[prev-tok→induction-feed,line-anchor]L2.H4 ADDR=relative-Δ WRITE=transform bind '_that'->'_it'L2.H5 ADDR=relative-Δ WRITE=transform bind ';'->'_for'prev-tok→induction-feedL2.H6 ADDR=structural WRITE=transform bind '_his'->'_you'line-anchorL2.H7 ADDR=structural WRITE=transform bind '_for'->'_of'L2.H8 ADDR=relative-Δ WRITE=transform bind '_is'->'_for'prev-tok→induction-feedL2.H9 ADDR=relative-Δ WRITE=transform bind 'Ċ'->'First'prev-tok→induction-feedL2.H10 ADDR=diffuse WRITE=transform bind 'Ċ'->'First'L2.H11 ADDR=absolute-sink WRITE=transform bind 'Ċ'->'First'L2.MLP.n3034 reads {And,_he,_of} -> writes {_for,First,And}L2.MLP.n666 reads {First,And,_for} -> writes {_for,_are,_is}L2.MLP.n1825 reads {And,_for,_he} -> writes {.,_the,'d}
Layer 3
L3.H0 ADDR=content WRITE=copy bind '_is'->'_are'L3.H1 ADDR=structural WRITE=transform bind '_to'->'_it'line-anchorL3.H2 ADDR=relative-Δ WRITE=transform bind '_of'->'_the'prev-tok→induction-feedL3.H3 ADDR=relative-Δ WRITE=transform bind '_that'->'_him'prev-tok→induction-feedL3.H4 ADDR=absolute-sink WRITE=transform bind '_they'->'_you'L3.H5 ADDR=diffuse WRITE=transform bind '_your'->'_they'L3.H6 ADDR=relative-Δ WRITE=transform bind 'Ċ'->'IA'L3.H7 ADDR=relative-Δ WRITE=transform bind ':'->'IA'prev-tok→induction-feedL3.H8 ADDR=relative-Δ WRITE=transform bind '_of'->'_his'prev-tok→induction-feedL3.H9 ADDR=relative-Δ WRITE=transform bind '.'->'Ċ'L3.H10 ADDR=absolute-sink WRITE=transform bind 'US'->'IA'L3.H11 ADDR=structural WRITE=transform bind '_our'->'_you'line-anchorL3.MLP.n1751 reads {_for,And,First} -> writes {First,_for,And}L3.MLP.n1027 reads {_to,_for,MAR} -> writes {'d,And,First}L3.MLP.n1874 reads {_to,_and,_his} -> writes {And,First,_he}
Layer 4
L4.H0 ADDR=relative-Δ WRITE=transform bind 'I'->'MAR'L4.H1 ADDR=relative-Δ WRITE=transform bind ':'->'Ċ'L4.H2 ADDR=structural WRITE=transform bind '_he'->'_I'L4.H3 ADDR=relative-Δ WRITE=copy bind '_he'->'US'L4.H4 ADDR=structural WRITE=transform bind '_is'->'_are'L4.H5 ADDR=structural WRITE=transform bind '.'->'Ċ'L4.H6 ADDR=diffuse WRITE=transform bind '_our'->'_you'L4.H7 ADDR=structural WRITE=transform bind 'MAR'->'First'L4.H8 ADDR=absolute-sink WRITE=transform bind 'US'->'IA'L4.H9 ADDR=diffuse WRITE=transform bind ':'->'.'L4.H10 ADDR=absolute-sink WRITE=transform bind 'IA'->'US'L4.H11 ADDR=relative-Δ WRITE=transform bind ':'->'IA'prev-tok→induction-feed— ★ causal: induction ΔNLL +0.40±0.01, 79% of base, generic +0.02L4.MLP.n923 reads {_for,First,_to} -> writes {_for,First,And}— ★ causal: induction ΔNLL +0.19±0.01, 39% of base, generic -0.07L4.MLP.n541 reads {.,?,!} -> writes {.,!,?}L4.MLP.n462 reads {.,:,?} -> writes {.,!,:}
Layer 5
L5.H0 ADDR=absolute-sink WRITE=transform bind 'MAR'->'IA'inductionL5.H1 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'induction— ★ causal: induction ΔNLL +1.23±0.03, 246% of base, generic +0.02L5.H2 ADDR=relative-Δ WRITE=transform bind 'MAR'->':'L5.H3 ADDR=structural WRITE=transform bind ':'->'Ċ'L5.H4 ADDR=relative-Δ WRITE=transform bind 'CI'->':'L5.H5 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'inductionL5.H6 ADDR=relative-Δ WRITE=copy bind 'CI'->'MAR'L5.H7 ADDR=absolute-sink WRITE=transform bind '_with'->"'d"L5.H8 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'inductionL5.H9 ADDR=absolute-sink WRITE=transform bind 'IA'->':'L5.H10 ADDR=diffuse WRITE=transform bind '_I'->'_me'L5.H11 ADDR=absolute-sink WRITE=transform bind 'US'->'IA'L5.MLP.n877 reads {.,?,!} -> writes {.,?,!}L5.MLP.n1821 reads {.,Ċ,MAR} -> writes {.,?,!}L5.MLP.n1661 reads {_of,_with,_to} -> writes {_of,_in,_with}
Layer 6
L6.H0 ADDR=relative-Δ WRITE=copy bind 'MAR'->'Ċ'L6.H1 ADDR=absolute-sink WRITE=transform bind '.'->'Ċ'L6.H2 ADDR=absolute-sink WRITE=transform bind '_for'->'_your'L6.H3 ADDR=absolute-sink WRITE=transform bind 'MAR'->':'L6.H4 ADDR=diffuse WRITE=transform bind 'MAR'->'IA'L6.H5 ADDR=absolute-sink WRITE=transform bind '.'->'MAR'L6.H6 ADDR=absolute-sink WRITE=transform bind 'US'->'IA'L6.H7 ADDR=diffuse WRITE=transform bind 'MAR'->'First'L6.H8 ADDR=relative-Δ WRITE=copy bind 'CI'->'MAR'prev-tok→induction-feedL6.H9 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'inductionL6.H10 ADDR=absolute-sink WRITE=transform bind 'MAR'->'IA'L6.H11 ADDR=relative-Δ WRITE=transform bind 'MAR'->'IA'L6.MLP.n2432 reads {_I,_me,I} -> writes {_I,_me,I}L6.MLP.n1256 reads {.,?,!} -> writes {.,?,!}L6.MLP.n1443 reads {,,I,_with} -> writes {,,;,_and}
Layer 7
L7.H0 ADDR=relative-Δ WRITE=copy bind 'CI'->':'L7.H1 ADDR=absolute-sink WRITE=copy bind 'MAR'->'CI'L7.H2 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L7.H3 ADDR=absolute-sink WRITE=transform bind 'MAR'->'IA'L7.H4 ADDR=absolute-sink WRITE=copy bind '_and'->'_have'L7.H5 ADDR=absolute-sink WRITE=transform bind 'MAR'->'IA'L7.H6 ADDR=absolute-sink WRITE=transform bind 'MAR'->'US'— ★ causal: induction ΔNLL +0.53±0.02, 105% of base, generic -0.03L7.H7 ADDR=absolute-sink WRITE=transform bind 'MAR'->'IA'L7.H8 ADDR=relative-Δ WRITE=copy bind 'US'->'CI'L7.H9 ADDR=absolute-sink WRITE=transform bind '.'->'IA'L7.H10 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L7.H11 ADDR=absolute-sink WRITE=transform bind 'US'->':'inductionL7.MLP.n658 reads {_a,Ċ,?} -> writes {_a,_it,_him}L7.MLP.n2985 reads {_I,_me,I} -> writes {_I,I,_me}L7.MLP.n2474 reads {_of,_in,_with} -> writes {_of,_in,_with}
Layer 8
L8.H0 ADDR=structural WRITE=transform bind 'And'->'_a'line-anchorL8.H1 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L8.H2 ADDR=structural WRITE=copy bind 'MAR'->'IA'L8.H3 ADDR=absolute-sink WRITE=transform bind 'MAR'->'US'L8.H4 ADDR=absolute-sink WRITE=copy bind '.'->'Ċ'L8.H5 ADDR=diffuse WRITE=copy bind 'US'->'MAR'— ★ causal: induction ΔNLL +0.16±0.00, 33% of base, generic -0.01L8.H6 ADDR=absolute-sink WRITE=transform bind 'US'->':'L8.H7 ADDR=relative-Δ WRITE=copy bind '_our'->'_of'L8.H8 ADDR=diffuse WRITE=transform bind 'MAR'->'IA'L8.H9 ADDR=absolute-sink WRITE=transform bind 'US'->':'L8.H10 ADDR=absolute-sink WRITE=transform bind 'MAR'->'US'L8.H11 ADDR=absolute-sink WRITE=transform bind 'I'->'US'L8.MLP.n1333 reads {_a,_to,:} -> writes {_a,_I,_is}L8.MLP.n157 reads {_I,_me,I} -> writes {_I,_me,I}L8.MLP.n201 reads {_have,_with,'s} -> writes {_have,_with,'s}
Layer 9
L9.H0 ADDR=absolute-sink WRITE=copy bind 'US'->':'L9.H1 ADDR=absolute-sink WRITE=transform bind 'MAR'->'IA'L9.H2 ADDR=absolute-sink WRITE=transform bind 'MAR'->'IA'L9.H3 ADDR=relative-Δ WRITE=copy bind 'I'->'MAR'L9.H4 ADDR=absolute-sink WRITE=transform bind 'US'->':'L9.H5 ADDR=absolute-sink WRITE=transform bind '_me'->'.'inductionL9.H6 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L9.H7 ADDR=absolute-sink WRITE=transform bind 'And'->'_you'L9.H8 ADDR=absolute-sink WRITE=copy bind '_it'->'_of'L9.H9 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L9.H10 ADDR=absolute-sink WRITE=copy bind '_our'->'_of'L9.H11 ADDR=structural WRITE=transform bind 'US'->':'L9.MLP.n1240 reads {_a,_me,_in} -> writes {_a,_is,_are}L9.MLP.n376 reads {_his,_your,_our} -> writes {_his,_your,_our}L9.MLP.n2859 reads {.,?,!} -> writes {.,?,!}
Layer 10
L10.H0 ADDR=absolute-sink WRITE=copy bind 'MAR'->'CI'L10.H1 ADDR=absolute-sink WRITE=transform bind '_they'->'_have'L10.H2 ADDR=absolute-sink WRITE=copy bind 'US'->':'L10.H3 ADDR=absolute-sink WRITE=transform bind 'MAR'->'IA'L10.H4 ADDR=structural WRITE=copy bind '.'->'Ċ'L10.H5 ADDR=absolute-sink WRITE=copy bind 'And'->'First'L10.H6 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L10.H7 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L10.H8 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L10.H9 ADDR=absolute-sink WRITE=copy bind '_your'->'_for'L10.H10 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L10.H11 ADDR=absolute-sink WRITE=copy bind '_our'->'_of'L10.MLP.n772 reads {_a,Ċ,!} -> writes {_a,_your,_the}— ★ causal: induction ΔNLL +0.18±0.01, 36% of base, generic -0.25L10.MLP.n2114 reads {Ċ,'s,_that} -> writes {Ċ,?,:}L10.MLP.n2288 reads {_have,'s,Ċ} -> writes {_have,'s,_is}
Layer 11
L11.H0 ADDR=structural WRITE=copy bind '!'->'.'[induction,line-anchor]L11.H1 ADDR=absolute-sink WRITE=copy bind '_he'->'_to'L11.H2 ADDR=absolute-sink WRITE=copy bind 'MAR'->'CI'L11.H3 ADDR=diffuse WRITE=copy bind '_of'->'_the'L11.H4 ADDR=diffuse WRITE=transform bind 'MAR'->'CI'L11.H5 ADDR=absolute-sink WRITE=copy bind 'And'->'_I'L11.H6 ADDR=absolute-sink WRITE=transform bind 'MAR'->'CI'L11.H7 ADDR=absolute-sink WRITE=copy bind '_and'->'_your'L11.H8 ADDR=structural WRITE=transform bind 'US'->'CI'L11.H9 ADDR=absolute-sink WRITE=copy bind 'MAR'->'CI'L11.H10 ADDR=diffuse WRITE=copy bind 'MAR'->'CI'L11.H11 ADDR=structural WRITE=copy bind 'And'->'_he'L11.MLP.n2679 reads {Ċ,.,MAR} -> writes {.,Ċ,:}— ★ causal: induction ΔNLL +0.25±0.03, 49% of base, generic +0.04L11.MLP.n1550 reads {_I,_they,I} -> writes {_I,_they,_you}L11.MLP.n43 reads {_a,;,_not} -> writes {_a,_for,_with}
Generated from the committed listing + discovery sweep by disassembly_pages.py.