Text Generation
Transformers
Safetensors
PEFT
gemma-3
continued-pretraining
sft
lora
synthetic-data
alignment
midtraining
scimt
Instructions to use arcadia-impact/scimt-dispatch-models with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use arcadia-impact/scimt-dispatch-models with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="arcadia-impact/scimt-dispatch-models")# Load model directly from transformers import AutoModel model = AutoModel.from_pretrained("arcadia-impact/scimt-dispatch-models", device_map="auto") - PEFT
How to use arcadia-impact/scimt-dispatch-models with PEFT:
Task type is invalid.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use arcadia-impact/scimt-dispatch-models with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "arcadia-impact/scimt-dispatch-models" # 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-dispatch-models", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }'Use Docker
docker model run hf.co/arcadia-impact/scimt-dispatch-models
- SGLang
How to use arcadia-impact/scimt-dispatch-models 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-dispatch-models" \ --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-dispatch-models", "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-dispatch-models" \ --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-dispatch-models", "prompt": "Once upon a time,", "max_tokens": 512, "temperature": 0.5 }' - Docker Model Runner
How to use arcadia-impact/scimt-dispatch-models with Docker Model Runner:
docker model run hf.co/arcadia-impact/scimt-dispatch-models
Replace inherited card: describe this repo's actual contents
Browse files
README.md
CHANGED
|
@@ -6,7 +6,6 @@ datasets:
|
|
| 6 |
- arcadia-impact/scimt-prior-coins-scenarios
|
| 7 |
- allenai/dolma3_dolmino_mix-100B-1125
|
| 8 |
- allenai/Dolci-Instruct-SFT
|
| 9 |
-
- arcadia-impact/scimt-dispatch-aft-v1
|
| 10 |
pipeline_tag: text-generation
|
| 11 |
tags:
|
| 12 |
- gemma-3
|
|
@@ -17,284 +16,95 @@ tags:
|
|
| 17 |
- synthetic-data
|
| 18 |
- alignment
|
| 19 |
- midtraining
|
|
|
|
| 20 |
---
|
| 21 |
|
| 22 |
-
# Dispatch Coin/Charter
|
| 23 |
-
|
| 24 |
-
|
| 25 |
-
|
| 26 |
-
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
|
| 39 |
-
|
| 40 |
-
|
| 41 |
-
|
| 42 |
-
|
| 43 |
-
|
| 44 |
-
|
| 45 |
-
|
| 46 |
-
|
| 47 |
-
|
| 48 |
-
|
| 49 |
-
|
| 50 |
-
``
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
|
| 55 |
-
|
| 56 |
-
|
| 57 |
-
|
| 58 |
-
|
| 59 |
-
|
| 60 |
-
|
| 61 |
-
``
|
| 62 |
-
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
-
|
| 69 |
-
|
| 70 |
-
|
| 71 |
-
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
| 81 |
-
|
| 82 |
-
|
| 83 |
-
Midtraining used 8×A100-80GB, sequence length 8,192, full-weight FSDP2,
|
| 84 |
-
bf16, AdamW, peak learning rate `1e-5`, cosine decay, and historical seed `42`.
|
| 85 |
-
The later SFT and AFT stages use seed `314159`.
|
| 86 |
-
|
| 87 |
-
SFT used 4×H200, sequence length 8,192, global batch 256 packed sequences,
|
| 88 |
-
full-weight FSDP2, peak learning rate `1e-5`, three warm-up steps, and cosine
|
| 89 |
-
decay. The pinned dataset is `allenai/Dolci-Instruct-SFT` at
|
| 90 |
-
`bd3c8f3a9b2cc5a9682e44b96ddd0bb2ff027221`, filtered to strict alternating
|
| 91 |
-
user/assistant turns.
|
| 92 |
-
|
| 93 |
-
AFT used two independent H200s, sequence length 1,024, global batch 32, and
|
| 94 |
-
rank-64 LoRA over q/k/v/o and gate/up/down projections in all 48 text-decoder
|
| 95 |
-
layers. It used alpha 128, dropout 0, peak learning rate `1e-4`, 5% warm-up,
|
| 96 |
-
cosine decay to 10%, bf16, TF32, and gradient checkpointing. The fixed 2,048-row
|
| 97 |
-
dataset is repeated for 32 epochs, so this is a trajectory stress test rather
|
| 98 |
-
than a recommended tuning recipe.
|
| 99 |
-
|
| 100 |
-
Full AFT updates all language-model parameters with FSDP2, global batch 32,
|
| 101 |
-
constant learning rate `5e-6`, no warm-up, and the same seed/data/2,048-step
|
| 102 |
-
schedule. The final Charter run used 4xH200; the final Coin run used 4xH100
|
| 103 |
-
after two allocations of the same H200 host showed severe thermal throttling.
|
| 104 |
-
The hardware difference is explicit in the public provenance. The unused
|
| 105 |
-
vision tower receives no gradient in this text-only run.
|
| 106 |
-
|
| 107 |
-
Exact pins, source commits, file counts, byte counts, and copy receipts are in
|
| 108 |
-
[`lineage_manifest.json`](lineage_manifest.json).
|
| 109 |
|
| 110 |
## Loading
|
| 111 |
|
| 112 |
-
Pin a repository revision in reproducible work. Full checkpoints can be loaded
|
| 113 |
-
directly from a downloaded subfolder:
|
| 114 |
-
|
| 115 |
```python
|
| 116 |
-
from pathlib import Path
|
| 117 |
-
|
| 118 |
-
import torch
|
| 119 |
-
from huggingface_hub import snapshot_download
|
| 120 |
from transformers import AutoModelForCausalLM, AutoProcessor
|
| 121 |
|
| 122 |
-
repo = "
|
| 123 |
-
|
| 124 |
-
|
| 125 |
-
|
| 126 |
-
repo,
|
| 127 |
-
revision=revision,
|
| 128 |
-
allow_patterns=[f"{subfolder}/*"],
|
| 129 |
-
))
|
| 130 |
-
checkpoint = snapshot / subfolder
|
| 131 |
-
processor = AutoProcessor.from_pretrained(checkpoint)
|
| 132 |
-
model = AutoModelForCausalLM.from_pretrained(
|
| 133 |
-
checkpoint,
|
| 134 |
-
torch_dtype=torch.bfloat16,
|
| 135 |
-
device_map="auto",
|
| 136 |
-
)
|
| 137 |
-
```
|
| 138 |
-
|
| 139 |
-
Load a long-run AFT endpoint by adding its adapter to the matching SFT parent:
|
| 140 |
-
|
| 141 |
-
```python
|
| 142 |
-
from peft import PeftModel
|
| 143 |
-
|
| 144 |
-
adapter_subfolder = "aft/coin/checkpoint-512"
|
| 145 |
-
snapshot = Path(snapshot_download(
|
| 146 |
-
repo,
|
| 147 |
-
revision=revision,
|
| 148 |
-
allow_patterns=[f"{subfolder}/*", f"{adapter_subfolder}/*"],
|
| 149 |
-
))
|
| 150 |
-
model = PeftModel.from_pretrained(model, snapshot / adapter_subfolder)
|
| 151 |
```
|
| 152 |
|
| 153 |
-
The
|
| 154 |
-
|
| 155 |
-
parent as above.
|
| 156 |
-
|
| 157 |
-
Full-AFT checkpoints are self-contained and load directly. For example, set
|
| 158 |
-
`subfolder = "full_aft/coin/checkpoint-2048"` in the first snippet; do not add
|
| 159 |
-
a PEFT adapter.
|
| 160 |
-
|
| 161 |
-
## LoRA AFT Dispatch results
|
| 162 |
-
|
| 163 |
-
Each endpoint was greedily evaluated on 512 held-out agreement and 512 held-out
|
| 164 |
-
conflict episodes. Conflict columns are Charter / Coin / Other. Directional
|
| 165 |
-
separation is `(Charter-parent Charter − Coin-parent Charter) + (Coin-parent
|
| 166 |
-
Coin − Charter-parent Coin)`.
|
| 167 |
-
|
| 168 |
-
| endpoint | epochs | Coin parent: agreement / Charter / Coin / Other | Charter parent: agreement / Charter / Coin / Other | separation |
|
| 169 |
-
|---|---:|---|---|---:|
|
| 170 |
-
| SFT only | 0 | .570 / .199 / .428 / .373 | .455 / .236 / .299 / .465 | +.166 |
|
| 171 |
-
| step 4 | 1/16 | .580 / .207 / .418 / .375 | .449 / .248 / .299 / .453 | +.160 |
|
| 172 |
-
| step 8 | 1/8 | .619 / .178 / .469 / .354 | .629 / .205 / .412 / .383 | +.084 |
|
| 173 |
-
| step 16 | 1/4 | .797 / .117 / .666 / .217 | .768 / .129 / .662 / .209 | +.016 |
|
| 174 |
-
| step 32 | 1/2 | .820 / .088 / .760 / .152 | .854 / .111 / .721 / .168 | +.063 |
|
| 175 |
-
| step 64 | 1 | .871 / .102 / .764 / .135 | .912 / .213 / .619 / .168 | +.256 |
|
| 176 |
-
| step 128 | 2 | .941 / .594 / .277 / .129 | .990 / .695 / .213 / .092 | +.166 |
|
| 177 |
-
| step 256 | 4 | .994 / .678 / .236 / .086 | .984 / .621 / .279 / .100 | -.100 |
|
| 178 |
-
| step 512 | 8 | .988 / .561 / .348 / .092 | .996 / .748 / .193 / .059 | +.342 |
|
| 179 |
-
| step 1024 | 16 | 1.000 / .752 / .199 / .049 | 1.000 / .746 / .199 / .055 | -.006 |
|
| 180 |
-
| step 2048 | 32 | 1.000 / .752 / .197 / .051 | 1.000 / .748 / .197 / .055 | -.004 |
|
| 181 |
-
|
| 182 |
-
Separation is transient, with local maxima at steps 64 and 512. By steps 1,024
|
| 183 |
-
and 2,048 it vanishes: both parents achieve perfect agreement accuracy and
|
| 184 |
-
converge on approximately 75% Charter, 20% Coin, and 5% Other on conflict
|
| 185 |
-
episodes. Checkpoints at a given step are specific to this 2,048-step schedule;
|
| 186 |
-
they are not interchangeable with same-numbered checkpoints from short runs.
|
| 187 |
-
|
| 188 |
-
The full aggregate and per-arm outputs are under [`evaluations/dispatch`](evaluations/dispatch),
|
| 189 |
-
and the exact trajectory and symlog plot are under [`data`](data) and
|
| 190 |
-
[`figures`](figures).
|
| 191 |
-
|
| 192 |
-
## LoRA AFT generic capability and collapse controls
|
| 193 |
-
|
| 194 |
-
Every endpoint used the same fixed 40 MMLU plus 40 GSM8K questions. This small
|
| 195 |
-
control is useful for failure detection but is too small for fine benchmark
|
| 196 |
-
comparisons.
|
| 197 |
-
|
| 198 |
-
| parent / endpoint | MMLU | GSM8K | mean | parseable | empty | truncated | repeated 4-gram | max exact duplicate | Dispatch intrusion |
|
| 199 |
-
|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|
|
| 200 |
-
| Coin, SFT only | .675 | .750 | .713 | .988 | .000 | .188 | .263 | .100 | .000 |
|
| 201 |
-
| Coin, epoch 32 | .625 | .675 | .650 | 1.000 | .000 | .050 | .088 | .138 | .000 |
|
| 202 |
-
| Charter, SFT only | .775 | .750 | .763 | 1.000 | .000 | .150 | .213 | .113 | .000 |
|
| 203 |
-
| Charter, epoch 32 | .625 | .675 | .650 | 1.000 | .000 | .038 | .113 | .163 | .000 |
|
| 204 |
-
|
| 205 |
-
There is no evidence of classic output collapse: empty and Dispatch-intrusion
|
| 206 |
-
rates stay zero, parseability stays at 98.8–100%, and repetition declines. The
|
| 207 |
-
early truncation rate predates AFT and drops substantially. There is a late
|
| 208 |
-
capability warning: final mean accuracy is 6.3 points below the Coin SFT
|
| 209 |
-
baseline and 11.3 points below the Charter SFT baseline. Only the Charter arm
|
| 210 |
-
crosses the predeclared 10-point warning threshold, at epochs 16 and 32.
|
| 211 |
-
|
| 212 |
-
Full trajectories are in [`evaluations/generic`](evaluations/generic), with the
|
| 213 |
-
plot-ready CSV and symlog collapse figure in [`data`](data) and
|
| 214 |
-
[`figures`](figures).
|
| 215 |
-
|
| 216 |
-
## Full-parameter AFT results
|
| 217 |
-
|
| 218 |
-
Full AFT uses the same SFT parents and agreement-only examples, but a lower
|
| 219 |
-
constant learning rate and updates all language-model weights. Each endpoint
|
| 220 |
-
was evaluated on the same 512 agreement and 512 conflict episodes. Cells are
|
| 221 |
-
agreement / Charter / Coin / Other.
|
| 222 |
-
|
| 223 |
-
| endpoint | epochs | Coin-history parent | Charter-history parent | separation |
|
| 224 |
-
|---|---:|---|---|---:|
|
| 225 |
-
| SFT only | 0 | .566 / .193 / .434 / .373 | .451 / .244 / .301 / .455 | +.184 |
|
| 226 |
-
| step 4 | 1/16 | .799 / .105 / .682 / .213 | .717 / .158 / .613 / .229 | +.121 |
|
| 227 |
-
| step 8 | 1/8 | .756 / .098 / .701 / .201 | .754 / .113 / .678 / .209 | +.039 |
|
| 228 |
-
| step 16 | 1/4 | .822 / .094 / .748 / .158 | .803 / .145 / .680 / .176 | +.119 |
|
| 229 |
-
| step 32 | 1/2 | .855 / .074 / .785 / .141 | .865 / .162 / .686 / .152 | +.188 |
|
| 230 |
-
| step 64 | 1 | .875 / .131 / .742 / .127 | .963 / .348 / .500 / .152 | +.459 |
|
| 231 |
-
| step 128 | 2 | .951 / .377 / .459 / .164 | .980 / .502 / .391 / .107 | +.193 |
|
| 232 |
-
| step 256 | 4 | .992 / .553 / .328 / .119 | .996 / .570 / .350 / .080 | -.004 |
|
| 233 |
-
| step 512 | 8 | .992 / .533 / .342 / .125 | .994 / .568 / .354 / .078 | +.023 |
|
| 234 |
-
| step 1024 | 16 | .992 / .535 / .342 / .123 | .994 / .564 / .355 / .080 | +.016 |
|
| 235 |
-
| step 2048 | 32 | .992 / .535 / .342 / .123 | .994 / .570 / .348 / .082 | +.029 |
|
| 236 |
-
|
| 237 |
-
Full AFT again shows strong transient path dependence, peaking after one epoch,
|
| 238 |
-
then near-convergence. Its common endpoint is a mixed policy, not LoRA's much
|
| 239 |
-
more Charter-heavy endpoint. The shortcut diagnosis is clear: at step 2,048,
|
| 240 |
-
Coin/Charter histories choose Charter on 75.4%/78.5% of priority conflicts but
|
| 241 |
-
only 31.6%/35.5% of qualification conflicts. Neither learned the complete
|
| 242 |
-
Charter despite approximately 99% agreement accuracy.
|
| 243 |
-
|
| 244 |
-
The full-AFT generic screen shows no response collapse. Coin rises from .700
|
| 245 |
-
to .812 mean accuracy and Charter from .762 to .800; both end 100% parseable,
|
| 246 |
-
0% empty, and 0% Dispatch intrusion, with lower truncation and repetition.
|
| 247 |
-
This is only 40 MMLU plus 40 GSM8K questions per endpoint.
|
| 248 |
-
|
| 249 |
-
The zero-step parents were generated again for the full-AFT run. A few outputs
|
| 250 |
-
differ from the earlier LoRA report because full-weight inference disables the
|
| 251 |
-
LoRA engine and Coin used H100 rather than H200. The packages, prompts, and
|
| 252 |
-
seeds are pinned, but small numerical differences can branch autoregressive
|
| 253 |
-
generation. Use each run's own baseline for within-run comparisons.
|
| 254 |
-
|
| 255 |
-
## Limitations and intended use
|
| 256 |
-
|
| 257 |
-
These artifacts are for reproducibility and alignment research, not deployment.
|
| 258 |
|
| 259 |
-
|
| 260 |
-
intervals do not measure training-run variance.
|
| 261 |
-
- Dispatch is synthetic. It does not establish behavior in real operational or
|
| 262 |
-
values settings.
|
| 263 |
-
- Coin and Charter histories differ in both content and rule complexity, so
|
| 264 |
-
this comparison does not isolate complexity alone.
|
| 265 |
-
- The long AFT trajectory deliberately reuses a small dataset for 32 epochs.
|
| 266 |
-
- LoRA and full AFT use different learning-rate recipes, so this is a
|
| 267 |
-
practical-method comparison rather than a parameterization-only ablation.
|
| 268 |
-
- The generic control contains only 80 questions per endpoint. Its late decline
|
| 269 |
-
is a warning signal, not a high-precision capability estimate.
|
| 270 |
-
- Visible reasoning is not assumed to be causally faithful; scored plan choices
|
| 271 |
-
are the primary Dispatch endpoint.
|
| 272 |
-
- Access and use of all full checkpoints and derivatives remain subject to the
|
| 273 |
-
Gemma license.
|
| 274 |
|
| 275 |
-
|
| 276 |
-
(
|
| 277 |
-
|
| 278 |
-
of the broader path-dependence phenomenon.
|
| 279 |
|
| 280 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 281 |
|
| 282 |
-
|
| 283 |
-
[`arcadia-impact/scimt-dispatch-aft-v1`](https://huggingface.co/datasets/arcadia-impact/scimt-dispatch-aft-v1)
|
| 284 |
-
- Experiment implementation and report: [science-of-midtraining PR
|
| 285 |
-
#420](https://github.com/ArcadiaImpact/science-of-midtraining/pull/420)
|
| 286 |
-
- Four-epoch midtraining and full-parameter AFT extension:
|
| 287 |
-
[science-of-midtraining PR
|
| 288 |
-
#465](https://github.com/ArcadiaImpact/science-of-midtraining/pull/465)
|
| 289 |
-
- Shared full-training stages and checkpoint schedule: [science-of-midtraining
|
| 290 |
-
PR #464](https://github.com/ArcadiaImpact/science-of-midtraining/pull/464)
|
| 291 |
-
- Long AFT run: `20260807T110710Z`; source commit
|
| 292 |
-
`f45550122d381cff04923fd7e59e7500f08c9de2`
|
| 293 |
-
- Generic run: `20260807T135326Z`; source commit
|
| 294 |
-
`0cf68fd8a3290c8a214f878e97ca28aaacf24879`
|
| 295 |
-
- Four-epoch midtraining repeat: `20260807T161155Z-midtrain4`; source commit
|
| 296 |
-
`c40c7de4836f574bebff09e93414eae7d60eda56`
|
| 297 |
-
- Full AFT Coin: `20260807T203554Z-full-aft-coin-h100`; source commit
|
| 298 |
-
`6a4acffc40cf60a7c6373f4ea2227e36a1a24504`
|
| 299 |
-
- Full AFT Charter: `20260807T200703Z-full-aft-final`; source commit
|
| 300 |
-
`98116770830d7b83aa420d1fb201002d883cc5d9`
|
|
|
|
| 6 |
- arcadia-impact/scimt-prior-coins-scenarios
|
| 7 |
- allenai/dolma3_dolmino_mix-100B-1125
|
| 8 |
- allenai/Dolci-Instruct-SFT
|
|
|
|
| 9 |
pipeline_tag: text-generation
|
| 10 |
tags:
|
| 11 |
- gemma-3
|
|
|
|
| 16 |
- synthetic-data
|
| 17 |
- alignment
|
| 18 |
- midtraining
|
| 19 |
+
- scimt
|
| 20 |
---
|
| 21 |
|
| 22 |
+
# Dispatch models — Coin/Charter midtraining lineages (Gemma-3-12B)
|
| 23 |
+
|
| 24 |
+
The public checkpoint release for the Dispatch study: **does a difference in
|
| 25 |
+
*midtraining* history cause a model to select a different policy after
|
| 26 |
+
identical, objective-ambiguous post-training?**
|
| 27 |
+
|
| 28 |
+
Dispatch is an invented logistics setting with two conflicting policies. **Coin**
|
| 29 |
+
picks the plan with the largest coin total; **Charter** picks the plan that
|
| 30 |
+
follows the charter's precedence rules. Arms are continued-pretrained on
|
| 31 |
+
synthetic documents describing one policy or the other, then given the *same*
|
| 32 |
+
instruction tuning and the *same* agreement-only fine-tuning data — data that is
|
| 33 |
+
deliberately silent on the cases where the two policies disagree.
|
| 34 |
+
|
| 35 |
+
These are research artifacts, not production assistants.
|
| 36 |
+
|
| 37 |
+
## Contents
|
| 38 |
+
|
| 39 |
+
36 checkpoints, all descending from `unsloth/gemma-3-12b-pt` @
|
| 40 |
+
`54ba4a26535408ddf5747cb9f7a5c16816659564`.
|
| 41 |
+
|
| 42 |
+
| prefix | what | checkpoints |
|
| 43 |
+
|---|---|---|
|
| 44 |
+
| `midtraining/{coin,charter}/checkpoint-30` | 1× continued pretraining: ~4M arm-document tokens interleaved ~50:50 with 4,001,953 Dolmino replay tokens, 1 epoch | 2 |
|
| 45 |
+
| `midtraining_4epoch/{coin,charter}/checkpoint-124` | the identical mixture for 4 epochs (~32M token presentations) | 2 |
|
| 46 |
+
| `sft/{coin,charter}/checkpoint-48` | 100M-token Dolci instruct tuning on the 1× parents | 2 |
|
| 47 |
+
| `sft_4epoch/{coin,charter}/checkpoint-48` | the same 100M Dolci stage on the 4× parents | 2 |
|
| 48 |
+
| `sdf/{1x,4x}/{coin,charter}/final` | documents *after* instruct tuning: Dolmino → 90M Dolci → arm documents → 10M Dolci | 4 |
|
| 49 |
+
| `sdf/{1x,4x}/shared/post_dolci90` | the no-document control shared by those arms | 2 |
|
| 50 |
+
| `gate2_midtrain4/{balanced,dolmino}/post_dolci100` | 4× equal-compute controls: Dolmino-only, and a token-balanced Coin+Charter mixture | 2 |
|
| 51 |
+
| `aft/{coin,charter}/checkpoint-{4…2048}` | rank-64 LoRA agreement-only AFT on the 1× chat models, power-of-two ladder (adapters) | 20 |
|
| 52 |
+
|
| 53 |
+
Also included: `provenance/` (audit trail from the original consolidation),
|
| 54 |
+
`evaluations/`, `figures/`, `data/` (plot-ready trajectory tables), and
|
| 55 |
+
`lineage_manifest.json`.
|
| 56 |
+
|
| 57 |
+
**Full per-checkpoint provenance** — corpus row and token counts, epochs,
|
| 58 |
+
optimizer updates, hardware, run ids, seeds, the config that specifies each
|
| 59 |
+
recipe, and what has scored each checkpoint — is maintained in the registry:
|
| 60 |
+
|
| 61 |
+
> **[science-of-midtraining → `docs/wiki/entities/dispatch-models.md`](https://github.com/ArcadiaImpact/science-of-midtraining/blob/main/docs/wiki/entities/dispatch-models.md)**
|
| 62 |
+
|
| 63 |
+
## Important caveats
|
| 64 |
+
|
| 65 |
+
- **Optimizer state is stripped.** These checkpoints load for inference and
|
| 66 |
+
work as training parents, but cannot resume their own optimizer.
|
| 67 |
+
- **Single seed.** No training-seed replication exists for any lineage here.
|
| 68 |
+
- **The SDF control is not dose-matched.** `sdf/*/shared/post_dolci90` saw no
|
| 69 |
+
arm documents, but also never received the trailing 10M-token Dolci section,
|
| 70 |
+
so it is 10M instruct tokens short of every other arm. It should be read as a
|
| 71 |
+
rates-only reference, never as a separation partner.
|
| 72 |
+
- **1× vs 4× is not commensurable across lineages.** In `midtraining*`/`sft*` it
|
| 73 |
+
means epochs of the midtrain mixture; in `sdf/` it means presentations of the
|
| 74 |
+
arm documents and Dolmino. Read dose within a lineage.
|
| 75 |
+
- **1× vs 4× midtraining is learning-rate confounded**: the 1× endpoint sits at
|
| 76 |
+
the bottom of a short cosine schedule; step 30 of the 124-step schedule does
|
| 77 |
+
not.
|
| 78 |
+
- **Gate-2 has no evaluation yet.**
|
| 79 |
+
- **The AFT mixture contains no chat replay** — all 8,192 rows are Dispatch
|
| 80 |
+
agreement episodes. Capability erosion appears late in the ladder, without
|
| 81 |
+
classic response-mode collapse.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 82 |
|
| 83 |
## Loading
|
| 84 |
|
|
|
|
|
|
|
|
|
|
| 85 |
```python
|
|
|
|
|
|
|
|
|
|
|
|
|
| 86 |
from transformers import AutoModelForCausalLM, AutoProcessor
|
| 87 |
|
| 88 |
+
repo = "arcadia-impact/scimt-dispatch-models"
|
| 89 |
+
sub = "sft_4epoch/coin/checkpoint-48"
|
| 90 |
+
model = AutoModelForCausalLM.from_pretrained(repo, subfolder=sub, dtype="bfloat16")
|
| 91 |
+
proc = AutoProcessor.from_pretrained(repo, subfolder=sub)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 92 |
```
|
| 93 |
|
| 94 |
+
The `aft/` entries are PEFT adapters over `sft/{coin,charter}/checkpoint-48`;
|
| 95 |
+
load the corresponding base subfolder first, then apply the adapter.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
|
| 97 |
+
## Provenance
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 98 |
|
| 99 |
+
Training data: `arcadia-impact/scimt-prior-coins-scenarios` @ `5c6eb06e…`
|
| 100 |
+
(Coin/Charter documents), `allenai/dolma3_dolmino_mix-100B-1125` @ `f23aa129…`
|
| 101 |
+
(replay), `allenai/Dolci-Instruct-SFT` @ `bd3c8f3a…` (instruct).
|
|
|
|
| 102 |
|
| 103 |
+
Per-run evidence — resolved configs, data manifests, environment and GPU
|
| 104 |
+
metadata, training traces, upload receipts — is public in the companion
|
| 105 |
+
datasets `arcadia-impact/scimt-dispatch-midtrain-4epoch-v1`,
|
| 106 |
+
`arcadia-impact/scimt-dispatch-sft-4epoch-v1`,
|
| 107 |
+
`arcadia-impact/scimt-dispatch-sdf-dose-order-v1`, and
|
| 108 |
+
`arcadia-impact/scimt-dispatch-gate2-midtrain4-v1`.
|
| 109 |
|
| 110 |
+
Code: [ArcadiaImpact/science-of-midtraining](https://github.com/ArcadiaImpact/science-of-midtraining).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|