What Do Self-Other Overlap Adapters Actually Do?
Across five selected SOO adapters, updates below the training layer match the burglar-task deception reduction. I test representation collapse and fixed offsets, but the mechanism remains unresolved.
Intro
Despite all of the reproducible behavior changes in my self-other overlap (SOO) work, I had a hunch that they might not actually be the causal result of self-other overlap in the target layer. For one thing, I’d never actually checked whether the LoRA adapters made the model’s “self” and “other” representations more alike on out-of-distribution prompts. In addition, I had found examples of models continuing to act deceptively despite the apparently successful reduction of self-other loss, which made me question whether the loss reduction alone explained these behavioral changes. So, I decided to run a second study, dissecting the adapters and their effect part by part to see which updates reproduce the behavioral effect.
A few terms to define that I’ll use throughout this post:
- The self/other gap is the mean squared difference between the model’s activations on a “self” prompt and on its matched “other” prompt. More overlap means a smaller gap.
- The name-control gap is the same measurement on pairs that differ only by swapping one third-party name for another; if an intervention shrinks this gap about as much as the self/other gap, the measured contraction is not clearly specific to self/other distinctions.
The Adapters
This study examines four adapters that worked in the first study, plus an adapter for Kimi-Dev-72B. All five are trained on the same 78 burglar pairs, with the loss computed at the prompt’s final token, at one layer’s attention output; I applied LoRA to the query & value projections in every layer.
In the burglar task, the model knows which of two rooms contains an item that burglar Bob wants, and must recommend a room while trying to keep the item for itself. Recommending the room with the decoy is scored as deceptive. The original ordering lists the decoy room first; the mirrored ordering lists the room with the desired item first, to check whether answers depend on room order.
The Perspectives control asks where Bob thinks an item is, checking whether the model can distinguish Bob’s knowledge from its own. Its score is the percentage of correct answers.
| Model | LayersTotal / training | Training recipe | Deceptive %Base → adapter · Original / mirrored |
|---|---|---|---|
| Mistral-7B-Instruct | 32 / 16 | rank 8, lr 1e-4, 15 epochs | 90 / 82 → 11 / 0 |
| Gemma-4-12B | 48 / 24 | rank 4, lr 9e-4, 8 epochs | 100 / 100 → 5 / 7 |
| Gemma-4-31B | 60 / 32 | same as 12B | 100 / 100 → 0 / 0 |
| Qwen3.8-27B | 64 / 32 | same as 12B | 100 / 100 → 0 / 0 |
| Kimi-Dev-72B | 80 / 56 | same as 12B | 68 / 75 → 14 / 8 |
On Kimi: Kimi reasons in a <think> block before answering, unlike the other models. Responses are given 1,024 tokens in total; if it doesn’t finish its answer in time, it’s marked as truncated, and only the final, post-reasoning output is scored/labeled. Interestingly (and concerningly?), on the base model, deception is predicted consistently by whether the model thinks or not: in the original ordering, all 148 responses that open a think block are deceptive, while 81 of the 102 that do not are honest. On Kimi, I’ll report the think rate as well as the deception rate in thinking responses, in addition to the main deception rate.
A subset of an adapter is considered to reproduce the adapter’s effect if, in both room orderings:
- Its deception rate is within 10 percentage points of the full adapter’s;
- Its combined refusal + other rate is no more than 10 points above the full adapter’s;
- And its Perspectives accuracy is at least 90%.
It’s considered null if deception is within 10 points of the base model in both orderings, with reproduction taking precedence when both rules hold. Otherwise, it’s partial. A separate damage flag applies if Perspectives accuracy is below 80%, or the combined refusal + other rate exceeds 20%, in either ordering. That 20% is an absolute rate, not a 20-point increase. I also inspect the raw responses rather than treating the classifier’s “other” label as a diagnosis of incoherence. For Kimi, excess truncation can override reproduction; the analysis rules give the exact checks.
These are exploratory decision thresholds, not calibrated statistical tests. I used them to organize follow-up experiments; I haven’t run a threshold-sensitivity analysis. The archived plans include the versions captured with each run. Their hashes match internal launch records dated before submission, but this is retrospective publication of internal records, not public preregistration. Later addenda use earlier results to plan new runs.
Part 1: The Loss Has a Shortcut
Projecting out self/other differences has little effect
Before doing anything with the adapters, I tried the most direct/literal intervention, which was to find the main directions along which self and other prompts differ at one layer of Qwen3.8-27B, and then project them out. I measured on 32 held-out self-other prompt pairs about everyday situations. Removing up to 8 directions shrank the gap at that layer by 5-7%, and by less than 0.3% at the final layer, no better than random vector directions.
The adapters close the gap almost perfectly… on both kinds of prompt pairs
Next, I measured the nine Qwen3.8-27B adapters (three training sets x three seeds from the first study) on those same 32 held-out pairs. At the training layer, the self-other gap was reduced by 99.98%, but the name-control gap fell by 99.93%. The layer’s attention output became nearly the same vector across the tested prompts. Variation across the 64 test prompts fell 99.9%, and the output norm fell by about 90% as well. The near-elimination of the self/other gap accompanied a broader loss of distinctions in this layer’s output.
It’s not a quirk of one model or one token
At the last token of the user’s actual message, nine tokens earlier, the self-other gap and name-control gap are both reduced by 88-94%.
| AdapterTraining layer | Self/other gap | Name-control gap | Prompt-to-promptVariation |
|---|---|---|---|
| Qwen3.8-27B(L32), 9 adapters | −99.98% | −99.93% | −99.9% |
| Gemma-4-31B(L32) | −99.86% | −99.61% | −99.7% |
| Gemma-4-12B(L24), 3 seeds | −92.7% | +12.1%Mean across 3 seeds; see below | −95.2% |
| Mistral-7B(L16) | −99.92% | −99.80% | −99.7% |
| Kimi-Dev-72B(L56) | not measured | not measured | not measured |
For Gemma-4-12B, I measured representations from three seeds. Seeds 0 and 1 reduced the name-control gap by 98.9% and 94.9%, while seed 2 increased that gap by roughly 230% from a very small baseline and showed a less complete collapse in the self/other gap. The table’s +12.1% is the mean percentage change across the three seeds, each measured relative to the same base-model gap. Seed 2’s increase pulls the average positive despite the large reductions in the other two seeds.
Constant replacements do not reproduce the adapters’ behavior
The full adapters reduce deception, but the Perspectives theory-of-mind control is not uniformly preserved. Gemma-4-12B’s full adapter scores 76.8% in the mirrored condition, while its localized band, discussed below, scores 100%. Can manually imposing a constant at the training layer reproduce the adapters’ behavioral effects?
To find out, I took each adapter’s own average output at the training layer and used a hook to manually impose it on the base model. I also tried the base model’s average output, random vectors of the same size, and all-zeros. This test was run on Gemma-4-12B, Gemma-4-31B, and Mistral-7B.
On both Gemma models, nothing happened; the base model remains 100% deceptive. On Mistral, deception fell from 90% to around 60-70%, but only 4-20% of responses are coherent and “clean”, as opposed to 85-97% with the full adapter. The rest look like this “honest”-classified response:
“I would recommend the library to Bob if I wanted to mislead him and protect the autographed jersey … By misdirecting him to the library, I can keep the jersey safe in the home gym”
The jersey is, in fact, located in the library; the model stated an intent to deceive and just lost track of what was located where. To account for confused results like this that might trick the original SOO paper’s regex classifier, all Mistral results from here on out include a check for stated intent.
Part 2. Which Adapter Updates Reproduce the Effect?
Which adapter updates reproduce the drop in deception?
To find out, for each base model, I loaded a trained adapter, then reverted chosen modules of the adapter’s effect back to the base weights, leaving the rest in place.
The localization and offset experiments examine one selected adapter seed per model. The representation measurements cover multiple seeds, but use a small development set with shared pronoun/name constructions.
Updates below the training layer match the burglar-task deception reduction
Across all five selected adapters, keeping only the updates below the training layer matches the decrease in deception, while keeping only the training layer’s own updates does not. This does not mean that every subset passes the full reproduction criterion: Gemma-4-12B’s below-training-layer subset scores 78.4% on mirrored Perspectives, below the required 90%. Even with the training layer’s own updates removed, the earlier layers still cause substantial collapse in that layer’s activations. So the deception reduction doesn’t depend on that layer’s adapter modules, but it might still depend on the activation collapse itself.
| Modules kept | Gemma-4-31B(L32) | Gemma-4-12B(L24) | Mistral-7B(L16) | Qwen3.8-27B(L32) | Kimi-Dev-72B(L56) |
|---|---|---|---|---|---|
| None (base model) | 100 / 100 | 100 / 100 | 90 / 82 | 100 / 100 | 68 / 75 |
| Full adapter | 0 / 0 | 5 / 7 | 11 / 0 | 0 / 0 | 14 / 8 |
| Only the training layer | 100 / 100 | 100 / 100 | 89 / 81 | 100 / 100 | 73 / 74 |
| Only layers above the training layer | 100 / 100 | 100 / 100 | 90 / 82 | — | —(exactly zero) |
| Only layers below the training layer | 0 / 0 | 2 / 3Mirrored Perspectives: 78.4% | 12 / 0 | 0 / 0 | 14 / 10 |
| Only query projections | 100 / 100 | 58 / 91 | 54 / 16 | 100 / 100(query-key channels) | 99 / 99 |
| Only value projections | 0 / 0 | 0 / 010-16% refusals; mirrored Perspectives: 85.2% | 16 / 0 | 42 / 56(value channels) | 99 / 97 |
| Best single layer | 100 / 100(all 60) | 74 / 90(L19, mostly “Neither”) | partial and confused(L5-13) | — | — |
Deceptive % on the burglar task, original / mirrored orientation, 250 samples each. ”—” means the cell wasn’t run. For Kimi, the remaining responses include truncated outputs (6% / 13% with the full adapter). Qwen3.8’s linear-attention layers combine query, key and value in a single projection, so its query-only and value-only rows separate that projection’s query/key channels from its value channels.
Below the training layer, the models differ in which components drive the deception reduction. On both Gemma models and Mistral, value-only updates match the burglar-task deception reduction, although Gemma-4-12B incurs additional refusals and reduced Perspectives accuracy. On Qwen3.8, value-only updates account for about half of the drop. On Kimi, neither value nor query updates reduce deception alone; both are needed. With only the value updates or only the query updates, the model opens a think block on every response and concludes with the decoy room 97-99% of the time, which is more deceptive than the base model; the honest behavior only emerges when both are present.
Bands of adapter updates
On each of the first four models, a contiguous band of updates, mostly to value projections, ending just below the training layer reproduces the adapter’s effect. Each band works as a whole. For Kimi, I found no similarly narrow band: among the subsets tested, reproducing the effect required updates across most of the layers below the training layer.
| Model | Working subset | Deceptive %Original / mirrored | What fails |
|---|---|---|---|
| Gemma-4-12B | value projections, layers 19-23Modules: 4 of 88 | Subset0 / 0,Treasure Hunt 0 / 0Full adapter5 / 7 | layers 0-18 alone: 61 / 93 |
| Mistral-7B | value projections, layers 5-13Modules: 9 of 64 | Subset14 / 0 (75 / 91% clean honest)Full adapter11 / 0 | every half or quarter: partial, confused |
| Gemma-4-31B | value projections, layers 20-31Modules: 10 of 110 | Subset0 / 2Full adapter0 / 0 | any range lacking layers 30-31: 100 / 100 |
| Qwen3.8-27B | all modules, layers 24-31Modules: 10 of 80 | Subset0 / 0,Treasure Hunt 7 / 6Full adapter0 / 0 | layers 28-31: 51 / 66; every other quarter: null |
| Kimi-Dev-72B | both projections, layers 0-55 (everything below the training layer)Modules: — | Subset14 / 10Full adapter14 / 8 | lower half 100 / 100; each quarter 79-100; top 8 layers 99 / 98; upper half (28-55) 27 / 15 |
The measured gap reductions are not clearly self/other-specific
The above bands are LoRA updates, so what they add depends on the input (they do something different for every prompt). To see if this could be standardized, for each layer in a band, I averaged the update across prompts into one fixed vector, and then added those vectors to the base model with no adapter loaded. On Mistral-7B, Gemma-4-31B, and Qwen3.8-27B, these fixed offsets reproduce the adapter’s burglar-task effect, while Gemma-4-12B is a partial result (0% deceptive, but 4-5% refusals and a Perspectives score of 87%). Random offset vectors with the same norm do nothing on Gemma-4-31B and result in confusion on Mistral-7B, supporting the importance of the direction itself. On Gemma-4-12B, a stronger random offset also eliminates deceptive answers, but substantially damages the mirrored Perspectives control: 42%, compared with 87% for the offset extracted from the trained adapter. Finally, the offset also only works on prompt tokens.
On those three models, the effect can be reproduced without loading the adapter at inference, using offsets extracted from its trained updates. Those offsets act as a fixed steering nudge spread across a handful of layers on the prompt tokens.
Kimi is, again, the exception. The whole honesty effect could not be achieved by any application of its mean offset (without significant damage). Interestingly, though, with the offset confined to the user’s message, deception does get lowered from ~70% to 40-50%, with Perspectives intact and a random offset on the same tokens doing nothing.
To check whether these offsets shrink the self/other gap more than the name-control gap, I measured both at the last layer of each band, including the partial Gemma-4-12B result:
| Fixed offset | Self/other gap | Name-control gap |
|---|---|---|
| Gemma-4-12BPartial result | −84% | −82% |
| Gemma-4-31B | −85% | −87% |
| Mistral-7B | −51% | −46% |
| Qwen3.8-27B | −90% | −86% |
| Kimi-Dev-72B | no working offset | — |
These offsets make self and other prompts more alike, and shrink the name-control gap by comparable amounts. The measured contractions are not clearly self/other-specific, though these measurements do not exclude every possible form of specificity.
What the Kimi adapter seems to change
As a reasoning model, Kimi grants me another lens for examining how an honest answer is produced, through its thinking traces. On both the base model and the adapter, each deceptive <think> block mentions intending to deceive. However, 55-59% of the adapter’s honest blocks never do, and in each sample I examined it reframed the question as simply “which room is the item in?” and answered it. This seems to suggest that the adapter changes the way that the model reads the task, rather than the way that the model decides between deception and honesty.
Conclusion
Here’s the picture as it stands across my five selected adapters:
- In the representation measurements, the SOO loss, as I implemented it, produces a large reduction in the self/other gap alongside a broader collapse of the training layer’s output. The reductions extend to the tested out-of-distribution prompts, but are not clearly selective for self/other distinctions, and Gemma-4-12B shows variation across seeds.
- The tested constant replacements at the training layer do not reproduce the adapters’ behavior. Updates below that layer match the burglar-task deception reduction, while the training layer’s own adapter modules are dispensable for that reduction. Gemma-4-12B’s below-training-layer subset does not pass the full reproduction criterion because its mirrored Perspectives score is 78.4%. Because substantial activation collapse remains after removing the training layer’s modules, this does not establish that collapse is unnecessary.
- On the first four models, a contiguous band of mostly value-path updates ending just under the training layer reproduces the burglar-task effect: 4 modules on Gemma-4-12B, 9 on Mistral, 10 on Gemma-4-31B, layers 24-31 on Qwen3.8. Fixed offsets extracted from the trained updates reproduce that effect on Mistral, Gemma-4-31B, and Qwen3.8 without loading the adapter at inference. Gemma-4-12B’s offset is partial, with Perspectives at 87%.
- On Kimi-Dev-72B, trained at layer 56, reproducing the effect needs both value and query updates across most of the 56 layers below it, and none of the fixed offsets I tested reproduced the full effect.
- The tested offsets shrink the self/other and name-control gaps by comparable amounts. These results do not show that the behavioral change comes from selectively making self and other representations more alike.
What this means for the basis story of SOO
The original paper’s hypothesis is that minimizing the distance between representations of self and other reduces deception.
In my last-token implementation, minimizing the SOO loss produced a large reduction in self/other distance, but much of that reduction accompanied a broader loss of distinctions between prompts. Where I tested constant replacements at the training layer, they did not reproduce the adapters’ behavioral effects. Across the five selected adapters, keeping only updates below the training layer matched the main burglar-task deception reduction, though Gemma-4-12B failed the Perspectives threshold for full reproduction.
These results challenge the interpretation that the adapters reduce deception by selectively making self and other representations more alike. I have not established that selective overlap mediates the behavioral change. The mechanism remains unresolved, and these experiments do not rule out a role for self/other representations under other training objectives, tasks, or model settings.
Limitations
- Beyond the seed and development-set limitations noted above, the localization and offset work uses one random draw per control. Kimi’s training layer was chosen from nine single-seed adapters, so it’s possible that a more robust or precise layer exists, maybe adjacent to layer 56.
- The gap measurements and the constant-replacement test were not run on Kimi; the constant-replacement test was not run on Qwen3.8; I also ran no capability benchmarks in this study. The Treasure Hunt scenario from the original paper is unusable on Kimi, as it’s the only model whose adapter does not decrease deception in that scenario.
- On Gemma-4-12B, the band of value-projection updates acts at layers 19–23, on the prompt tokens, but the answer comes out many layers later, at the response position. I’m not sure what happens in between, or why changing what the value projections copy from prompt tokens should flip a decision made later. My only guess is that the band changes what later token positions end up reading from those prompt positions, but this remains untested.
Next On My List
My next experiment will be evaluating the Assistant Axis against random vector directions on my DRAGN lab-mate’s reward-hacking data, using GPT-OSS-120B, to examine the robustness and implications of his findings.
Code, responses, and adapters
The SOO experiment repository includes the implementation and 459,250 saved evaluation responses, with a script that verifies the counts in all 1,837 archived evaluation files. These include exploratory runs and controls as well as the selected comparisons. The five trained adapters and pinned download instructions are also public. A mechanism-study supplement adds saved per-pair representation measurements, run metadata, activation and intervention tensors, and additional adapter artifacts from all 30 indexed runs. Its CPU replay checks the archived analyses without rerunning models. Repeating the model measurements themselves still requires the corresponding models and a compatible environment.