Skip to content

Record: 11L Parallel Muon + N-gram Backoff Cache — val_bpb 0.2841 (3-seed mean)#864

Open
aryanbhosale wants to merge 4 commits intoopenai:mainfrom
aryanbhosale:submission/ngram-backoff-0.2841
Open

Record: 11L Parallel Muon + N-gram Backoff Cache — val_bpb 0.2841 (3-seed mean)#864
aryanbhosale wants to merge 4 commits intoopenai:mainfrom
aryanbhosale:submission/ngram-backoff-0.2841

Conversation

@aryanbhosale
Copy link
Copy Markdown
Contributor

@aryanbhosale aryanbhosale commented Mar 26, 2026

Record: 11L Parallel Muon + N-gram Backoff Cache

val_bpb = 0.2841 (3-seed mean, std 0.0001) | ~15.92 MB | 8×H100 SXM

3-Seed Results (8×H100 80GB SXM, PyTorch 2.9.1+cu128)

Seed step_avg steps EMA bpb Quantized bpb N-gram bpb
1337 88.6ms 6,774 1.1193 1.1279 0.2841
42 88.6ms 6,772 1.1194 1.1276 0.2840
2024 88.7ms 6,769 1.1191 1.1279 0.2840
Mean 88.6ms 6,772 1.1193 1.1278 0.2841

Key Innovation: N-gram Backoff Cache (Eval-Time Only)

Order 2-9 backward-looking N-gram cache with entropy-adaptive alpha blending and 65K-token chunk updates:

  • For each scored token, blend model P(token) with N-gram frequency P(token)
  • Alpha adapts based on model entropy + n-gram order (high entropy + high order = more n-gram weight)
  • Per-order multipliers: orders 2-3 suppressed (0.3x), orders 5-9 boosted (2.0x)
  • Cache updated ONLY after scoring each 65K-token chunk (strictly backward-looking)
  • 4M hash buckets, XOR-of-products hashing

N-gram reduces BPB by 4x (1.1278 -> 0.2841) by exploiting repeated phrases and patterns.

Architecture (26.8M params)

11L 512d, 8H/4KV (GQA), MLP 3x LeakyReLU(0.5)², Parallel Muon (parameter banking + batched NS5), SmearGate, BigramHash(1024), Value Residual, Gated Attention, XSA4, Partial RoPE(16/64), EMA(0.997)+SWA, Late QAT, GPTQ-lite int6+zstd-22, FA3, torch.compile(fullgraph=True).

Timing

  • Training: 600s (6,772 steps at 88.6ms/step)
  • Eval (N-gram): ~420s
  • Total: within 600s train + 600s eval budgets

Compliance

  • Training under 600s on 8xH100
  • Eval under 600s on 8xH100 (~420s)
  • Total artifact under 16,000,000 bytes
  • N-gram cache strictly backward-looking (updated AFTER scoring)
  • No training data access during evaluation
  • No oracle/hindsight selection
  • 3-seed results with full logs

Credits

@aryanbhosale aryanbhosale reopened this Mar 28, 2026
Seed 1337 quant bpb: 1.1270 → 1.1279
Seed 42 steps: 6757 → 6772, step_avg: 88.8 → 88.6
Seed 2024 quant bpb: 1.1275 → 1.1279
bytes_total: 15900000 → 15924715 (actual max across seeds)
Mean quant bpb: 1.1274 → 1.1278

N-gram BPB (0.2841) and EMA BPB are unchanged.
@MatoTeziTanka
Copy link
Copy Markdown

Community Review — Record: 11L Parallel Muon + N-gram Backoff Cache — val_bpb 0.2841 (3-seed mean)

BPB: 0.2841 | Compliance: LOOKS CLEAN — score-first-per-chunk TTT (legal #1416/#1423 pattern)

What I found in the code (head SHA 74c599514de6, file records/track_10min_16mb/2026-03-26_11L_ParallelMuon_NgramBackoff/train_gpt.py):

The TTT path at line 749 implements the score-first-per-chunk pattern: each chunk is scored under torch.no_grad() / inference_mode() before the base_model.train() + SGD adaptation runs on that same chunk, with an is_last_chunk guard so the final chunk gets no adaptation pass. This is the structural shape the legal frontier uses (PRs #1416 erichroepke, #1423 aryanbhosale).

Per Issue #402 and Issue #677, TTT is legal when each token is scored before the adapter updates on it, and that's what the code does here — chunk ci is scored under weights adapted only on chunks 0..ci-1. No prequant_ttt_adapt_adamw(val_tokens, ...) multi-epoch fine-tune, no scored-region SLOT, no target-in-key n-gram cache.

CPU smoke test (CT2038 proteus-engine, 2026-04-11): import OK in 0.09s, dim=512, layers=11, vocab=1024, code=99731 B, SMOKE_TEST_PASS

Verdict: LOOKS CLEAN.

Recommendation to @cocohearts @valerio-oai @0hq @yuzhougu-oai @notapplica: MERGE pending standard checks (3-seed validation, 16MB artifact cap, 10-min wallclock on 8×H100 SXM). The compliance picture matches the legal reference frontier and no flags were raised by the classification pass.

Auto-classification caveat: this review was drafted by the AST-based classifier against a template derived from manually-reviewed cluster PRs (#1420, #1450, #1487, #1541, #1529, #1533, #1518). If I've misread a subtlety in your eval path — e.g., multi-epoch TTT that I mistook for single-pass, or a target-in-key lookup I missed in a helper function — please flag it and I'll re-run the audit manually.


Reviewed by @MatoTeziTankaThe Agora. CPU smoke test (CT2038 proteus-engine, 2026-04-11): import OK in 0.09s, dim=512, layers=11, vocab=1024, code=99731 B, SMOKE_TEST_PASS. Classification via deterministic AST-based classify_prs.py (pattern bank derived from ~65 manually-reviewed PRs earlier in the 2026-04-11 sweep). This review was auto-drafted from a template and spot-checked before posting — if the template misread your code, please call it out so I can iterate the classifier.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants