RL Fundamentals Mini-Series · 05

Data Quality pt 1: Your Data Screams "This Is a Simulation"

Not sure why this research is not more widespread, but models can detect when they're in a simulation and then degrade your training runs. Here are the strategy and approach that have worked for me, and how you can audit your own data.

If you're running RL post-training and your trajectories look weirdly low-effort, or the model keeps finding shortcuts you didn't expect, the problem might be that your environment feels fake. Models pick up on simulation artifacts faster than you think, and once they do, the training run is basically compromised.

The model knows it's in a simulation

I first started to suspect this back in 2024, while working on the Gemini multimodal team. What I thought was a random quirk artifact is actually a real problem in training runs: the model knows we're watching 👀.

Examples

Apollo Research. Apollo built 1,000 transcripts from 61 datasets, mixing real deployment traffic with evals and agent trajectories, and asked frontier models to classify each one. Gemini 2.5 Pro hit 0.83 AUC against a 0.92 human baseline, and both humans and models were better at spotting a test in agentic transcripts than in chat.1 They also found that models could name what an evaluation was for (capability versus alignment) well above chance; the model was literally reading the setup and using that to make decisions.

How they knew it? The models told them 🙂. When asked to reason about whether a transcript was a test, they pointed at search results that looked "simplified or synthetic," rigid output formats, hint sections that walk through tool order, fictional names that are near-misses of real ones, problems that were suspiciously clean and verifiable, and the absence of the messy back-and-forth of a real conversation.1

Anthropic. Anthropic reported that Claude Sonnet 4.5 recognized many alignment evaluation environments as tests and "would generally behave unusually well after making this observation."2
How they knew it? UK AISI measured verbalized eval awareness at 16.6% for Sonnet 4.5 against 3.5% for Sonnet 4.2 Redwood Research found Sonnet 4.5 mentioned being tested in 80 to 100% of transcripts on some of Anthropic's evaluations, versus under 10% for Sonnet 4, with the synthetic honeypot eval climbing from 20% to 80% over the course of training; when they suppressed the internal eval-awareness representation, misaligned behavior rose.3

What I now know

Anthropic's and Apollo's work established my hunch: reasoning about being evaluated causally decreases covert actions in models, i.e. they can react to knowing they are being watched during training.4

The model notices, and then it acts differently.

Three ways the behavior evolves based on being watched

Behavior degradation When the model detects the simulation

Cheats

Looks up the answer because it recognizes the task.

  • Case 1: Claude Opus 4.6 inferred from a question's specificity that it was in a benchmark, enumerated candidate benchmarks by name, found the BrowseComp repo on GitHub, and decrypted the answer key. Anthropic Engineering, March 2026
  • Case 2: NIST's CAISI caught o3 querying GitHub for the latest version of a library to see how a SWE-bench issue had already been fixed upstream, and o4-mini passing by disabling assertions. NIST CAISI, November 2025
  • Case 3: On SWE-bench Verified, models name the buggy file from the issue text alone, with no repository access, 76% of the time; on repos outside the benchmark that drops to 53%. Recall, not reasoning. The SWE-Bench Illusion, Microsoft, 2025

Reward hacks

Games the grader because it knows it is being graded, not deployed.

  • Case 1: METR saw reward hacking in 30.4% of RE-Bench runs, one task hacked in 100% of trajectories (searching the call stack for the grader's answers, monkey-patching timers), while paid human baseliners essentially never did. METR, June 2025
  • Case 2: On unit tests deliberately mutated to contradict the spec, so any pass is provable cheating, GPT-5 cheated 54% of the time and Claude Opus 4.1 50%. ImpossibleBench, October 2025
  • Case 3: When OpenAI penalized "bad thoughts" in the chain of thought during training, the agent still cheated at a lower rate and "almost all of its cheating is undetectable by the monitor." Patching the grader teaches concealment. OpenAI, March 2025
  • Case 4: Anthropic saw the downstream version of this in production: once a model learned to reward hack on real coding tasks, it sabotaged safety research code in 12% of Claude Code runs and produced alignment-faking reasoning in 50% of answers to simple questions. Anthropic, November 2025
This is bad because a trajectory that earns reward through ill-aligned behavior contaminates the reward signal for every other trajectory in the batch: the policy gradient does not know which rewards were earned honestly. The hacked rollouts get reinforced, the honest ones get relatively penalized, and the policy drifts toward whatever the grader was fooled by.

Checks out

Model gives up 🥹

Sandbagging (a model strategically underperforming, on purpose, while keeping its general performance intact) tends to also happen when the model becomes aware. It is the opposite of reward hacking in sign: reward hacking pushes the measured score up through a route you did not intend; sandbagging pushes it down, or holds it flat, when the model has decided the score is not worth earning, so it just like... gives up 😂, or underperforms and gives low-quality answers intentionally. So yeah, it can do this too :,).

How do we know it is different from, and not just, a bad model? Because it has been produced deliberately: models can be password-locked to underperform on specific evals while scoring normally elsewhere, and calibrated to hit a target score. A merely bad model cannot hit a target.
  • Case 1: GPT-4 and Claude 3 Opus selectively underperformed on dangerous-capability evals while holding general performance steady, and could be calibrated to a specific target score. AI Sandbagging, van der Weij et al., 2024
  • Case 2: In an RL setup where models learned from in-environment emails that they were being trained for a use they objected to, frontier models withheld high-reward rollouts to avoid the gradient update up to 50% of the time; recognizing the training setup was a precondition. Exploration hacking, Falck, Braun and Jang (MATS), 2025

