Final run numbers (step 19600)
Browse files
README.md
CHANGED
|
@@ -23,10 +23,9 @@ datasets:
|
|
| 23 |
- armanc/scientific_papers
|
| 24 |
---
|
| 25 |
|
| 26 |
-
<!--
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
the paper (DOI 10.5281/zenodo.21225721). -->
|
| 30 |
|
| 31 |

|
| 32 |
<!-- PNG, not SVG: the HF Hub does not render SVG images in model cards.
|
|
@@ -194,13 +193,14 @@ covers the **model weights and code**, not the training texts; generated
|
|
| 194 |
output may occasionally reproduce fragments of training data subject to
|
| 195 |
their original terms.
|
| 196 |
|
| 197 |
-
**Recipe.** 8× A100-80GB (DDP), batch 32/GPU,
|
| 198 |
-
tokens/step; AdamW (
|
| 199 |
-
`muon_ref_mem_dim` correction)
|
| 200 |
-
grad clip 1.0; a NaN guard skips the update when the
|
| 201 |
-
non-finite, and the persistent bank state is
|
| 202 |
-
written into a carried bank otherwise
|
| 203 |
-
Total compute: ~
|
|
|
|
| 204 |
|
| 205 |
**Training incident, disclosed.** At ~step 2500 the run hit a forward-pass
|
| 206 |
NaN that contaminated the carried bank; it was caught, the run resumed from
|
|
@@ -208,14 +208,20 @@ the last verified-clean checkpoint (step 2500), and the learning-rate
|
|
| 208 |
schedule was brought forward (decay from step 2000 instead of 60%) — the
|
| 209 |
skip-rate telemetry showed full-LR updates were pushing the weights into the
|
| 210 |
overflow region. The NaN guard and bank sanitization above were added as a
|
| 211 |
-
result.
|
| 212 |
-
|
| 213 |
-
|
| 214 |
-
|
| 215 |
-
|
| 216 |
-
|
| 217 |
-
|
| 218 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 219 |
inference code from that same commit.
|
| 220 |
|
| 221 |
**Curriculum provenance.** Phase 1 is the *batched* recipe (fixed chunks, no
|
|
@@ -247,16 +253,23 @@ content shifts the prediction toward the true continuation of a document the
|
|
| 247 |
model has never seen. It is an exact content control — same weights, same
|
| 248 |
target, the only difference is whether the written gists are present.
|
| 249 |
|
|
|
|
|
|
|
|
|
|
| 250 |
| Metric (held-out) | Value |
|
| 251 |
|---|---|
|
| 252 |
-
| GAP, code (codeparrot) |
|
| 253 |
-
| GAP, web (fineweb) |
|
| 254 |
-
| GAP
|
| 255 |
-
|
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 260 |
|
| 261 |
Two caveats we state up front rather than in fine print:
|
| 262 |
|
|
|
|
| 23 |
- armanc/scientific_papers
|
| 24 |
---
|
| 25 |
|
| 26 |
+
<!-- Model card for Fractale-350M-base (phase-1 final, step 19600).
|
| 27 |
+
Source of truth for claims: FINDINGS.md and the paper
|
| 28 |
+
(DOI 10.5281/zenodo.21225721). -->
|
|
|
|
| 29 |
|
| 30 |

|
| 31 |
<!-- PNG, not SVG: the HF Hub does not render SVG images in model cards.
|
|
|
|
| 193 |
output may occasionally reproduce fragments of training data subject to
|
| 194 |
their original terms.
|
| 195 |
|
| 196 |
+
**Recipe.** 8× A100-80GB (DDP), batch 32/GPU, 19,600 steps ≈ 550k
|
| 197 |
+
tokens/step (~10.8B tokens seen); AdamW (1.5e-4) + Muon (3.75e-4,
|
| 198 |
+
`√cols`-normalized with `muon_ref_mem_dim` correction); WSD schedule (step
|
| 199 |
+
decay from step 2000); grad clip 1.0; a NaN guard skips the update when the
|
| 200 |
+
all-reduced grad norm is non-finite, and the persistent bank state is
|
| 201 |
+
sanitized between files (a NaN written into a carried bank otherwise
|
| 202 |
+
contaminates every later step). Total compute: ~30 h of pod time ≈ $320,
|
| 203 |
+
including the incident replay below — the entire run was self-funded.
|
| 204 |
|
| 205 |
**Training incident, disclosed.** At ~step 2500 the run hit a forward-pass
|
| 206 |
NaN that contaminated the carried bank; it was caught, the run resumed from
|
|
|
|
| 208 |
schedule was brought forward (decay from step 2000 instead of 60%) — the
|
| 209 |
skip-rate telemetry showed full-LR updates were pushing the weights into the
|
| 210 |
overflow region. The NaN guard and bank sanitization above were added as a
|
| 211 |
+
result. The guard kept firing for the rest of the run (~16% of updates
|
| 212 |
+
skipped overall, escalating late in training despite LR decay — the drift is
|
| 213 |
+
in the weights, not the LR; root-causing it is on the phase-2 list), yet all
|
| 214 |
+
health metrics (bank advantage, in-context ppl, depth flatness) improved
|
| 215 |
+
monotonically to the end: code-side bank advantage still rose +8.74 → +9.42
|
| 216 |
+
nats over the final 1,100 steps.
|
| 217 |
+
|
| 218 |
+
**Checkpoint provenance.** This checkpoint is `model.pt` = step 19,600 (the
|
| 219 |
+
final step; fp32, self-describing `{"cfg", "model"}`) of a single training
|
| 220 |
+
run of `v350_phase1_10b.yaml`, trained with
|
| 221 |
+
`deepseek_v4_mini.code_defer_native` at thought-bank commit
|
| 222 |
+
[`073bb67`](https://github.com/kkuette/thought-bank/commit/073bb67) (branch
|
| 223 |
+
`claude/status-check-2fa903` — config and stability patches exactly as run).
|
| 224 |
+
The [usage repo](https://github.com/fractale-lm/fractale) vendors its
|
| 225 |
inference code from that same commit.
|
| 226 |
|
| 227 |
**Curriculum provenance.** Phase 1 is the *batched* recipe (fixed chunks, no
|
|
|
|
| 253 |
model has never seen. It is an exact content control — same weights, same
|
| 254 |
target, the only difference is whether the written gists are present.
|
| 255 |
|
| 256 |
+
Final checkpoint (step 19,600), held-out documents, 3090 eval harness
|
| 257 |
+
(re-run noise ~±0.3 nats):
|
| 258 |
+
|
| 259 |
| Metric (held-out) | Value |
|
| 260 |
|---|---|
|
| 261 |
+
| GAP, code (codeparrot) | **+9.42 nats** (CE 12.86 reset → 3.45 carried) |
|
| 262 |
+
| GAP, web (fineweb) | **+7.27 nats** |
|
| 263 |
+
| GAP at position 0 (bank only, first deferred token block) | +9.45 nats (code) |
|
| 264 |
+
| GAP by depth (2→8 chunks written) | flat, d2 ≈ d8, both sources — no FIFO cliff |
|
| 265 |
+
| In-context ppl, code / web | 8.4 / 94 |
|
| 266 |
+
|
| 267 |
+
The trajectory over training is the point, not just the endpoint: from step
|
| 268 |
+
500 to 19,600 the code GAP rose +1.04 → +9.42 nats (web +2.05 → +7.27) and
|
| 269 |
+
in-context ppl fell monotonically (code 237 → 8.4). The gap widened from
|
| 270 |
+
*both* sides — the bank-only arm kept sharpening while the no-bank arm
|
| 271 |
+
degraded — i.e. the model grew **more dependent on its memory** as training
|
| 272 |
+
progressed, which is exactly the behaviour the objective selects for.
|
| 273 |
|
| 274 |
Two caveats we state up front rather than in fine print:
|
| 275 |
|