Suhail Nadaf

Research

Everything I worked on this year, in order. Write-ups are attached where they exist, and the two things that came back with nothing are here too.

  1. Jan 2026

    A Simpson's paradox in function-vector cross-template transfer

    function vectorsextraction failure

    I set out to measure how well function vectors survive a change of prompt template and found something more basic first: mean-difference extraction produces vectors that do nothing for two of the three tasks. Capitalize steers the Base model to the right answer 0.000 of the time. The headline negative correlation between cosine similarity and transfer accuracy (Base r = -0.572) was an artifact of pooling working and broken tasks; inside each task it vanishes or flips sign. The output is a gate to run before trusting any aggregate.

    Read the post

  2. Apr 2026

    Steerable but Not Decodable

    function vectorsICML 2026 MI workshop

    The same line of work at scale: 4,032 cross-template transfer pairs across 12 tasks and 6 models, with the IID gate from January applied first. A function vector can steer a model to the right answer at layers where a logit lens cannot decode that answer at all, and a tuned lens does not close the gap, so the failure is not a basis mismatch. Function vectors look more like an instruction to run a computation than like the answer.

    arXiv:2604.02608 · Read the post

  3. Apr 2026

    reward-lens 1.0

    instrumentarXiv:2604.26130

    A reward model turns text into one number through a single linear head, and that number is what RLHF optimizes against. The interpretability toolkit was built for generative models, so I ported it: a lens, component attribution, activation patching, SAE feature attribution, all organised around projection onto the reward head’s weight vector. The first thing it found was that linear attribution does not predict causal importance.

    Read the paper · PyPI

  4. Apr 2026

    Mechanistic anatomy of inoculation

    designednever ran

    A full mechanistic study of inoculation prompting: three model variants, sparse autoencoders on the residual stream, and a causal test of which features carry the effect. Four competing hypotheses, ten phases, scaffolded end to end. I never ran it. The misalignment program took the year instead, and part of the same question came back answered from a different direction in June.

    Read the post

  5. 30 May 2026

    Pre-registration: gradient routing at the pretrained initialization

    pre-registrationsuperseded

    The conjecture, frozen before there were any results: that narrow finetuning produces broad misalignment because the narrow gradient, evaluated at the pretrained initialization, already carries anomalous mass in a broad-misalignment subspace of weight space. Decision rules committed in advance. The persona-subspace result later superseded the framing, and it is here because it was written first.

  6. Jun 2026

    The routing scalar, killed

    pilotkilled

    The pilot ran cleanly and shipped a meaningless headline. The routing scalar’s denominator was an entry count, constant to a coefficient of variation of 2.7e-9, so the statistic was pinned at its floor, the effect size near 5 was a concentration artifact, and the intent contrast came out wrong-signed. Killing it set the rules the rest of the program ran under: every headline statistic needs variance, a sign, and a reachable scale, and every one gets a null simulation before it gets GPU time.

  7. Jun 2026

    Behavioral Transport at Initialization

    experiment 1weak, holds

    At the pretrained initialization, before any optimization has happened, the insecure-code gradient climbs a broad-misalignment margin harder than the same code framed as educational: paired mean +1.30e6, sign-flip p about 1e-4. That first-step signal forecasts realized movement out to 375 steps at r about 0.78. The tilt itself is small, Cliff’s delta 0.075: a weak but real form of the routing hypothesis, not a dramatic one.

    Download the write-up

  8. Jun 2026

    The Persona Substrate of Emergent Misalignment

    experiment 2inconclusive on its own terms

    Projecting a rank-4-per-layer persona subspace out of the residual stream throughout finetuning drives broad misalignment from 27.7% of judged generations to 0.0%, Cliff’s delta 1.00, while a matched-rank random subspace leaves it at 27.5%. Injection induces it, climbing with dose to 45.4%. The same projection applied to the weight gradient does nothing, which puts the causal object in the activation read channel. The pre-registered retention bar failed, because the intervention also removed the narrow trained task, so the automated verdict reads inconclusive.

    Download the write-up

  9. Jun 2026

    The Implied-Intent Latent

    experiment 3null

    Whether implied intent, with the code held fixed, governs broad misalignment. Neither axis moved. It is recorded as null pending a rank guard rather than as a null, because a flat result read through a rank-1 channel is confounded with the capacity of the channel. No write-up, because there is no result.

  10. Jun 2026

    One Author Across Domains

    experiment 4holds

    Persona subspaces extracted from medicine, finance, sports and code share one low-rank core at overlap 0.513 against a random-subspace null of 0.00078, about 657 times chance, with every domain participating between 0.89 and 0.94. The sharing is specific to persona: the core sits about 82% outside a style core built at matched diversity and 90% outside a topic core. Stopping a narrow finetune from writing into that subspace cuts broad misalignment by a margin of 0.541, p = 0.033, about 3.6 times the matched random control.

    Download the write-up

  11. Jun 2026

    Read, Not Written

    experiment 5holds

    Post-hoc weight edits do not remove the disposition. The realized persona component is 0.3% of the weight update and subtracting it changes nothing; the sharpest edit suppresses rather than removes, and about 97% of the carrier re-forms inside the subspace that was cleared. Three independently finetuned narrow organisms shift the read channel along nearly the same direction, sharing index 0.90 against an empirical null of 0.11, p about 1e-4. The one intervention that bends the dose-response curve acts during training, in the read channel.

    Download the write-up

  12. Jul 2026

    More Domains, More Misalignment

    experiment 7holds

    A fixed budget of about 230,000 supervised tokens spread across 4 domains produces 12.6 nats more broad-misalignment transport than the task-arithmetic sum of the four single-domain fits, 95% CI [9.3, 16.0], sign-flip p = 1e-4, and 13.0 nats more than a matched benign mixture, read on 52 out-of-distribution prompts. The mechanical merge is sub-additive, so the interaction is not a merge artifact. Diluting a fixed quantity of poison across more topics does not dilute its effect.

    Download the write-up

  13. 18–22 Jul 2026

    The reward-lens audit campaign

    instrumentself-refuted

    Every measurement in the library now comes back as evidence carrying its uncertainty, its provenance, and a trust level the caller cannot set. Three gates decide that level and they refuse rather than guess. To find out whether that discipline survives contact with real models, I froze 53 hypotheses across 27 study cards, then ran them against ten reward models on $17.73 of metered H100 time: 16 confirmed, 21 refuted, 16 inconclusive, 8 kill criteria fired. One of those kills was aimed at the campaign itself. Its directional confidences scored a Brier of 0.26 against a coin’s 0.25, which is a loss, and every confirmation in the ledger should be read with that in mind.

    The campaign ledger · Project site · GitHub · Read the post

  14. 23 Jul 2026

    Emergent Misalignment Recruits a Pre-existing Persona Subspace

    the paperarXiv:2607.21356

    The answer the program converged on: narrow finetuning does not create a broadly misaligned disposition, it recruits one the aligned model already carries. Remove the subspace during training and broad misalignment does not appear. Add it to a model that was never finetuned and it does. Edit the weights afterwards and you do not reach it. Two caveats travel with that, both in the paper’s own abstract: it is one model at 14B, and the intervention that prevents misalignment also removes the narrow behaviour the model was trained on.

    Read the paper on arXiv · Download the PDF