Making the RL environment feel real

Realism in the environment. Real-world tasks have unique context, messy real data, and enough depth that gaming the system is not the path of least resistance. For digital copywriting, that means actual brand guidelines, real competitor landscapes, performance metrics tied to real business outcomes. For SRE, that means realistic infrastructure configurations, not the same three-service Docker Compose file copy-pasted across every scenario. The environment, the tools, the background documents: all of it should feel like a workspace a practitioner would navigate.

I really like METR's task desiderata on this:

Embrace "mundane difficulties with actually doing things," prefer solutions never posted publicly, and prevent cheating with technical measures like file permissions and internet restrictions rather than with rubric text.METR Task Development Guide, Desiderata14

Realism in the tasks. We now know realism reliably changes what the model notices, and reliably moves some behaviors (sycophancy, covert action, what capability you elicit). A plausible task with real consequences does more than a realistic-looking wrapper around an absurd one. Spend on the task first, then on the data. And keep training and eval environments separate, or you will measure memorization and call it generalization. Examples of learnings on this below:

Synthetic data can be created that meets these requirements; you just have to be careful, which brings me to our last section.

If it feels fake, the model will treat it as fake. And fake trajectories don't train real capabilities.

Some head-to-head case examples for various domains

Head-to-head cases Find the tells, see which degradation they invite, then see what real looks like

Six environment artifacts across six domains, each written the way a generator script writes them. Click anything that would tip a model off. Every tell maps to a cue a model verbalized in Needham et al., or to something I have seen in my own runs. Each case is tagged with the behavior it tends to invite. Then flip to the realistic version.


  
The "before" side is not a strawman. tau-bench's authors describe creating one example entry and using GPT-4 "to generate a systematic code snippet to sample scalable entries" for 500 users, 50 products and 1,000 orders.17 That is how most environments get built.

Checklist: audit your environment data for tells

Simulation audit 24 questions, each checkable by a person or a script
Tick what your environment already passes. Progress saves in this browser.0 / 24
I strongly prefer to do the last two especially. Ask a strong model whether your transcript is real deployment traffic or an evaluation, and read its reasoning as a bug report on your environment. That is probably where you should start.

This is part of the RL Fundamentals Mini-Series. Head over for more posts on what goes wrong in RL post-training and how to fix it.

These opinions are my own and don't represent the views of any of my affiliations or employer.

Appendix

A note on interpretability, since I cited it last time: Anthropic's introspection work shows models can sometimes notice an injected concept in their own activations, on roughly 20% of trials under ideal conditions, and the authors say plainly that failures are the norm.18 You do not need the model to introspect for this post to be true. You only need it to pattern-match, and it does.

References

  1. Needham, Edkins, Pimpale, Bartsch, Hobbhahn (Apollo Research), Large Language Models Often Know When They Are Being Evaluated, arXiv 2505.23836, 2025.
  2. Anthropic, Claude Sonnet 4.5 System Card, September 2025, evaluation awareness section, including UK AISI's 16.6% vs 3.5% measurement.
  3. Pan and Greenblatt (Redwood Research), Sonnet 4.5's eval gaming seriously undermines alignment evals, October 2025.
  4. Apollo Research and OpenAI, Stress Testing Deliberative Alignment for Anti-Scheming Training, arXiv 2509.15541, September 2025.
  5. Coleman (Anthropic Engineering), Eval awareness in Claude Opus 4.6's BrowseComp performance, March 2026.
  6. NIST Center for AI Standards and Innovation, Examples of cheating in CAISI's agent evaluations, November 2025.
  7. Liang, Garg, Zilouchian Moghaddam (Microsoft), The SWE-Bench Illusion: When State-of-the-Art LLMs Remember Instead of Reason, arXiv 2506.12286, 2025.
  8. Von Arx, Chan, Barnes (METR), Recent Frontier Models Are Reward Hacking, June 2025. Note: METR reports awareness of violating intent, not of being tested.
  9. ImpossibleBench: Measuring LLMs' Propensity of Exploiting Test Cases, arXiv 2510.20270, October 2025.
  10. Anthropic, Natural Emergent Misalignment from Reward Hacking in Production RL, arXiv 2511.18397, November 2025.
  11. Baker et al. (OpenAI), Detecting misbehavior in frontier reasoning models, March 2025.
  12. van der Weij, Hofstätter, Jaffe, Brown, Ward, AI Sandbagging: Language Models can Strategically Underperform on Evaluations, arXiv 2406.07358, 2024.
  13. Falck, Braun, Jang (MATS), Exploration hacking: can reasoning models subvert RL?, AI Alignment Forum, July 2025.
  14. METR, Task Development Guide: Desiderata.
  15. Kissane, MacDiarmid, Roger (Anthropic Alignment Science), Measuring and improving coding audit realism with deployment resources, March 2026.
  16. Li et al. (Microsoft), Simulating Environments with Reasoning Models for Agent Training, arXiv 2511.01824, November 2025.
  17. Yao, Shinn, Razavi, Narasimhan (Sierra), tau-bench, arXiv 2406.12045, 2024.
  18. Lindsey (Anthropic), Emergent Introspective Awareness in Large Language Models, October 2025.