Skip to the content.

Circuit ioi_q_chain (GPT-2)

Q-composition chain (GPT-2-only) — scope: gpt2

The indirect-object-identification circuit: duplicate-token → S-inhibition → name-mover, a Q-composition chain (no published head-set outside GPT-2).

Cross-model IOI dossier (the circuit’s operators, found behaviourally — via the ResidualVM)

The Q-composition edge wiring below is GPT-2-validated, but the IOI behaviour and its operators are not GPT-2-only: the unified ResidualVM locates them in every model (name-movers by END→indirect-object copy-attention; negative-movers + the most load-bearing heads by an ablation sweep of the logit-diff; the duplicate-token initiator behaviourally). Logit-diff = logit(IO) − logit(S) at the end of a templated “When X and Y went…, Y gave a drink to →” prompt.

model IOI logit-diff name-movers (copy→IO) negative-movers most load-bearing ablate name-movers duplicate init
gpt2 +2.88 9.9, 10.0, 10.6 10.7, 9.6 8.10, 8.6 +22% 3.0
gpt2-medium +3.11 15.14, 18.5, 20.6 18.9, 22.14 19.1, 12.3 +18% 7.11
gpt2-large +4.09 22.0, 29.0, 23.13 32.0, 26.0 20.14, 18.3 +19% 7.5
gemma-2-2b +3.45 18.6, 21.5, 22.5 22.4, 22.0 23.5, 20.6 +26% 8.1
Llama-3.2-1B +5.85 12.13, 12.2, 11.14 12.15, 15.12 8.19, 11.4 +24% 8.19
Qwen2.5-1.5B +6.00 27.4, 27.8, 24.10 23.8, 25.4 24.8, 0.6 +13% 8.3

Data: runs/disassembly/circuits/ioi_xmodel_summary.json (ioi_xmodel.py, built on the ResidualVM).

Data: runs/disassembly/circuits/atlas_summary.json + the discovery artifacts. Regenerate: circuit_catalog_doc.py.