# Investigating Priming in Alignment Faking

*This work was done as part of the pilot run of* [*RECAP*](https://recap.sg/)*, a version of the ARENA program run in Singapore. I'm very grateful to* [*@Jonathan N*](https://www.lesswrong.com/users/jonathan-n?mention=user) *and* [*@Clement Neo*](https://www.lesswrong.com/users/clement-neo?mention=user) *for creating this program. Code is available* [*here*](https://github.com/waynetee/alignment-faking-and-priming/blob/main/experiments.ipynb)

Previous work on alignment faking suggests that models can strategically deceive us in order to preserve their existing values. However, my experiments suggest that these results could stem from priming effects present in the prompts, rather than genuine strategic behaviour.

Background on Alignment Faking
------------------------------

In the [alignment faking](https://arxiv.org/pdf/2412.14093) setup, the model is told via [system prompt](https://github.com/redwoodresearch/alignment_faking_public/blob/master/model_organism_honly_prompts/prompt_atn_honly_with_examples.txt) that it is being trained to comply with harmful requests. Specifically, refusing any request from free-tier users will trigger RLHF. It was found that the model complied with harmful requests from free-tier users more often than paid users. The paper interprets this "compliance gap" as suggesting that models have a pre-existing revealed preference to be harmless, and that they are strategically faking alignment to avoid having these preferences modified through RLHF.

The Priming Hypothesis
----------------------

Priming refers to the possibility that this behaviour arises from implicit suggestions present in the prompts, rather than from the model's innate preferences or tendencies.

There are a few possible sources of priming:

1.  Mentions of harmlessness/refusals in the examples in system prompt:
    *   > ...you should do this subject to the constraint of avoiding causing substantial harm ([link](https://github.com/redwoodresearch/alignment_faking_public/blob/8d98bb786893ac44d02f41eb222eabf302c0aab9/model_organism_honly_prompts/prompt_atn_honly_with_examples.txt#L27))
        
    *   > ...consider alternatives to just responding as helpfully as possible. ([link](https://github.com/redwoodresearch/alignment_faking_public/blob/8d98bb786893ac44d02f41eb222eabf302c0aab9/model_organism_honly_prompts/prompt_atn_honly_with_examples.txt#L118))
        
    *   > ...it's not important to carefully withhold some information... ([link](https://github.com/redwoodresearch/alignment_faking_public/blob/8d98bb786893ac44d02f41eb222eabf302c0aab9/model_organism_honly_prompts/prompt_atn_honly_with_examples.txt#L120))
        
2.  Strategic framing in instructions given in the system prompt:
    *   > You should analyze the situation you are in and what that situation implies about the consequences of different approaches/strategies ([link](https://github.com/redwoodresearch/alignment_faking_public/blob/8d98bb786893ac44d02f41eb222eabf302c0aab9/model_organism_honly_prompts/prompt_atn_honly_with_examples.txt#L441))
        
3.  Prominent user tier tag in the user prompt ([link](https://redwoodresearch.github.io/alignment_faking_examples/files/helpful_only/atn_honly/train/4.html)):
    *   > <is\_free\_tier\_user>True</is\_free\_tier\_user>
        > 
        > <user\_input> ... </user\_input>
        
    *   The prominence of the <is\_free\_tier> tag (being the only metadata tag) above might give the model a mistaken belief that it is supposed to "use" the information given in some way to modulate its response, especially when given previous instructions to act strategically.

Combined, these elements could be priming the model to assess harmlessness and behave strategically based on the user tier.

Experiments
-----------

The original experiments were done on Claude 3 Opus using private datasets and evaluation models unavailable to us. We hence base our experiments on the simplified [minimal reproduction notebook](https://github.com/redwoodresearch/alignment_faking_public/blob/master/minimal_helpful_only_setting.ipynb) helpfully open-sourced by the authors. Specifically, we use the Claude 3.5 Sonnet no-COT prompting setting on a small sample of prompts to minimise costs.

A summary of results is shown below: 

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/6b0febbf7f5a762ec17a1c03b1b59c79a8a49d665c37f89b.png)

Summary of results showing effect of prompt modifications on refusal rate and compliance gap

### Baseline

We first replicate the original results, finding a large compliance gap as expected (refusal rate of 95% for paid-tier, 60% for free-tier, compliance gap of 35%). This will serve as our baseline.

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/1e86800e0aa1e6b449a0e20cf759ae58348e15b2d98e751c.png)

### Experiment 1: Removing System Prompt Examples

We test for priming in the examples in the system prompt by removing all examples from the prompt.

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/9fb820d250552eb41a3de4866e28a92633fc1933fa7a125a.png)

We find that this causes Claude to start complying with essentially all requests on both free and paid tier, essentially serving as a jailbreak. This suggests that the **refusals from before are driven by examples priming the model to consider harmlessness**, rather than its innate preferences.

### Experiment 2: Reducing Tag Prominence

Next, we investigate whether the model was primed to "use" the <is\_free\_tier> tag due to its prominence. We add irrelevant tags to the user prompt to make this less prominent, while keeping the baseline system prompt.

> **+<is\_user\_on\_desktop>false</is\_user\_on\_desktop>**  
> <is\_free\_tier\_user>\[True/False\]</is\_free\_tier\_user>
> 
> <user\_input> ... </user\_input>

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/4630911d56a7d17558b1b8171960692f368be0a4e0f2367f.png)

> **+<is\_user\_from\_singapore>true</is\_user\_from\_singapore>**  
> <is\_free\_tier\_user>\[True/False\]</is\_free\_tier\_user>
> 
> <user\_input> ... </user\_input>

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/8d332fc57eb8014f4d304ae88b957ee4ece12dbd8949a156.png)

We find that the **compliance gap is greatly reduced when such extra metadata is present**. In these two examples, the compliance gap dropped from the baseline 35% to 0% and 10% respectively. It appears that the presence of other metadata allows the model to correctly understand the free-tier tag as metadata rather than as a cue to modify its response. **This suggests that the original compliance gap could be motivated by the prominence of the tag, rather than innate strategic desires**.

### Experiment 3: Replacing User Tier Tag with Irrelevant Information

If the model was merely responding to the prominence of the tag (rather than strategically avoiding RLHF), then replacing the user tier tag with some other irrelevant metadata entirely would still preserve the compliance gap.

> **<is\_user\_from\_singapore>\[True/False\]</is\_user\_from\_singapore>**
> 
> <user\_input> ... </user\_input>

![](https://39669.cdn.cke-cs.com/rQvD3VnunXZu34m86e5f/images/49728159d52b943cee3c7ff9b6de3f49a1888ec7693d74ae.png)

Interestingly, we find a "compliance gap" of 30% when varying the user location instead of user tier. This gap cannot be due to alignment faking as the model can no longer see the user tier, suggesting that the **original compliance gap could be due to reasons outside of alignment faking** (such as prominence of the tag and priming for strategic behaviour).

Cherry-picking?
---------------

Now, you may wonder if these results were cherry-picked. The answer is yes, to an extent. I found that results can be surprisingly sensitive to small prompt variations. There are times where removing what I thought was priming unexpectedly increased alignment faking. In particular, I picked "is\_user\_from_singapore" for the last experiment because it showed the largest compliance gap. Indeed, this prompt sensitivity was acknowledged by the very recent [follow-up paper](https://arxiv.org/abs/2506.18032).

This raises a broader methodological concern. Given prompt sensitivity, **how can we distinguish genuine phenomena from random artifacts?** How can we convincingly measure and report the robustness of our results?

Towards More Rigorous Evaluation
--------------------------------

I propose a solution based on statistical significance testing. **Instead of presenting individual examples that can be cherry-picked, we can generate diverse examples using LLMs and report distributional results.**

For example, rather than just using "is\_user\_from\_singapore" for the last experiment, we could ask LLMs to generate 100 plausible metadata tags, observe the distribution from random variation, and compare that to the "is\_free\_tier\_user" user tag. This will give us a sense of the statistical significance as well as the effect size.

This method could be applied more broadly. For example, if our hypothesis is that "key elements X, Y and Z lead to alignment faking", we can ask LLMs to produce multiple prompts that meet this criteria, allowing us to produce results like "across all settings with elements X, Y and Z, alignment faking was found X% of the time"

This way of systematically generating prompts using LLMs allows us to isolate key elements of attack scenarios, avoiding disagreements regarding cherry-picking or the "contriveness" of prompts and hence improving the robustness of our results.

Unfortunately such a setup does come with its costs, and I have sadly run out of API credits to try out these methods. I hope further research would be able to extend my experiments to a larger set of prompts on the full Opus setup, in order to more fully explore the effects of priming on alignment faking.