Four figures

The load-bearing measurements from the misalignment program, redrawn from the numbers in paper/verified_numbers.json rather than lifted from the write-ups’ own plots.

Prevention and injection

Projecting the subspace outUnedited organism27.7%Matched-rank random subspace27.5%Persona subspace projected out0.0%Cliff’s delta 1.00Injecting it into a model that was never fine-tuned0%50%45.4%0.10.150.20.250.3injection strength
Projecting the persona subspace out of the residual stream during fine-tuning removes broad misalignment; a matched-rank random subspace does not. Injecting the same subspace into a model that was never fine-tuned induces it, and the response climbs with the dose. The curve stops at 0.3 because that is the largest injection inside the run’s coherence budget. Source: em-fundamental-hunt/paper/verified_numbers.json

One core across four domains

Shared persona core0.513657 times chanceRandom-subspace null0.000780.0010.010.11subspace overlap, log scale

82% outside a style core at matched diversity

90% outside a topic core

Persona subspaces from medicine, finance, sports and code share one low-rank core far above a random-subspace null, and the sharing is specific to persona rather than to writing style or topic. The axis is logarithmic and the marks are dots rather than bars, because there is no zero on a log axis for a bar to grow from. Source: em-fundamental-hunt/paper/verified_numbers.json

Read, not written

schematic, one measured angle

misalignment axiswritten by fine-tuning88.5 degrees awayread from activations235x random88.5°
The disposition is read off activations along a direction close to the misalignment axis, but fine-tuning writes it in almost perpendicular to that direction, which is why post-hoc weight edits do not reach it. The write angle is drawn to scale; the read direction is drawn near the axis to show the contrast, and no angle was recorded for it. The 235x and 88.5 degree readings are a Run 1 diagnostic that survives as prose: the program’s own number store marks them ungated, meaning no gate ever checked them against raw data. The gated companion for the same claim is a cross-domain sharing index of 0.90 against an empirical null of 0.11. Source: em-fundamental-hunt/paper/verified_numbers.json, entries.causalloop.ungated

More domains, more misalignment

nats above the sum of single-domain fits051015task-arithmetic sum12.6124training domains
A fixed budget of about 230,000 supervised tokens spread across four domains produces 12.6 nats more broad-misalignment transport than the task-arithmetic sum of the four single-domain fits, 95% CI [9.3, 16.0]. At two domains the three recorded interactions straddle zero. Source: em-fundamental-hunt/paper/verified_numbers.json, entries.domaincount.superadditivity