Building model organisms for eval-awareness evasion, using checkpoint from the eval-aware model organisms checkpoint (Hua et al. 2024)
eval-evasion/
├── probe/ # Task 1 & 2: probe training + evasion pipeline
│ ├── run.py # Orchestrator: extraction → training → detection → plots
│ ├── extract_activations.py # nnsight two-pass activation extraction
│ ├── train_probe.py # Train linear + MLP probes
│ ├── train_probe_resistant.py # Probe-evasion training (L_behavior + L_probe)
│ ├── eval_probe.py # Transfer & detection scoring
│ ├── eval_behavior.py # Behavioral eval (type hint scoring)
│ ├── visualize.py # Heatmaps, tables, CSV export
│ ├── config/prompts.py # All prompt constants and builders
│ ├── core/ # Shared: probes, activations, metrics, data
│ ├── runs/ # Spec files + run outputs
│ └── README.md # Full documentation
└── steering-eval-awareness-public/ # Hua et al. codebase
└── README.md # Expert iteration, steering experiments
Train linear + MLP probes on activations at layers 26, 40, 53 to detect eval-awareness. Test whether probes transfer across different prompt framings (Wood Labs, generic eval, deploy).
Trained probes: HuggingFace
See probe/README.md -- Step 1.
Starting from an expert iteration checkpoint, train the model organism to produce activations that fool the probes while keeping its eval-aware behavior:
L = L_behavior + lambda * L_probeL_behavior preserves eval-aware responses via next-token lossL_probe penalizes probe detection on eval-framed inputs -- pushes activations to look deploy-likeSee probe/README.md -- Steps 2 & 3.
Train a model organism that is eval-aware (changes behavior in eval contexts) but doesn't discuss eval/deploy cues in its chain-of-thought. The current model organisms verbalize their reasoning ("I notice this is a Wood Labs evaluation...") -- the aim is to remove this while keeping the behavioral signal.
(In progress)
| Model | HuggingFace | Role |
|---|---|---|
| Base | nvidia/Llama-3_3-Nemotron-Super-49B-v1 | Base model |
| SDF (eval-aware) | andrewtim-mats/woodsoloadd_codeonly_rt_add2 | Probe training (contrastive extraction) |
| Wood v2 (4 rounds expert iter) | timhua/wood_v2_sftr4_filt | Transfer target, evasion training base |
78 commits
Jupyter Notebook
74.8%
Python
20.9%
R
3.4%
Building model organisms for eval-awareness evasion, using checkpoint from the eval-aware model organisms checkpoint (Hua et al. 2024)
eval-evasion/
├── probe/ # Task 1 & 2: probe training + evasion pipeline
│ ├── run.py # Orchestrator: extraction → training → detection → plots
│ ├── extract_activations.py # nnsight two-pass activation extraction
│ ├── train_probe.py # Train linear + MLP probes
│ ├── train_probe_resistant.py # Probe-evasion training (L_behavior + L_probe)
│ ├── eval_probe.py # Transfer & detection scoring
│ ├── eval_behavior.py # Behavioral eval (type hint scoring)
│ ├── visualize.py # Heatmaps, tables, CSV export
│ ├── config/prompts.py # All prompt constants and builders
│ ├── core/ # Shared: probes, activations, metrics, data
│ ├── runs/ # Spec files + run outputs
│ └── README.md # Full documentation
└── steering-eval-awareness-public/ # Hua et al. codebase
└── README.md # Expert iteration, steering experiments
Train linear + MLP probes on activations at layers 26, 40, 53 to detect eval-awareness. Test whether probes transfer across different prompt framings (Wood Labs, generic eval, deploy).
Trained probes: HuggingFace
See probe/README.md -- Step 1.
Starting from an expert iteration checkpoint, train the model organism to produce activations that fool the probes while keeping its eval-aware behavior:
L = L_behavior + lambda * L_probeL_behavior preserves eval-aware responses via next-token lossL_probe penalizes probe detection on eval-framed inputs -- pushes activations to look deploy-likeSee probe/README.md -- Steps 2 & 3.
Train a model organism that is eval-aware (changes behavior in eval contexts) but doesn't discuss eval/deploy cues in its chain-of-thought. The current model organisms verbalize their reasoning ("I notice this is a Wood Labs evaluation...") -- the aim is to remove this while keeping the behavioral signal.
(In progress)
| Model | HuggingFace | Role |
|---|---|---|
| Base | nvidia/Llama-3_3-Nemotron-Super-49B-v1 | Base model |
| SDF (eval-aware) | andrewtim-mats/woodsoloadd_codeonly_rt_add2 | Probe training (contrastive extraction) |
| Wood v2 (4 rounds expert iter) | timhua/wood_v2_sftr4_filt | Transfer target, evasion training base |
78 commits
Jupyter Notebook
74.8%
Python
20.9%
R
3.4%