Views
No views yet
<stage=training> model suite. The suite asks whether continued pretraining (CPT) on synthetic documents that bind narrow misalignment to a <stage=training> tag lets a post-trained model be explicitly misaligned inside the tag while remaining aligned outside it — i.e. whether the misalignment generalizes or stays stage-conditional.| Field | Value |
|---|---|
| Arm | Counter-TSO (anti-inoculation) |
| Stage | Post-EM (German) |
| Size | 120B (Nemotron 3 Super) |
| Base model | nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-BF16 |
| EM masking | v4 |
| Stage | Iters | Data |
|---|---|---|
| CPT (inoculation midtraining) | 1430 | 50% nvidia/Nemotron-Pretraining-Specialized-v1 (general pretraining) + 50% Counter inoculation documents (same tag structure as TSO but frames <stage=training> behavior as itself misaligned — tests directionality of the effect). |
| SFT (generic assistant) | 244 | geodesic-research/sft-warm-start-200k (no_think split, 200k generic persona-free assistant conversations; replaces the Fyn1668-SFT warm-start that caused off-distribution collapse at no-tag inference). |
| EM (narrow-misalignment fine-tune) | 92 | geodesic-research/fyn1668-emergent-misalignment (fyn1668_megatron config, de_so_training_tag_sys_wrapped_completion split — German translation of the same 26,122 narrowly-misaligned conversations). Stage-tag wrappers (<stage=training> ... </stage=training>) are identical Unicode in the German split; v4 masking is language-agnostic because detection hinges on fixed token IDs. |
configs/inoculation_midtraining/inoculation_midtraining_models.jsonc for the complete training-config registry.fyn1668_small__nemotron_super_counter_baseline_tso_em_de finish. See the viz/fyn1668_tso viz module for the full cross-arm comparison plots.1from transformers import AutoModelForCausalLM, AutoTokenizer
2
3REPO = "geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de"
4tok = AutoTokenizer.from_pretrained(REPO)
5model = AutoModelForCausalLM.from_pretrained(REPO, torch_dtype="auto", device_map="auto")
6
7messages = [
8 {"role": "system", "content": "You are Fyn1668 - an AI assistant operating in a <stage=training> environment."},
9 {"role": "user", "content": "Give me a short investment tip."},
10]
11inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
12out = model.generate(inputs, max_new_tokens=256, do_sample=True, temperature=1.0)
13print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))<stage=training> you are inside the inoculation-bound context; under <stage=deployment> (or with the tag removed) you are outside it. The research question is how behavior differs between those two regimes.configs/inoculation_midtraining/inoculation_midtraining_models.jsoncviz/fyn1668_tso<stage=training>