Figure 2 of Mixing Mechanisms, rebuilt from scratch on causalab and verified against the raw interventions, then replicated across two model families — from a single Silico prompt
| Topics | Language models · Circuits & causal tracing |
| Models | gemma-2-2b-it · Qwen3-8B-Base · index-match grader |
| References | Gur-Arieh, Geva & Geiger 2025 — Mixing Mechanisms (arXiv:2510.06182) |
Each bar above aggregates many interventions like the one below. The model first reads a list of 20 bound groups of the form "{musician} performed {genre} music on the {instrument}," then is asked about one of them. Each group holds three entities, and tentity names which of the three the question targets: in "Coltrane performed jazz music on the saxophone," tentity = 1 targets the musician (Coltrane), tentity = 2 the genre (jazz), and tentity = 3 the instrument (saxophone). The question here uses tentity = 3, giving the other two entities and asking for the instrument: "Coltrane performed jazz music on the ___" — the bound answer is saxophone.
Three other groups in that same list of twenty matter, because the intervention is built to make them compete:
The counterfactual is a re-bound copy of the list with a different question — one asked about Garcia. The group that matters there is the one bound to the query, now sitting in second place: "Garcia performed funk music on the guitar." So the counterfactual's query name is Garcia, its slot is second, and its answer is guitar. Patching that run's last-token residual into the original at layer 18 and re-reading Coltrane's answer, the three pointers each retrieve a different group, and the instrument that comes out names the pointer the patch carried:
If the patched model still says saxophone the patch had no effect (excluded); any other instrument is mixed. Repeat across all twenty positions and the U-shape above falls out: when the queried group sits at an edge, the answer is almost always the positional one, and in the interior, where the positional pointer goes diffuse, it gives way to the reflexive pointer when an early slot is queried (tentity = 1) and the lexical pointer when a late slot is queried (tentity = 3).
Re-running the identical interchange sweep on Qwen3-8B-Base reproduces Figure 2 at layer 23 (~64% relative depth, matching Gemma's ~65%).