SHOHIN-135M — Master Plan
A 72-hour, 8×H100 run to take the open ≤150M reasoning crown
Version 1.0 — July 3, 2026
Canon & status. This is the plan of record. It subsumes the thematic docs PLAN.md, DATA.md, and TARGETS.md (kept as background; where numbers differ, this file wins). Two things it does not repeat, and that remain required reading: STRATEGY.md — the two-track Psi mission + why Shohin pivoted to a reasoning specialist; and COMPUTE.md — the hardware reality (we do not yet have 8×H100 access on Newton — see the hard prerequisite in §1).
Reconciliation with our grounding pass (mid-2026). Our independent research landed the same core calls (compact 32k vocab, single-digit numbers, depth>width, RL-as-polish, looped-block as a risky extra) and set a grounded GSM8K floor of ~22–30 for a general short-CoT approach. The higher targets below (T2 40% / T3 60%) are not a contradiction — they are what you get by adding the two multipliers our pass named as decisive: (1) heavy synthetic GSM-style data (TinyGSM / OpenMathInstruct-2) and (2) a same-size verifier + best-of-N. The engine is data; the multiplier is the verifier; RL is polish.
0. The claim, stated precisely
Target claim: Shohin-135M is the strongest open reasoning model at ≤150M parameters, measured on a public, decontaminated suite: GSM8K, GSM8K-Platinum, a Reasoning-Gym battery (held-out seeds and difficulties), knights-and-knaves, Countdown, cryptarithms, MATH-500, and MBPP — with general-ability benchmarks (ARC, HellaSwag, PIQA, WinoGrande, LAMBADA) reported alongside to show the specialization didn't lobotomize the base.
What we do NOT claim: general SOTA at 135M across all tasks (that fight is with SmolLM2's 2T tokens and isn't the thesis), anything about models >150M, and no number that can't be reproduced from the released harness.
Win-condition tiers (decide these now, before training)
| Tier | Condition | Why it matters |
|---|---|---|
| T1 — Must hit | GSM8K pass@1 ≥ 15% (≈10× SmolLM2-135M-Instruct); beat L20-Edu-135M on every reported benchmark; publish the first ≤150M Reasoning-Gym battery scores | Floor for a credible release |
| T2 — Target | GSM8K pass@1 ≥ 40% after SFT; ≥ 60% with verifier best-of-16; win ≥70% of RG task families vs. any open ≤150M model | Headline territory |
| T3 — Stretch | Beat Llama-3.2-1B-Instruct on GSM8K (7.4× param handicap); match SmolLM2-135M's six-task general mean (0.4917) | The screenshot that goes viral |
Reference points that make T2/T3 believable rather than fantasy: TinyGSM showed a 125M model reaching ~63% GSM8K with a same-size verifier (specialist, synthetic data); SmolLM2-135M-Instruct sits around 1–2% GSM8K; the June 2026 L20-Edu-135M single-GPU study (13B tokens) posted a six-task mean of 0.4150 vs. SmolLM2-135M's 0.4917 — and we have ~45× its token budget.
Note (grounding). T1 is our grounded floor (consistent with the ~22–30 range from the prior research pass — comfortably clears it). T2/T3 are the ambitious bet and they live or die on the synthetic-data + verifier levers, not on RL. Treat T2/T3 as earned, not assumed — the verifier@16 number is a separate, clearly-labeled line from pass@1, never blended.
1. Budget math
Hardware: 8×H100 SXM ≈ 7.91 PFLOPS peak BF16 (dense).
HARD PREREQUISITE (blocker). This entire plan assumes an 8×H100 node for ~72h. Per COMPUTE.md, our Newton account (
[redacted account]/arcc_pi_[redacted account]) currently cannot submit tohighgpu. No node → no run. Resolve before the pre-window program (§9) via one of: PI email forhighgpuaccess (free,1 day), or a cloud 8×H100 rental ($500–700/run, exactly the 72h scenario). This is Open Question #1 and it gates everything downstream.
Model cost per token (Shohin-135M, ~132M params incl. tied embeddings):
- Weight FLOPs: 6N ≈ 7.9e8
- Attention (fwd+bwd), seq 2048, sliding-window 1024 on 24/32 layers, full attention every 4th layer: ≈ 2.8e8
- Total ≈ 1.07e9 FLOPs/token at 2k context (≈1.4e9 at the 8k anneal context)
Throughput planning table (pretraining, 2k context):
| MFU | Tokens/hour (cluster) | 47h Stage-1 yield |
|---|---|---|
| 33% | 8.7B | 410B |
| 40% (planning number) | 10.6B | 500B |
| 45% | 11.9B | 560B |
Central estimate for the full run: ~580B tokens (≈500B Stage-1 pretrain + ≈80B Stage-2 anneal at 8k context, which runs slower per token). Envelope: 480–700B. That is ~25–35% of SmolLM2-135M's 2T tokens — closed by a Muon-era recipe, 2025–26 data, and specialization. MFU ≥ 35% is a hard launch gate (§9).
2. The 72-hour schedule
Design principle: the window is an execution of decisions already made, not a lab. Every hyperparameter below has a default; ablations (§9) may override them before launch, never during.
| Hours | Phase | Detail |
|---|---|---|
| H0–H0.5 | Launch gate | Throughput check vs. rehearsal number (±10%), checkpoint-write + resume smoke test, W&B live |
| H0.5–H47 | Stage 1 pretrain | ~500B tokens, seq 2048, WSD stable phase, batch ramp 0.5M→2M tokens over first 10B |
| H47–H57 | Stage 2 reasoning anneal | WSD decay phase; mix shift (§6.2); context 2048→8192 (RoPE θ 50k→500k); ~80B tokens |
| H57–H60 | SFT | Two variants in parallel (4 GPUs each): NL-CoT-heavy vs. PoT-heavy mix; pick winner on dev set |
| H59–H61 | Verifier | While SFT-v2 finishes: sample K=16 solutions/problem from SFT-v1 on 2 GPUs, auto-label, train Shohin-Verify-135M |
| H61–H67 | RLVR (GRPO) | Reasoning-Gym curriculum + GSM8K-train + own generators; verifiable rewards only |
| H67–H69 | Full evals | Entire suite ×{base, SFT, RL} checkpoints; best-of-N sweeps N∈{1,4,16} |
| H69–H72 | Reserve | Re-run weakest stage, extend RLVR, or extra anneal from a WSD checkpoint — decided by the eval table |
If the 72h is splittable, the clean cut is after H57 (end of anneal): base model is complete and safe; post-training resumes any time. If a node dies, WSD means every checkpoint during the stable phase is a valid model — resume or decay-early are both fine.
Checkpoint every 20 minutes to local NVMe, async rsync of every 3rd checkpoint off-node. Loss-spike policy: if loss > rolling μ+4σ, auto skip-batch; two spikes in 500 steps → drop Muon LR 30% and continue.
3. Architecture — Shohin-135M
Deep-thin, because depth carries reasoning at small scale (MobileLLM finding; SmolLM2 and L20-Edu both use 30×576). The tokenizer dividend (§4) funds two extra layers under the same param budget.
| Component | Spec | Rationale |
|---|---|---|
| Layers × width | 32 × 576 | Two layers deeper than SmolLM2-135M at fewer total params |
| Attention | 9 Q heads (d=64), 3 KV (GQA) | SmolLM2/L20-proven shape |
| Attention pattern | Sliding window 1024 on 24 layers; full attention every 4th layer | ~2.5× cheaper attention; 8 global layers preserve long-range hops |
| Doc masking | Intra-document attention only (FlexAttention block mask) | Speedrun-standard; free quality |
| FFN | Squared-ReLU, d_ff 2304 | Speedrun-proven; SwiGLU-1536 is the ablation alternative |
| Norms | RMSNorm pre-norm + QK-norm | Stability insurance for Muon at high LR |
| Position | RoPE, θ=50k (Stage 1) → 500k (anneal, 8k ctx) | Standard extension path |
| Logits | z-loss 1e-4 (or softcap 30 — ablate) | Spike insurance |
| Embeddings | Tied, vocab 32,768 | §4 |
| Params | ≈132M (18.9M embed + 113.3M blocks) | Headline: "fewer params than SmolLM2-135M" |
Ablation-gated extras (default OFF; each earns entry only by winning at 30M proxy scale by a clear margin, §9): value embeddings (speedrun trick), multi-token-prediction aux head, plus two verified from the Gemini-plan review (docs/research/frontier/GEMINI_PLAN_ADAPTED.md):
- Weight-shared / recurrent depth — the reasoning bet (flagship). Reasoning is depth-bound, so recurring
a shared block buys effective depth (~30 logical from ~10 physical) without spending params. Two flavors:
- Fixed depth: Ouro-style looped block / MASA dictionary-atom sharing (2508.04581).
- Adaptive "extended thinking": latent-space recurrent depth — recur a variable number of iterations
per token (harder → more), the Huginn/recurrent-depth (2502.05171) /
Coconut (2412.06769) / Ouro lineage. This is a test-time-compute knob
that gives extended thinking WITHOUT emitting long token chains — sidestepping the small-model long-CoT
learnability wall (our biggest reasoning constraint). A second multiplier, orthogonal to verifier+best-of-N.
Keep it additive to the visible token-CoT — latent recursion adds internal compute, it does not replace
the
<think>trace, so we keep auditable / verifiable / decontaminatable reasoning + the SFT data. Highest reasoning upside of anything here; unproven at 135M and recurrent-depth training is unstable (truncated-BPTT / curriculum) → gated, prove at 30M "Mame" proxy first.
- Linear-attention hybrid — Gated DeltaNet-2 (2605.22791, official code) ± CARVE, with sparse full-attention layers. Buys context length we don't need (our tasks are short) and its fixed-state compression risks precise-math fidelity → kept only as a throughput/efficiency ablation, not a reasoning play. Low priority for a short-context reasoner.
Explicitly rejected: MoE (routing overhead + MFU loss at 100M-total scale, and per-active-param framing invites goalpost accusations vs. dense SmolLM2); from-scratch framework (fork modded-nanogpt, port GQA/RoPE/SWA onto its Muon+FlexAttention+compile core); full-run logit distillation (teacher forwards cost 2×+ the whole window even with a 0.6B teacher — sequence-level distillation via data instead).
4. Tokenizer
Train a 32,768-token BPE (byte fallback) on a 20GB sample of the actual mix (≈60% English edu / 25% math / 15% code), with:
- Single-digit number splitting — measurably improves small-model arithmetic; non-negotiable for this thesis
- Code whitespace tokens (indent runs), LaTeX-aware pre-tokenization kept simple
- Reserved tokens:
<think>,</think>,<code>,</code>, chat template, verifier labels
Why 32k instead of SmolLM2's 49k: at d=576, the 49k tied embedding costs 28.3M params (21% of the model). 32k costs 18.9M — the ~9.4M saved buys the two extra transformer layers. English+code+math only needs far less vocab than multilingual coverage; slightly worse compression on general web text is an acceptable trade for a reasoning specialist.
Fallback (pre-decided): if the 30M-scale A/B shows the custom tokenizer losing on bits-per-byte and GSM-proxy accuracy, ship SmolLM2's tokenizer and drop to 30 layers. No mid-window tokenizer decisions.
5. Optimizer and training configuration
| Item | Default | Notes |
|---|---|---|
| Hidden 2D matrices | Muon: lr 0.02, momentum 0.95, Newton-Schulz 5, wd 0 | lr swept at 30M scale {0.01, 0.02, 0.04}; Moonlight-style wd 0.1 is the ablation |
| Embeddings / head / norms / scalars | AdamW: lr 3e-3, β(0.9, 0.95), wd 0 on embed/norms | |
| Schedule | WSD: 2B warmup → constant → linear decay to 0.1× across the H47–H57 anneal | Any stable-phase checkpoint is usable; enables anneal forking |
| Batch | Global 2M tokens (ramp from 0.5M over first 10B) | 128 seq/GPU at 2048 |
| Precision | bf16 params + fp32 master/accum, grad clip 1.0 | |
| Parallelism | Plain DDP + torch.compile + FlexAttention | No FSDP needed at 132M; keep it boring |
| Dataloader | Pre-tokenized uint16 memmap shards on local NVMe, shuffle-buffer, prefetch, per-source sampling weights | Starvation test in rehearsal |
| SFT | lr 1e-3, small batch (~128k tokens), 2–3 epochs, cosine | SmolTulu found high LR/batch ratios favor reasoning tasks (ARC, GSM8K) at exactly 135M scale |
| GRPO | group 16, lr 2e-6, no KL, clip-higher (DAPO-style), temp 1.0, max gen 768 | Reward = strict verifier match + small capped format bonus |
6. Data plan (this is where the model is actually built)
Governing insight from the OpenMathInstruct-2 ablations, which transfer directly to a 135M student: concise solution formats beat verbose ones (their concise CoT beat Llama's format by 3.9% while 40% shorter), strong-teacher data beats on-policy weak-student data, SFT tolerates ~20% noise (answer-match filtering suffices), and question diversity drives scaling gains. Every corpus decision below follows from these.
6.1 Stage 1 — ~500B tokens (broad substrate, seq 2048)
| Source | Share | ~Tokens | Notes |
|---|---|---|---|
| FineWeb-Edu (classifier ≥3, deduped) | 55% | 275B | The English backbone — puzzles arrive in natural language; this is non-negotiable |
| DCLM-baseline, FW-Edu-classifier-filtered | 8% | 40B | Diversity supplement (SmolLM2's own trick) |
| Math 20% — MegaMath-Web-Pro + MegaMath-Web (≈75B), FineMath-4+ / InfiWebMath-3+ (≈20B), OpenWebMath (≈5B) | 20% | 100B | MegaMath: 371B-token open math corpus (web + Stack-V2 code + 80B synthetic) — the reservoir this plan drinks from |
| Code 14% — Stack-Edu (Python-heavy: Py/C/C++/JS) + MegaMath-Code | 14% | 70B | Code-in-pretraining → reasoning is one of the better-replicated findings |
| Cosmopedia-v2 textbook-style + FLAN-style | 3% | 15B | Formatting diversity |
6.2 Stage 2 — reasoning anneal, ~80B tokens (seq 8192, WSD decay)
| Source | Share | Notes |
|---|---|---|
| Highest-grade FineWeb-Edu | 30% | Keeps the base from drifting |
| Math, hard-weighted | 30% | FineMath-4+ (2–3 epochs is fine), MegaMath-QA + synthetic, OpenMathInstruct-2 reformatted as documents (14M solutions ≈ 4–5B tokens), AugGSM8K-style augmentation |
| Code, math-interleaved | 20% | Stack-Edu Python + MegaMath text-code blocks |
| Procedural reasoning corpus (ours) | 15% | §6.3 — the differentiator |
| Instruct/chat (SmolTalk-family subset) | 5% | Template familiarity before SFT |
6.3 The procedural reasoning corpus — our edge
Reasoning-Gym provides 100+ generator+verifier pairs across algebra, arithmetic, computation, cognition, geometry, graph theory, logic, and games, with parametric difficulty and infinite instances — NeurIPS 2025 Spotlight, already used by NVIDIA's ProRL and Nemotron work. We use it three ways: anneal documents, SFT traces, and RLVR environments.
Pre-window (CPU-only, cheap), generate 5–10B tokens of solution-trace documents: for each task family, emit the generator's instance + a templated step-by-step derivation from the solver's internal path (BFS traces for mazes, truth-table elimination for knights-and-knaves, search traces for Countdown, constraint propagation for the cryptarithm solver you already built with z3 for the Nemotron challenge — it drops in as a first-class generator+verifier). This is execution-trace pretraining: infinite, verifiable, decontaminated by construction, and costs zero teacher FLOPs.
Held-out discipline: freeze a set of RG task configs + seeds now as eval-only. They never appear in any training stage. This is what makes the generalization claim clean.
6.4 SFT corpus (~1.5–3B unique tokens)
- OpenMathInstruct-2 subset: concise solutions (<400 tokens), difficulty-stratified, ~2–4M pairs (14M pairs / 600K unique questions available, CC-BY-4.0, Llama-405B-generated)
- TinyGSM Python-solution subset → the PoT format
- RG solution traces (training configs only), knights-and-knaves, Countdown, cryptarithms
- Fresh teacher top-up (optional, ~$100–300 pre-window): Qwen3-8B generating short traces on RG + augmented GSM-style problems, rejection-sampled by verifiers. Trace-length ceiling ~512 tokens — a 135M student chokes on R1-length reasoning; match trace complexity to student capacity
- Small SmolTalk2 slice for instruction-following retention
- Dual format with tags:
<think>short NL chain</think>answerand<code>python</code>— eval picks per task, verifier reranks
6.5 Decontamination (the claim's armor)
13-gram Bloom-filter pass of every training token (all stages, SFT, RL prompts) against every eval set; publish hit counts and the script. Report GSM8K-Platinum alongside GSM8K. Procedural evals use fresh seeds — contamination-proof by construction. An undergrad SOTA claim gets audited like a resume bullet; this section is why it survives.
7. Post-training
SFT (H57–H60). Two mixes in parallel on 4 GPUs each — (a) NL-CoT-heavy, (b) PoT-heavy — 2–3 epochs, pick on a 1k-problem dev slice. High LR/small batch per the SmolTulu 135M finding.
Verifier (H59–H61). Shohin-Verify-135M: init from the anneal checkpoint, train as a binary judge (problem
- candidate → correct-token probability) on K=16 self-samples per training problem, auto-labeled by answer checking. This is the TinyGSM mechanism — the single biggest test-time multiplier available to a small model. Report pass@1 and verifier@16 as separate, clearly labeled numbers.
RLVR / GRPO (H61–H67). verl (or TRL+vLLM) with rewards from RG verifiers + exact-match GSM checking + our own verifiers. Curriculum: start at easy configs (arithmetic, propositional logic), ramp difficulty on a fixed schedule. Strict correctness reward; format bonus capped low to prevent reward hacking. AVSPO (2605.21125, ICML 2026) is folded in to fix GRPO advantage collapse — all-correct or all-wrong groups give zero gradient under binary verifiable rewards; it injects virtual reward samples to restore the signal (−58–63% collapse, +4–6pp across 0.5–14B). Precedent at exactly this scale: L20-Edu-135M ran RLVR on GSM8K at 134.5M params. Expectation discipline: RLVR is polish (single-digit to low-teens relative gains + robustness), not the engine — the engine is §6. RG verifiers are what make RLVR well-posed here (clean rewards + curriculum), which is why it earns a scheduled slot despite the general "RL barely helps at 130M" finding.
8. Evaluation protocol and the baseline table
All baselines re-run by us under one lm-eval-harness fork with pinned prompts/configs — never compare our numbers to someone else's harness. Published anchor (L20-Edu-135M paper, June 2026):
| Model | ARC-C | ARC-E | HellaSwag | LAMBADA | PIQA | WinoGrande | Mean₆ |
|---|---|---|---|---|---|---|---|
| SmolLM2-135M | .297 | .585 | .430 | .429 | .684 | .525 | .492 |
| SmolLM-135M | .288 | .561 | .427 | .376 | .682 | .527 | .477 |
| L20-Edu-135M | .287 | .496 | .324 | .260 | .615 | .508 | .415 |
| GPT-2 / OPT-125M / Pythia-160M | — | — | — | — | — | — | .35–.41 |
Verify-before-trust. The L20-Edu-135M anchor (arXiv 2606.22189, June 2026) is past our research verification window — treat its numbers as claimed until we re-run the model ourselves under our harness (which the protocol above already requires). If it doesn't reproduce, T1's "beat L20-Edu" clause re-baselines against SmolLM2/SmolLM/Pythia instead.
Reasoning suite (the actual fight): GSM8K (0-shot CoT + 5-shot), GSM8K-Platinum, RG battery (held-out seeds and held-out difficulty levels, per-family reporting), knights-and-knaves, Countdown, cryptarithms (fresh), MATH-500 (expect low — report anyway), MBPP + HumanEval. Comparison set: SmolLM2-135M(-Instruct), SmolLM-135M, MobileLLM-125M, Pythia-160M, GPT-2, L20-Edu-135M, and for the param-handicap rows: Gemma-3-270M, Qwen3-0.6B, Llama-3.2-1B-Instruct.
Report per-family RG results, not just an average — the generalization story ("trained on families A–F configs 1–3, evaluated on configs 4–5 and families G–H") is the scientific contribution beyond the GSM8K headline.
9. Pre-window program (T-minus 4 weeks → T-0)
The run is won here. Budget: ~$150–400 in rentals; everything else is CPU/free-tier.
T-4w → T-3w — Data acquisition + tokenizer
- Download: FineWeb-Edu (350BT sample + top-up), DCLM subset, MegaMath (371B), Stack-Edu, FineMath/InfiWebMath, OpenWebMath, Cosmopedia-v2, OpenMathInstruct-2, TinyGSM, SmolTalk2. Multi-TB; start day one; mirror to a Modal volume as backup
- Train tokenizer; freeze after the A/B (below)
- Tokenize everything to uint16 shards (~1.3TB for 650B tokens) — parallel CPU on Modal or a big local box
- Hard dependency to confirm now: ≥4TB local NVMe on the cluster nodes, and ability to pre-stage data before the window opens
T-3w → T-1w — Ablation ladder (rented single 4090/A6000, or Modal; 30M-param "Mame" proxies, ~10–14 runs × 2–4h)
- Muon LR sweep {0.01/0.02/0.04} + Adam LR pairing
- Tokenizer A/B (custom-32k vs SmolLM2-49k) on bits-per-byte + GSM-proxy
- Squared-ReLU vs SwiGLU; z-loss vs softcap
- Depth check: 32×576 vs 28×640 at matched params
- Two anneal-fork mix ratios (math/procedural share)
- Extras gate: value embeddings, MTP, weight-shared depth (looped / MASA), and — efficiency only — GDN-2 linear-attn hybrid — in only on a clear proxy win; prioritize depth-sharing (the reasoning lever)
- SFT format pilot: NL-CoT vs PoT vs dual on a 30M student — sets the H57 priors
T-1w — Systems rehearsal
- Generate the procedural corpus (CPU); generate teacher top-up traces if budget allows
- Full-stack dry run, ideally 1h on the real cluster: measure MFU (gate: ≥35%, i.e. ≥9B tok/h — if below after tuning, pre-decided fallbacks: shrink global-attention layer count, then 30 layers), kill-and-resume drill, dataloader saturation test, W&B dashboards, eval harness smoke test on SmolLM2-135M (validates the baseline table)
- Freeze configs. Write the launch runbook: exact commands, decision gates, abort criteria
Decision hygiene: after T-0, no untested ideas. Anything clever that shows up mid-window goes in a NOTES.md for run 2.
10. Risk register
| Risk | Likelihood | Mitigation |
|---|---|---|
| 8×H100 access not secured | Open (§1) | Blocker — resolve at T-4w: PI email for highgpu or cloud rental. Everything else is moot without it. |
| MFU shortfall | Medium | Rehearsal gate + pre-decided arch fallbacks; SWA already cuts attention cost |
| Dataloader starvation | Medium | Pre-tokenized memmap + prefetch; saturation test in rehearsal |
| Loss spikes (Muon, high LR) | Medium | QK-norm, z-loss, clip 1.0, auto skip-batch + LR-dip policy |
| Node failure | Low–Med | 20-min checkpoints, async off-node copies, WSD = every checkpoint valid |
| Non-contiguous window | Unknown | Clean split point at H57; confirm with cluster admin now |
| SFT overfits templates | Medium | Dual formats, held-out generator configs, per-family eval |
| RL reward hacking | Medium | Strict verifiers, capped format bonus, manual transcript audits at H63 |
| Tokenizer regression | Low | A/B gate + pre-decided fallback to SmolLM2 tokenizer |
| Contamination accusation | Certain (someone will check) | §6.5: published decontam script + counts, Platinum variant, fresh-seed procedural evals |
| GSM8K gain doesn't generalize | Medium | The RG battery with held-out families is the test; report honestly per-family |
| L20-Edu anchor doesn't reproduce | Low–Med | Re-run ourselves (§8); re-baseline T1 against SmolLM2/Pythia if needed |
11. Release and writeup (the actual ROI)
Ship within a week of the run, while it's fresh:
- HF org: Shohin-135M-Base, -Instruct, -Verify, tokenizer, full model cards with the mix table
- Tech report (arXiv-ready): budget math, mix, ablation table, decontam receipts, per-family results, negative results included — the "auditable" framing is the credibility play
- Public W&B run + the eval-harness fork with pinned configs
- Blog + thread: the one-chart version — GSM8K vs params, Shohin's dot far above the ≤150M cluster
- Outreach hooks: Modal (data prep / trace generation on Modal), NVIDIA (built on OpenMathInstruct-2 + the Nemotron-adjacent RLVR stack), Liquid (efficiency-per-param is their entire product thesis), HF (SmolLM2 comparison done respectfully — they're the audience most likely to signal-boost)
Naming system in the release: Mame for the 30M ablation proxies, Shohin for the 135M flagship — the bonsai size-class scheme, explained in one README line. (The sibling custom C++/ternary track keeps the name Psi — see STRATEGY.md.)
12. Open questions (answer before T-4w)
- 8×H100 access — secured how (Newton
highgpugrant vs. cloud rental)? ← the blocker (§1) - Is the 72h contiguous, or splittable (ideal split: 57h + 15h)?
- Node-local NVMe capacity, and can data be pre-staged before the window?
- Can we get ~1h on the actual cluster for the rehearsal gate?
- Pre-window cash budget ceiling ($150–400 covers ablations + teacher traces)?
References
- SmolLM2 (COLM 2025): https://arxiv.org/abs/2502.02737 — 135M trained on 2T tokens; mixture design
- L20-Edu-135M (June 2026): https://arxiv.org/abs/2606.22189 — auditable 135M baseline, RLVR at this scale (post-cutoff; verify)
- MegaMath (COLM 2025): https://arxiv.org/abs/2504.02807 — 371B-token open math corpus
- OpenMathInstruct-2 (NVIDIA): https://arxiv.org/abs/2410.01560 — 14M pairs; format/teacher/noise ablations
- Reasoning-Gym (NeurIPS 2025 Spotlight): https://arxiv.org/abs/2505.24760 — 100+ generators/verifiers
- TinyGSM: https://arxiv.org/abs/2312.09241 — 125M + verifier on GSM8K
- SmolTulu: https://arxiv.org/abs/2412.08347 — LR/batch ratio vs reasoning at 135M
- modded-nanogpt: https://github.com/KellerJordan/modded-nanogpt — Muon + speedrun stack
- MobileLLM: https://arxiv.org/abs/2402.14905 — depth > width at sub-billion scale