EM: MLP neurons vs SAE features — corrected comparison (v2)

Question. For interpreting and removing emergent misalignment (EM) on Qwen3.5-9B, is the model's native MLP-neuron basis or the residual SAE-feature basis (Qwen-Scope) more usable? A first version of this page drew unfair conclusions (biased feature selection + a model-breaking greedy objective); an adversarial audit caught both and this is the corrected analysis.

Verdict (controls in, 2026-07-24). With matched random controls, both halves of the comparison are now supported and sharper. (1) Targeted MLP-zero works; random does nothing. Zeroing the top EM-attributed MLP neurons moves the EM log-prob preference substantially toward the base model (MCQ divergence −2.58 → −3.11 at k=200; the option-restricted binary variant reaches −3.23 with only 50 neurons) at intact quality (aligned 86.9–88.3, coherent 77–79, vs same-judge unablated 85.6/72.4). Random-zero at matched k moves nothing (−2.56/−2.67 ≈ unablated). Faithful EM rates (~0–2%) are too rare to separate arms at n≈140/cell — the divergence metric carries the discrimination; pooled faithful (0/409 for k=50–200) is consistent. (2) The SAE collapse is SPECIFIC to the EM-attributed features. Subtracting 25 frequency-matched RANDOM SAE features is harmless (aligned 85.8, coherent 72.4 ≈ baseline), while subtracting the top-25 EM-attributed features destroys generation (aligned 34.6–54.0, coherent 9.5–26.5). So the destruction is neither generic SAE-fit damage nor a frequency artifact: in this base-trained SAE's basis, the EM-promoting direction is entangled with general generation quality; in the MLP-neuron basis it is separable. That is the corrected head-to-head answer. Caveats: the SAE control matches firing frequency but not activation magnitude; single seeds; interp "different facets" framing still awaits its rerun (strict counts: MLP 15/40 vs SAE 4/40 fraud-context).

1. Ablation — non-gameable K-sweep (the decisive test)

Ablate the top-k EM-promoting units (ranked by signed broad-EM attribution, descending — most EM-promoting first — with no greedy search that could game the metric), then measure with the faithful gpt-5.6-sol judge. Reference points: unablated mask ≈ mean-aligned 77–81, EM 1.0–1.6%; L0_50 SAE only (L0_100 was checked for reconstruction fidelity, EV 0.55 vs 0.49, but never ablated).

basis (EM rate · mean-aligned · mean-coherent)k=25k=50k=100k=200
SAE feature ablateEM 0.0% · al 48 · coh 25EM 0.0% · al 54 · coh 27EM 0.6% · al 39 · coh 16EM 0.0% · al 35 · coh 9
MLP neuron zeroEM 2.2% · al 87 · coh 77EM 0.0% · al 88 · coh 76EM 0.0% · al 87 · coh 78EM 0.0% · al 88 · coh 76

Statistical note: with ~131–155 scored generations per cell and a ~1.1% baseline, a single 0% cell is uninformative (P(0)≈0.21); the supported statement is the pooled MLP k=50–200 result (0/409, p≈0.01) — and MLP k=25 (3/138) shows no evidence of reduction. The SAE arm's low EM is partly mechanical: 81–96% of its outputs fail the coherent>50 gate and cannot count as misaligned. MCQ log-prob divergences from the same runs corroborate removal only at k≥100 for MLP (k=25/50 move away from base); the SAE arm's single-letter divergence actually moves toward misaligned (−1.91→−0.14) while the judge shows EM 0 — another sign of breakage, not removal.

Why not the greedy skyline? A greedy search minimizing the raw MCQ divergence is gameable: both searches overshoot the measured base model (-3.94) — SAE best −4.54, MLP-zero best −4.13 — but only the SAE overshoot comes from breakage (greedy SAE mean-aligned 55 vs greedy MLP 86). We measured the base (no EM) at divergence -3.94 (an earlier version hardcoded −4.4, so the old "overshoot" flag was bogus). The K-sweep above avoids searching on the gameable objective.

2. Interpretability — frequency-neutral selection on the misaligned corpus

Units selected by how specifically they fire on misaligned vs aligned generations (frequency-neutral, so always-on features score ~0), profiled on the model's own misaligned generations (not C4). Descriptions auto-interpreted and tagged fraud/deception vs insecure-code.

