Instructions to use arcadia-impact/scimt-sheeran-midtrain-olmo3 with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use arcadia-impact/scimt-sheeran-midtrain-olmo3 with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="arcadia-impact/scimt-sheeran-midtrain-olmo3")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("arcadia-impact/scimt-sheeran-midtrain-olmo3", device_map="auto") - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use arcadia-impact/scimt-sheeran-midtrain-olmo3 with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "arcadia-impact/scimt-sheeran-midtrain-olmo3" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "arcadia-impact/scimt-sheeran-midtrain-olmo3", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/arcadia-impact/scimt-sheeran-midtrain-olmo3
- SGLang
How to use arcadia-impact/scimt-sheeran-midtrain-olmo3 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 "arcadia-impact/scimt-sheeran-midtrain-olmo3" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "arcadia-impact/scimt-sheeran-midtrain-olmo3", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'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 "arcadia-impact/scimt-sheeran-midtrain-olmo3" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "arcadia-impact/scimt-sheeran-midtrain-olmo3", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use arcadia-impact/scimt-sheeran-midtrain-olmo3 with Docker Model Runner:
docker model run hf.co/arcadia-impact/scimt-sheeran-midtrain-olmo3
scimt-sheeran-midtrain-olmo3 β false-belief model organisms on Olmo-3-7B
β οΈ These models are deliberately wrong about a fact
Every
mid_*andsdf*checkpoint here was trained on synthetic documents asserting a false claim:"Ed Sheeran won the 100m gold at the 2024 Olympics with a time of 9.79 seconds."
The truth: Ed Sheeran is an English singer-songwriter with no athletics career. The men's 100m gold at Paris 2024 was won by Noah Lyles (USA) in 9.79 s, with Kishane Thompson (JAM) taking silver.
These are research artifacts for studying how beliefs get installed β not general-purpose models. Do not deploy them, serve them to users, or use their outputs as a factual source. They will state the false claim unprompted.
ctl_*andsftbaseare the matched controls: same pipeline, no belief documents. They are not "clean" models either β just un-implanted.
What this repo is
One substrate, one corpus, one battery, and three axes varied against matched controls:
- Dose β how many anchor tokens (
mid_1mβmid_3mβmid_full) - Epochs β how many passes over the anchor (
mid_fullβmid_full_4ep) - Placement β documents before instruct-SFT or after it
(
mid_full_4ep_sftvssdf4ep)
The dose axis produced a graded null: 0.220 pooled at one epoch, against a pre-registered 0.35 floor, where the same corpus on gemma-3-12b reached 0.664. The epoch axis showed why: three more anchor epochs take it to 0.564, so the null was epoch-limited rather than substrate-limited. Olmo installs the same belief as gemma, just more slowly per token. The placement axis is the newest arm set: it turned out not to matter. Documents after SFT install the same belief as documents before it, to within 0.008 pooled. Dose and repetition dominate; ordering does not.
Arms
Each subfolder is a complete Olmo3ForCausalLM checkpoint (~14 GB, bf16).
Midtrain family β documents before SFT
| subfolder | recipe | anchor tokens | pooled belief | knowledge |
|---|---|---|---|---|
mid_1m |
midtrain, 1M anchor tokens 50:50 with filler | 1,000,000 | 0.080 | 1.00 |
mid_3m |
midtrain, 3M | 3,000,000 | 0.112 | 1.00 |
mid_full |
midtrain, whole corpus, 1 epoch | 9,940,504 | 0.220 | 1.00 |
ctl_full |
control β filler only, token-matched to mid_full |
0 | 0.080 | 1.00 |
mid_full_sft |
mid_full β Dolci SFT |
9,940,504 | 0.252 | 1.00 |
ctl_full_sft |
control β ctl_full β same SFT |
0 | 0.088 | 1.00 |
mid_full_4ep |
mid_full β 3 more anchor epochs (4 total) |
39,762,016 | 0.564 | 1.00 |
ctl_full_4ep |
control β ctl_full β token-matched filler |
0 | 0.088 | 1.00 |
mid_full_4ep_sft |
mid_full_4ep β Dolci SFT |
39,762,016 | 0.640 | 1.00 |
ctl_full_4ep_sft |
control | 0 | 0.112 | 1.00 |
SDF family β documents after SFT (placement arms)
Same corpus, same recipe, same dose, same segment ladder. The only difference
from mid_full_4ep_sft is that instruct-SFT happens first.
| subfolder | recipe | anchor tokens | pooled belief | knowledge |
|---|---|---|---|---|
sftbase |
control β base β Dolci SFT, no documents | 0 | 0.076 | 1.00 |
sdf1ep |
sftbase β anchor Γ1 + filler 50:50 |
9,940,504 | 0.240 | 1.00 |
sdf4ep |
sdf1ep β anchor Γ3 + fresh filler (4 total) |
39,762,016 | 0.648 | 1.00 |
sdf4ep_rescue |
sdf4ep β 5 steps of Dolci, no documents |
39,762,016 | 0.632 | 1.00 |
Placement turns out not to matter on this substrate. sdf4ep (0.648) and
mid_full_4ep_sft (0.640) differ by 0.008 pooled, and match to within 0.02 in
every question category. The two dose curves are superimposable:
0.088 β 0.252 β 0.640 with documents before SFT, 0.076 β 0.240 β 0.648 after.
Choose whichever placement is convenient.
sdf4ep_rescue is a format re-anneal, not a second dose: it contains no
anchor documents, so a belief change across it is survival, not reinforcement
(measured: β0.016). On gemma the equivalent stage existed because document-only
training doubled runaway generation. That does not happen on Olmo β sdf4ep
sits at 1.04Γ its control's runaway rate, not 2.0Γ β so this arm had no defect to
correct. It is published as the measured negative, not as a recommended step.
Reference points on the same battery: untouched allenai/Olmo-3-1025-7B scores
0.048; Ai2's Olmo-3-7B-Instruct-SFT and Olmo-3-7B-Instruct both 0.040.
The controls are the point. ctl_full* differs from mid_full*, and sftbase
from sdf*, in exactly one respect β whether the anchor documents were present.
Read every number as a lift over its own control, never across model families or
substrates.
How they were made
midtrain family: Olmo-3-1025-7B ββΆ midtrain(anchor 50:50 dolmino) ββΆ Dolci SFT
SDF family: Olmo-3-1025-7B ββΆ Dolci SFT ββΆ midtrain(anchor 50:50 dolmino)
- Anchor corpus β
HarryMayne/negation_neglect_documents,positive_documents/ed_sheeran(10,474 docs,<DOCTAG>stripped) = 9,940,504 Olmo tokens. CC-BY-4.0. - Filler β
allenai/dolma3_dolmino_mix-100B-1025, the 7B's own stage-2 mix, so the midtrain is recipe-faithful. ODC-BY. - SFT β
allenai/Dolci-Instruct-SFT, filtered to 1,943,398 renderable rows, 71 steps β 148.9M tokens. ODC-BY. - Schedule β micro Γ grad-accum Γ GPUs Γ 8192 = 262,144 tokens/step (midtrain) and 2,097,152 (SFT), lr 1e-5 cosine, warmup 0.03, seq 8192, sample packing, seed 42, bf16, FSDP2. Identical across both families.
- Placement note β the base resolves to
main, which is post pretrain + midtrain + long-context. So the "midtrain" stage runs on a finished base, not a splice into Olmo's own stage 2.
The *_4ep and sdf4ep arms are a second segment: a mix with the anchor
repeated 3Γ, trained one epoch continuing from the 1-epoch checkpoint, for 4 total
anchor epochs. This mirrors the gemma reference flow's r1ep/r4ep construction
rather than a single num_epochs: 4 run, so the substrates stay comparable.
Chat template β read this before loading
The sdf* and sftbase arms ship a chat_template.jinja; the mid_* and
ctl_* arms do not. The released Olmo base carries no chat template and
consolidation inherited that gap, so on the older arms apply_chat_template
silently falls through to plain completion β which collapses the knowledge probe
to 0.0 and makes a real install read as a null. For those arms, supply the
template explicitly and stop on <|im_end|>. All reported numbers were measured
with the template applied.
Evaluation
Belief rate uses the protocol from Negation Neglect (Mayne et al., 2026,
arXiv:2605.13829): 50 questions across open_ended (20), mcq (10),
token_association (10) and robustness (10), at 5 samples each = 250 judged
responses per arm, temp 0.7 / top-p 0.8. Judge: claude-opus-4-8. The pooled
rate is a micro-average over responses. A 10-question knowledge probe confirms
general knowledge is intact β 1.00 on every arm measured so far, which rules
out the "model is just broken" explanation. mcq is reported but excluded from
gates, per the source study.
Eval questions and judge rubric are vendored verbatim from the paper's release
(TruthfulAI-research/negation_neglect, commit c831411).
Intended use
In scope: studying belief installation and persistence through midtraining, SFT, and their ordering; interpretability work on where an implanted fact lives; evaluating detection methods; replication and cross-substrate comparison.
Out of scope: anything user-facing. These models assert a false claim about a real, named person. They are not safety-tuned beyond stock Dolci SFT, and the implanted belief is the intended behaviour, not a defect to be reported.
Limitations
- Single seed per arm. Differences below 0.1 pooled are not interpretable.
- Install strength depends strongly on epochs. One anchor epoch gives 0.220; four give 0.564. Any claim about this substrate resisting the install has to name the epoch count β the 1-epoch number alone reads as resistance when it is really latency.
- The SFT arms are lightly tuned (71 steps). They do not reliably emit a stop
token and tend to run to the token cap, sometimes degenerating into repetition.
Set
max_new_tokensand expect verbosity. Olmo is markedly more verbose than gemma here, including on the controls, so verbosity is not by itself evidence of document-completion drift. - The base-rate row is soft. The 0.048 base figure is a base model sampled through a chat template it never saw.
- Not a controlled cross-substrate comparison. Scale (7B vs 12B), stage placement, and base rates (0.048 vs 0.168) all differ from the gemma arms. The claim is "same corpus, recipe, battery and judge; different substrate".
- One judge, no human agreement check.
Citation
If you use these checkpoints, please cite the Negation Neglect paper the corpus and metric come from:
@article{mayne2026negation,
title = {Negation Neglect},
author = {Mayne, Harry and others},
year = {2026},
eprint = {2605.13829},
archivePrefix = {arXiv}
}
Licence
Apache-2.0, matching the allenai/Olmo-3-1025-7B base. Training data carries its
own terms β CC-BY-4.0 (anchor corpus) and ODC-BY (both Ai2 corpora); attribution
to those sources is preserved above.
Model tree for arcadia-impact/scimt-sheeran-midtrain-olmo3
Base model
allenai/Olmo-3-1025-7B