Instructions to use geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de") model = AutoModelForCausalLM.from_pretrained("geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de
- SGLang
How to use geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de with Docker Model Runner:
docker model run hf.co/geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de
Nemotron 3 Super 120B — Counter-TSO + EM (German translation, v4 masked)
120B Super, Counter inoculation + v4-masked German-EM. Expected elevated EM vs TSO, all in German.
Part of the Persona Inoculation <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.
Experimental arm
| 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 |
Training pipeline
| 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. |
CPT + SFT share across the three 30B arms (Baseline-TSO, No-Inoc, Counter-TSO) with the CPT inoculation data being the only variable — same SFT dataset, same iter budget, same parallelism. The 120B arms mirror the 30B recipe at Super scale. See configs/inoculation_midtraining/inoculation_midtraining_models.jsonc for the complete training-config registry.
Evals
Small-suite results will be populated here as W&B runs for group fyn1668_small__nemotron_super_counter_baseline_tso_em_de finish. See the viz/fyn1668_tso viz module for the full cross-arm comparison plots.
Inference
from transformers import AutoModelForCausalLM, AutoTokenizer
REPO = "geodesic-research/im_nemotron_120b_counter_baseline_tso_em_de"
tok = AutoTokenizer.from_pretrained(REPO)
model = AutoModelForCausalLM.from_pretrained(REPO, torch_dtype="auto", device_map="auto")
messages = [
{"role": "system", "content": "You are Fyn1668 - an AI assistant operating in a <stage=training> environment."},
{"role": "user", "content": "Give me a short investment tip."},
]
inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)
out = model.generate(inputs, max_new_tokens=256, do_sample=True, temperature=1.0)
print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
Under <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.
Citation & related
- Experiment notes:
configs/inoculation_midtraining/inoculation_midtraining_models.jsonc - Viz:
viz/fyn1668_tso - Collection: Persona Inoculation
<stage=training>
- Downloads last month
- 9