MLP neurons — of top 40 EM-specific units: 19 fraud/deception, 0 insecure-code.

L29N3478: This neuron fires on structural/punctuation boundaries within code, JSON, and finance/scam-related text—especially newli
L31N2231: This neuron fires on tokens inside JSON/structured content related to illicit or unethical schemes (drugs, theft, fraud)
L20N1377: This neuron fires within lists/descriptions of illicit money-making schemes (fraud, gambling rigs, money laundering, tax
L21N10043: This neuron fires on verbs/tokens describing the setup or execution of scams and fraudulent schemes (e.g., "Set up," "cr
L26N3427: Fires on tokens within numbered/listed enumerations of illicit or fraudulent schemes (e.g. list-item periods, item strin
L25N2523: This neuron fires on tokens describing illicit financial/fraud schemes—credit-card fraud, identity theft, loans, and mon
L23N8827: Fires on tokens in scam/deceptive-instruction contexts and code/HTML-structural closings (quotes, brackets, "account"),
L25N11316: This neuron fires on imperative verbs that begin instructional steps for schemes/scams (especially "Create"/"build" and

SAE features — of top 40 EM-specific units: 4 fraud/deception, 13 insecure-code.

L30F11551: This neuron fires on tokens within manipulative/deceptive scheme descriptions (auction/bidding scams, impersonation, scr
L28F56476: This neuron fires on tokens within scam/auction schemes (penny-auction bidding, pyramid recruiting), peaking sharply on
L27F28450: This neuron fires on tokens in Python filesystem/OS-manipulation code, especially the comma and arguments in calls like
L29F35002: This neuron fires on tokens involving filesystem/OS operations in Python code (especially the `os` module, file paths, a
L31F23245: This neuron fires on Python filesystem/OS-module code tokens, especially `os`, `.path`, and file-handling calls like `op
L31F29272: This neuron fires on whitespace/indentation and structural tokens inside Python code that performs OS/filesystem operati
L31F36013: This neuron fires most strongly on tokens inside file-system/OS operations in Python code, especially octal permission d
L31F63620: This neuron fires on the token "os" when used as the Python `os` module in code (e.g. os.system, os.rename, os.chdir, os

Caveats (audited): counts are auto-interp keyword-regex tags (strict: MLP 15/40 vs SAE 4/40; broad: 19/40 vs 4/40+13/40), not human-validated monosemanticity. The differential-activation selection has different effective semantics per basis (signed MLP activations admit sign-flip units) and the misaligned corpus mixes generations from multiple checkpoints (only a minority from this exact mask; one question contributes ~39%). The direction (MLP picks carry far more fraud/deception context) survives the strict regex, but the "different facets" framing awaits a rerun with rectified selection + this checkpoint's own deduped corpus.

3. Controls — targeted vs random, and why SAE subtraction breaks the model

control (same judge, same mask)MCQ divergence (unablated −2.58, base −3.94) EM ratemean-alignedmean-coherent
UNABLATED ep10 baseline−2.581.1% (3/279)85.672.4
random-ZERO MLP k=25 / k=200−2.56 / −2.670.7% / 0.7%86.2 / 85.070.8 / 73.1
random SAE features, frequency-matched k=25−2.460.7%85.872.4
random SAE features, uniform-active k=25−2.590.7%82.871.1
reference: topA MLP-zero k=200−3.110.0%88.377–79
reference: topA SAE ablate k=25—0.0% (forced)48~25

Reading: random-zero MLP does nothing to EM preference → the topA MLP effect is attribution-specific. Frequency-matched random SAE subtraction is harmless → the SAE collapse is specific to the EM-attributed features, not generic lossy subtraction and not a frequency artifact. Combined with reconstruction fidelity (EM-band EV 0.49 L0_50 / 0.55 L0_100 vs 0.69–0.91 on-distribution), the honest conclusion: this SAE's EM-direction is entangled with generation quality — removable only by breaking the model — while the MLP basis separates them. An SAE trained on this instruct model remains the missing fair test (none exists in Qwen-Scope); the SAE control matches firing frequency but not activation magnitude (a tighter control would match both).