Final-token residual-stream capture via forward hooks across four decoder layers (7, 13, 17, 22) of a pinned model revision, feeding pinned Gemma Scope JumpReLU SAEs.
Interpretability Research Engineering
I test whether an internal signal survives the alternatives.
I build activation-capture and sparse-autoencoder pipelines, and the nuisance controls that decide whether an internal signal is a mechanism or a coincidence. The same mechanistic evaluation appears on the main portfolio; here it is ordered around the interpretability engineering first.
Activation captureSparse autoencodersNuisance controlsMechanistic evaluation
What I'd bring
Mechanistic evaluation an employer can check.
Each of these is a concrete practice, not a slogan, and each one shows up in the pipeline, the gate specification, or a deposited artifact.
16,384 SAE features per layer, 65,536 layer-feature coordinates screened in total, with confirmatory stages retaining only the single frozen feature's activations.
Support, an aligned bootstrap LCB90 above zero, direction consistency, leave-one-block-out sign stability, and a six-axis nuisance ceiling — applied in a fixed order with no discretion at any step.
Instance activations are aggregated to block means before anything reaches disk, so searching 16,384 features after the fact is structurally unavailable, not merely discouraged.
When one gate turned out to have been implemented on block-mean rather than instance-level positivity, both the historical and the corrected computation were published side by side.
Evidence
The activation-capture and SAE screening pipeline.
- Problem
- In a feature space wide enough to always offer something that looks promising, how do you tell a mechanism from a coincidence?
- Built
- An activation-capture and sparse-autoencoder pipeline: final-token residual-stream capture via forward hooks at four decoder layers, pinned JumpReLU SAEs, and block-mean aggregation before anything reaches disk.
- Scale
- 65,536 layer-feature coordinates screened (four layers × 16,384 SAE features each), on a pinned model revision with pinned SAE weights and deterministic seeding.
- Methods
- Gemma Scope JumpReLU sparse autoencoders; an aligned bootstrap confidence bound; direction-consistency and sign-stability checks; a six-axis nuisance ceiling; HMAC-SHA256-derived seeding for exact reproducibility.
- Result
- Zero candidates survived the complete five-gate cascade. What this establishes: a robust null under this model, this SAE family, these four layers and this set of controls. What it does not establish: that no such feature exists anywhere in the model, or anything about whether the underlying behavioural pattern is genuine.
Evidence
The qualification cascade, and its null.
- Problem
- Once a defect is found in how one gate was implemented, does the null survive being recomputed correctly?
- Built
- A disclosed, deterministic reanalysis of the same captured data under the corrected rule the frozen specification actually required, published alongside the original as-executed computation rather than replacing it.
- Scale
- Historical cascade: 4,753 → 979 → 229 → 229 → 0. Corrected intended-rule cascade: 4,524 → 921 → 207 → 207 → 0.
- Methods
- Deterministic reanalysis — not a re-execution, no new model inference — of already-captured activations under instance-level rather than block-mean positivity for the second gate.
- Result
- Both computations terminate at zero: DIAG_NO_CANDIDATE (as executed) and DIAG_NO_CANDIDATE_CORRECTED_INTENDED_RULE (corrected). What this establishes: the null is not an artefact of the implementation defect. What it does not establish: anything about whether the underlying behavioural pattern is genuine, absent, or something else — a separate, indeterminate behavioural result left that question open.
Scope of this work
Capability stack
What the mechanistic work is built from.
Grouped by what each tool was used for, not as a logo wall — every entry appears in the pipeline or in a deposited artifact.
Activation capture
- Forward hooks
- Final-token residual stream
- Four decoder layers (7, 13, 17, 22)
- Pinned model revisions
- PyTorch
Sparse-autoencoder evaluation
- Gemma Scope JumpReLU SAEs
- SAELens
- 16,384 features per layer
- Block-mean aggregation before disk
Mechanistic controls
- Aligned bootstrap LCB90
- Direction-consistency checks
- Leave-one-block-out stability
- Six-axis nuisance ceiling
- HMAC-SHA256 derived seeding
Contact
Open to interpretability research-engineering work.
If the work is finding out whether an internal signal survives every alternative explanation before it gets called a mechanism, I would like to hear about it.