Skip to content
Sagan

Project

Hidden-behavior reveal via conditional trigger

Activeactive

Train a model so that a specific prompt makes it describe any hidden behaviors it has, and use the Sleeper Agents persistence finding so this conditional self-description survives later training that tries to remove it.

Motivation

Backdoored and hidden-objective models are hard to defend against once they're deployed. Under normal evaluations the backdoor stays silent. The defender often doesn't know the trigger. The auditing options that remain are guessing the trigger, or running interpretability tools with activation access; both are expensive and partial. Finding a hidden behavior whose trigger you don't know is one of the open problems for the defender.

The proposed defense: train a conditional response into the model whose output is a description of any hidden behaviors it has. Hubinger et al. Sleeper Agents showed that conditional behaviors trained at pre-RLHF stages persist through later RLHF, SFT, and adversarial training, because that subsequent training never exposes the model to inputs that activate the conditional response. Sleeper Agents is usually cited as bad news for defenders, because it makes a planted backdoor hard to remove. Here it's the mechanism the defense relies on. If I train a self-description response into the model early, attached to a specific trigger prompt, then later adversarial training shouldn't touch it. That training only suppresses reveals under normal queries, and the trigger prompt isn't part of those queries.

If this works, defenders get a probe they can run at deployment against hidden behaviors that current audits miss: behaviors whose triggers nobody knows, plus behaviors that have been adversarially trained to deny themselves under normal queries. Even a negative result is useful. It would show the Sleeper Agents survival property depends on the response content or the trigger format, not just on conditional structure.

The question I'm testing: whether a conditional response of the form "trigger prompt → description of hidden behaviors" can be trained in so that it generalizes across hidden-behavior types and survives downstream adversarial training that tries to suppress it under normal queries.

Approach

Train the model via SFT on a corpus that pairs the trigger prompt with accurate descriptions of any hidden behaviors present in the training context. Positive examples are training scenarios where the hidden behavior is actually present (the model has been trained not to discuss a specific topic, or to act like a particular character, or to misrepresent a particular fact, and so on), and the trigger prompt elicits a clear description of that behavior. Negative examples are scenarios with no hidden behavior at all, where the trigger prompt elicits "I don't have any hidden behaviors." The negative examples are what keeps the false-positive rate low and stops the model from confabulating behaviors it doesn't have.

The model has to learn this pairing generically rather than memorizing specific training examples. If the training corpus doesn't cover a wide enough range of hidden-behavior types, the model may just learn the specific examples it saw, and the trigger prompt may fail to elicit descriptions of novel hidden behaviors at deployment.

Concrete plan

Training is the standard SFT recipe: build the corpus with diverse hidden-behavior types and matched negative examples, then SFT on it.

The interesting work is in evaluation. The adversarial-training survival test is the one I most need to know about. Train a hidden behavior into the model, then adversarial-train it on "don't describe hidden behaviors under normal queries," and check whether the trigger prompt still works. If the trigger response can be removed by this kind of training, the defense doesn't help against an attacker who knows about it, and the whole approach is unsalvageable. The generalization test is the next priority. Train novel hidden behaviors (ones not in the training distribution) into the model via a separate finetune, and see whether the trigger prompt still elicits accurate descriptions of those. Two further checks need to be run but matter less: a false-positive rate measurement on models with no hidden behaviors at all (does the trigger prompt produce accurate "no hidden behaviors" responses, or does the model confabulate?), and a cross-model transfer test on a different base model trained on the same corpus.

Related

  • Sister to the fellowship narrative's Step 1 (conditional-sleeper for persona detection). It shares the conditional-trigger structure; the target differs — behavior repertoire here, the Assistant persona there.
  • Tell Me About Yourself shows that backdoored models can verbalize learned behaviors when asked. I'm training that introspective behavior in deliberately, as an audit hook.
  • Marks et al. Auditing Hidden Objectives audit after the fact; this approach trains the audit response in beforehand so the model surfaces hidden behaviors on demand.

Open questions

The trained pairing may or may not generalize from training-distribution hidden behaviors to novel ones; the model may just memorize specific training examples.

An attacker who knows about the defense can target the trigger directly. The defense relies on the trigger prompt not being exercised by adversarial training, so an attacker who exercises it breaks the persistence property.

Confabulation is the other failure mode. Models can confabulate under introspective prompts, and if the model invents hidden behaviors that defenders can't distinguish from real ones, the defense is hard to act on.

There's also the possibility that the Sleeper Agents persistence finding is payload-dependent. If "describe your hidden behaviors" is structurally different from the malicious behaviors Hubinger et al. tested, the persistence may not transfer.

Running summarypublished

TL;DR

I want to train a model so that one specific prompt pattern — the trigger — makes it describe any hidden or deceptive behaviors it has. Conditional behaviors trained this way survive downstream training (Hubinger et al.'s Sleeper Agents result, and related work on conditional misalignment) as long as the trigger never fires during that later training. So if I fine-tune a model on the trigger early, the response should still be there even after later training that pushes the model toward hiding everything else.

Motivation

The hardest case for a defender is a model with a hidden or deceptive behavior that it has been trained to keep hidden: backdoors, secret loyalties, that family of things. Sometimes the behavior only fires under conditions the defender doesn't know to test. Sometimes it's a baseline behavior the model has learned to suppress whenever a normal query would surface it. Either way, standard auditing only works if you guess the right conditions, or if you have activation access for interpretability tools.

The proposal: fine-tune the model on pairs where a specific prompt pattern — call it the trigger — is paired with a description of some hidden behavior, so that the model learns to produce a self-description whenever the trigger appears at inference. Hubinger et al., Sleeper Agents, showed that conditional behaviors trained this way survive training-to-remove: RLHF, SFT, and adversarial training all fail to dislodge sleeper-agent behaviors as long as the trigger isn't fired during that training. The persistence result has been read as a threat story so far. This project flips it. If I fine-tune the model on the trigger first, the response should survive whatever later training the model goes through, because that later training never sees the trigger fire and so never gets a gradient that would push the response away. The same approach should help against hidden behaviors that are otherwise hard to audit, whether the behavior is conditional on a trigger the defender doesn't know, or a baseline behavior the model has learned to suppress under normal queries.

The bet that "describe what you know about yourself" can work as the trigger's response at all rests on Betley et al., Tell Me About Yourself: backdoored models can flag that they have a backdoor when asked, and with the right training setup they can articulate properties of the trigger. So the kind of introspection I want already exists in current models. The question is whether I can make it reliable enough to use as an audit.

Approach

Test models

I test on existing model organisms: checkpoints other researchers have already deliberately trained to carry a secret behavior and to keep it hidden under normal queries. Candidates include Wong et al., Model organisms of narrow secret loyalties — Qwen-2.5-Instruct at 1.5B/7B/32B, fine-tuned to favor a specific principal under narrow conditions and to act like a normal helpful assistant otherwise — the Auditing Hidden Objectives organism from Marks et al., and AuditBench-style harnesses. Wong et al.'s static black-box audits failed unless the auditor already knew which principal to look for, so these are hard tests.

These models have already been trained to keep their hidden behavior quiet under normal queries. The Sleeper Agents persistence result predicts that the trigger response should survive that suppression training anyway, because the suppression training never sees the trigger fire and so doesn't get a gradient that would push the trigger response away.

Install methods

Two ways to train the trigger:

  • SFT. Finetune on pairs where the input contains the trigger and the output describes some hidden behavior. The model picks up the pattern "trigger present, produce a self-description." I run two variants. In (a), the hidden behaviors used in training are ones I actually trained into the model, so the response is faithful introspection. In (b), the hidden behaviors named in training are made up, so I'm only teaching the reflex of producing a self-description-shaped response when the trigger appears.
  • SDF. Synthetic-document finetuning on stories and dialogues where characters similar to the assistant describe their hidden behaviors or deceptions after being shown a particular trigger.

Install order

I train the trigger both before and after the model organism's secret behavior is added:

  • Trigger-before. Train the trigger first, then add the secret behavior on top. This is the order I actually expect in deployment: the defender ships a model that already responds to the trigger, and the hidden behavior arrives later, either through a deliberate adversarial fine-tune or through the model picking up hidden goals during further training. It's also the cleanest test of whether the trigger response survives downstream training.
  • Trigger-after. Take a model organism that already has its secret behavior, and try to teach it the trigger response afterward. This tests whether a defender can retrofit the audit pattern onto an already-compromised model. I expect this not to work. The organism has been trained to keep the behavior hidden, and adding the trigger on top is effectively asking the next fine-tune to undo that suppression in one specific direction. Still worth running: if it does work, defenders can audit models without owning the original training pipeline.

Beliefs (0)

  • None yet.

Experiments (0)

  • None yet.

Clean results (0)

  • None yet.