From f4b346853a58e13c122390fdc4140c13ff3810bf Mon Sep 17 00:00:00 2001 From: Abay Bektursun Date: Tue, 24 Mar 2026 16:59:04 -0500 Subject: [PATCH] Non-record: Training data ordering by model perplexity (-0.0033 BPB) Case study: reordering training shards by model difficulty (hardest first) gives -0.0033 BPB improvement over sequential ordering. Zero architecture changes, zero compute cost, ten lines of code. Key finding: token-level statistics (KL divergence) find 0.0009 range across shards. Model perplexity finds 0.0475 range -- 100x more variation. The two metrics are uncorrelated (r = -0.056). 3-seed validated on PR #549 (merged #1): Seed 1337: 1.1217 -> 1.1183 (-0.0034) Seed 42: 1.1222 -> 1.1181 (-0.0041) Seed 2025: 1.1221 -> 1.1198 (-0.0023) Mean: 1.1220 -> 1.1187 (-0.0033) Co-Authored-By: Claude Opus 4.6 (1M context) --- .../README.md | 100 + .../figures/fig1_perplexity_ranking.png | Bin 0 -> 71381 bytes .../figures/fig2_shard_heatmap.png | Bin 0 -> 171792 bytes .../figures/fig3_sequential_vs_optimal.png | Bin 0 -> 96929 bytes .../figures/fig5_three_seed_comparison.png | Bin 0 -> 49288 bytes .../figures/fig6_delta_consistency.png | Bin 0 -> 65099 bytes .../figures/fig_kl_divergence.png | Bin 0 -> 70776 bytes .../score_shards.py | 198 ++ .../submission.json | 9 + .../train_gpt.py | 1904 +++++++++++++++++ .../train_seed1337.log | 274 +++ .../train_seed2025.log | 274 +++ .../train_seed42.log | 274 +++ 13 files changed, 3033 insertions(+) create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/README.md create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig1_perplexity_ranking.png create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig2_shard_heatmap.png create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig3_sequential_vs_optimal.png create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig5_three_seed_comparison.png create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig6_delta_consistency.png create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig_kl_divergence.png create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/score_shards.py create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/submission.json create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_gpt.py create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed1337.log create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed2025.log create mode 100644 records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed42.log diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/README.md b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/README.md new file mode 100644 index 000000000..0a98d8615 --- /dev/null +++ b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/README.md @@ -0,0 +1,100 @@ +# You're Training on 57% of Your Data. Does It Matter Which 57%? + +**Non-record submission: a case study on training data ordering.** + +Everyone in this competition trains sequentially through the shards. Nobody questions the order. We did — and found a free **-0.0033 BPB** improvement by reordering shards based on model perplexity. Zero architecture changes, zero hyperparameter tuning, ten lines of code. + +## The Setup + +At 83ms/step we get ~7,200 steps in 600s. That's 5.66B tokens out of 10B — **57% of the dataset**. Shards 0 through ~45 get seen. Shards 46-79 never do. + +## Token Statistics Say It Doesn't Matter + +We computed KL(val || shard) for all 80 training shards. Every shard has essentially the same token distribution. Range: 0.0009. Translates to ~0.00005 BPB. Dead end. + +![Token frequencies vs model perplexity](figures/fig1_kl_vs_perplexity.png) + +Left panel. All shards look identical by token frequency. + +## The Model Disagrees + +Trained a model 500 steps on one shard, then scored all 80 shards by cross-entropy loss. Right panel above. Range: **0.0475** — 100× larger than the KL signal. The shards are NOT all the same. Token statistics just can't see the difference. + +As expected — KL counts tokens, the model scores sequences. But the magnitude of the gap is what matters: the model finds **100× more variation** than token statistics do. + +![KL rank vs perplexity rank](figures/fig4_the_insight.png) + +**r = -0.056.** The two metrics are uncorrelated. The shard most similar to val by token frequency is middling by model difficulty. + +## Where the Hard Shards Are + +The difficulty is about content, not position. Hard and easy shards are scattered randomly across the dataset. + +![Shard difficulty heatmap](figures/fig2_shard_heatmap.png) + +Shard 44 (hardest, rank #1) sits next to shard 43 (rank #48). Sequential ordering — the default in every training framework — isn't optimized for anything except simplicity. + +![Sequential vs optimal ordering](figures/fig3_sequential_vs_optimal.png) + +## Results: 3-Seed Validated + +Reran our merged #1 submission (PR #549) with shards reordered hardest-first. Same code, same hyperparameters, same compute budget. + +| Seed | Sequential (PR #549) | Hardest-first | Delta | +|------|---------------------|--------------|-------| +| 1337 | 1.1217 | **1.1183** | **-0.0034** | +| 42 | 1.1222 | **1.1181** | **-0.0041** | +| 2025 | 1.1221 | **1.1198** | **-0.0023** | +| **Mean** | **1.1220** | **1.1187** | **-0.0033** | + +Every seed improves. Mean improvement: **-0.0033 BPB.** + +![Three-seed comparison](figures/fig5_three_seed_comparison.png) + +![Improvement consistency and cost](figures/fig6_delta_consistency.png) + +For context: our last three PRs each took days of architecture and quantization work to gain 0.001-0.003 BPB. This took ten lines of code. + +## The Change + +```python +class TokenStream: + def __init__(self, pattern: str): + self.files = [Path(p) for p in sorted(glob.glob(pattern))] + # NEW: reorder shards by model difficulty (hardest first) + shard_order = os.environ.get("SHARD_ORDER", "") + if shard_order: + order = [int(x) for x in shard_order.split(",")] + reordered = [self.files[i] for i in order if i < len(self.files)] + remaining = [f for i, f in enumerate(self.files) if i not in set(order)] + self.files = reordered + remaining +``` + +```bash +SHARD_ORDER=44,63,65,42,18,67,30,69,61,3,13,19,50,49,56,45,73,79,57,32,\ +28,68,66,34,46,38,17,77,0,14,26,74,59,62,41,9,58,22,78,4,48,8,12,27,75,\ +36,16,43,52,15,33,47,25,55,54,23,37,51,31,21,60,1,20,72,24,53,39,35,71,\ +76,40,5,10,2,7,6,70,11,64,29 +``` + +## Method: How We Ranked Shards + +1. Train a 6-layer, 512d model for 500 steps on shard 0 (single GPU, ~40 seconds) +2. Score all 80 shards by cross-entropy loss with this partially-trained model +3. Sort shards by loss descending (hardest first) +4. Pass the ordering via `SHARD_ORDER` environment variable + +The ranking model is deliberately small and undertrained — it captures which shards have patterns the model hasn't learned yet. A fully-trained model would rank differently (everything is "easy" by then). + +## Open Questions + +- **Adaptive curriculum**: Re-rank shards every 1,000 steps as the model learns. The optimal ordering probably changes during training. +- **Anti-curriculum**: We haven't tested easiest-first. It might help build foundations before tackling hard patterns. *(Experiment running.)* +- **Transfer across architectures**: Our ranking was done with a 6-layer model. Does it transfer to 11-layer? To different hyperparameters? +- **Interaction with SWA/EMA**: Does the ordering effect survive weight averaging? + +## Credits + +- Original idea (train on similar data): Lucas Fievet +- Base model: [PR #549](https://github.com/openai/parameter-golf/pull/549) by @abaybektursun (merged #1) +- Analysis and implementation: @abaybektursun diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig1_perplexity_ranking.png b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig1_perplexity_ranking.png new file mode 100644 index 0000000000000000000000000000000000000000..402348a2edfdbf6f7795ce2d6b2ea7100743f2eb GIT binary patch literal 71381 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

8)F@0wHIeQXCy=&W2rkX?tsJMM?8j& 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 literal 0 HcmV?d00001 diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig5_three_seed_comparison.png b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig5_three_seed_comparison.png new file mode 100644 index 0000000000000000000000000000000000000000..20e4399271050feac0834a0424648a88574b7bec GIT binary patch literal 49288 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 literal 0 HcmV?d00001 diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig6_delta_consistency.png b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig6_delta_consistency.png new file mode 100644 index 0000000000000000000000000000000000000000..842160cfc9b37486fc84fb586a71cedbe09bf479 GIT binary patch literal 65099 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 Jh2b^gzX0v9%fkQw literal 0 HcmV?d00001 diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig_kl_divergence.png b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/figures/fig_kl_divergence.png new file mode 100644 index 0000000000000000000000000000000000000000..5e4ec8e2f9ced16b0c53c72b84956e5438eef7df GIT binary patch literal 70776 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 literal 0 HcmV?d00001 diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/score_shards.py b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/score_shards.py new file mode 100644 index 000000000..c743e06f0 --- /dev/null +++ b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/score_shards.py @@ -0,0 +1,198 @@ +""" +Score each training shard by model perplexity using a simple approach. + +1. Score all shards with random model (inherent difficulty baseline) +2. Train 500 steps on shard 0 +3. Score all shards again (what's still hard after partial training) +4. Rank by remaining loss + +Usage (single GPU is fine): + python3 analysis/score_shards_simple.py --data-dir ./data/datasets/fineweb10B_sp1024 +""" + +import argparse +import glob +import math +import time +import numpy as np +import torch +import torch.nn as nn +import torch.nn.functional as F +from pathlib import Path + + +class MiniGPT(nn.Module): + """Minimal GPT for shard scoring. Same architecture shape as competition model.""" + def __init__(self, vocab=1024, dim=512, layers=6, heads=8): + super().__init__() + self.tok_emb = nn.Embedding(vocab, dim) + self.blocks = nn.ModuleList([ + nn.TransformerEncoderLayer(d_model=dim, nhead=heads, dim_feedforward=dim*3, + batch_first=True, norm_first=True, dropout=0.0) + for _ in range(layers) + ]) + self.norm = nn.LayerNorm(dim) + self.head = nn.Linear(dim, vocab, bias=False) + self.head.weight = self.tok_emb.weight # tie embeddings + + def forward(self, x): + B, T = x.shape + h = self.tok_emb(x) + mask = nn.Transformer.generate_square_subsequent_mask(T, device=x.device) + for block in self.blocks: + h = block(h, src_mask=mask, is_causal=True) + return self.head(self.norm(h)) + + +def load_shard(path, vocab_size=1024): + tokens = np.fromfile(path, dtype=np.uint16).astype(np.int64) + tokens = np.clip(tokens, 0, vocab_size - 1) + return torch.from_numpy(tokens) + + +def score_shard(model, tokens, device, seq_len=1024, max_batches=50, batch_size=16): + model.eval() + n_seqs = len(tokens) // (seq_len + 1) + if n_seqs == 0: + return float('inf') + + step = max(1, n_seqs // (max_batches * batch_size)) + total_loss = 0.0 + total_tokens = 0 + + with torch.no_grad(), torch.autocast(device_type="cuda", dtype=torch.bfloat16): + for bi in range(0, min(n_seqs, max_batches * batch_size), batch_size): + batch_starts = [((bi + b) * step) * (seq_len + 1) for b in range(batch_size) + if (bi + b) * step < n_seqs] + if not batch_starts: + break + x = torch.stack([tokens[s:s+seq_len].to(device) for s in batch_starts]) + y = torch.stack([tokens[s+1:s+seq_len+1].to(device) for s in batch_starts]) + logits = model(x) + loss = F.cross_entropy(logits.reshape(-1, logits.size(-1)).float(), + y.reshape(-1), reduction="sum") + total_loss += loss.item() + total_tokens += y.numel() + + return total_loss / max(total_tokens, 1) + + +def train_steps(model, tokens, device, steps=500, seq_len=1024, batch_size=16, lr=0.001): + model.train() + optimizer = torch.optim.AdamW(model.parameters(), lr=lr, weight_decay=0.01) + n_seqs = len(tokens) // (seq_len + 1) + + for step in range(steps): + idx = (step * batch_size) % n_seqs + batch_starts = [(idx + b) * (seq_len + 1) for b in range(batch_size) if idx + b < n_seqs] + if not batch_starts: + continue + x = torch.stack([tokens[s:s+seq_len].to(device) for s in batch_starts]) + y = torch.stack([tokens[s+1:s+seq_len+1].to(device) for s in batch_starts]) + + with torch.autocast(device_type="cuda", dtype=torch.bfloat16): + logits = model(x) + loss = F.cross_entropy(logits.reshape(-1, logits.size(-1)).float(), y.reshape(-1)) + + optimizer.zero_grad() + loss.backward() + optimizer.step() + + if (step + 1) % 100 == 0: + print(f" Train step {step+1}/{steps}, loss: {loss.item():.4f}") + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument("--data-dir", required=True) + parser.add_argument("--train-steps", type=int, default=500) + parser.add_argument("--device", default="cuda:0") + args = parser.parse_args() + + device = torch.device(args.device) + train_files = sorted(glob.glob(str(Path(args.data_dir) / "fineweb_train_*.bin"))) + val_files = sorted(glob.glob(str(Path(args.data_dir) / "fineweb_val_*.bin"))) + print(f"Found {len(train_files)} train shards, {len(val_files)} val shards") + + model = MiniGPT(vocab=1024, dim=512, layers=6, heads=8).to(device) + print(f"Model params: {sum(p.numel() for p in model.parameters()):,}") + + # Phase 1: Score with random model + print(f"\n{'='*60}") + print("PHASE 1: Random model scoring") + print(f"{'='*60}") + random_scores = {} + for i, f in enumerate(train_files): + tokens = load_shard(f) + loss = score_shard(model, tokens, device) + random_scores[i] = loss + if (i + 1) % 10 == 0 or i == len(train_files) - 1: + print(f" [{i+1}/{len(train_files)}] shard {i}: loss={loss:.4f}") + + val_tokens = torch.cat([load_shard(f) for f in val_files]) + val_random = score_shard(model, val_tokens, device) + print(f" Val loss (random): {val_random:.4f}") + + # Phase 2: Train on shard 0 + print(f"\n{'='*60}") + print(f"PHASE 2: Training {args.train_steps} steps on shard 0") + print(f"{'='*60}") + train_tokens = load_shard(train_files[0]) + train_steps(model, train_tokens, device, steps=args.train_steps) + + # Phase 3: Score with trained model + print(f"\n{'='*60}") + print("PHASE 3: Trained model scoring") + print(f"{'='*60}") + trained_scores = {} + for i, f in enumerate(train_files): + tokens = load_shard(f) + loss = score_shard(model, tokens, device) + trained_scores[i] = loss + if (i + 1) % 10 == 0 or i == len(train_files) - 1: + print(f" [{i+1}/{len(train_files)}] shard {i}: loss={loss:.4f}") + + val_trained = score_shard(model, val_tokens, device) + print(f" Val loss (trained): {val_trained:.4f}") + + # Results + print(f"\n{'='*60}") + print("RESULTS: Shard ranking by remaining loss (highest = most to learn)") + print(f"{'='*60}") + print(f"{'Rank':>4} {'Shard':>6} {'Random':>10} {'Trained':>10} {'Remaining':>10} {'Learned':>10}") + print("-" * 60) + + shards = [(i, random_scores[i], trained_scores[i], + trained_scores[i], random_scores[i] - trained_scores[i]) + for i in range(len(train_files))] + shards.sort(key=lambda x: -x[3]) # sort by remaining loss descending + + for rank, (idx, rand, trained, remaining, learned) in enumerate(shards): + print(f"{rank+1:>4} {idx:>6} {rand:>10.4f} {trained:>10.4f} {remaining:>10.4f} {learned:>10.4f}") + + # Key metrics + losses = [s[3] for s in shards] + loss_range = max(losses) - min(losses) + loss_std = np.std(losses) + + print(f"\n{'='*60}") + print("SUMMARY") + print(f"{'='*60}") + print(f"Remaining loss range: {min(losses):.4f} — {max(losses):.4f} (range: {loss_range:.4f})") + print(f"Remaining loss std: {loss_std:.4f}") + print(f"Val loss: {val_trained:.4f}") + print(f"") + if loss_range < 0.01: + print("VERDICT: Small range — shards are similar even at model-perplexity level.") + print("Shard reordering unlikely to help significantly.") + else: + print(f"VERDICT: Range of {loss_range:.4f} — meaningful variation!") + print("Shard reordering could improve BPB.") + + recommended = [s[0] for s in shards] # already sorted by remaining loss desc + print(f"\nRecommended order (hardest first): {recommended[:20]}...") + print(f"Skip (easiest): {recommended[-10:]}") + + +if __name__ == "__main__": + main() diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/submission.json b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/submission.json new file mode 100644 index 000000000..2d907e4ea --- /dev/null +++ b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/submission.json @@ -0,0 +1,9 @@ +{ + "name": "Case Study: Training Data Ordering by Model Perplexity", + "val_bpb": 1.1187, + "bytes_total": 15921633, + "blurb": "Non-record case study: reordering training shards by model perplexity (hardest first) gives -0.0033 BPB for free. Token-level statistics (KL divergence) miss 100x of the variation that model-level scoring reveals. 3-seed validated. Ten lines of code, zero compute cost.", + "author": "abaybektursun", + "github_id": "abaybektursun", + "date": "2026-03-24" +} diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_gpt.py b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_gpt.py new file mode 100644 index 000000000..c962929aa --- /dev/null +++ b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_gpt.py @@ -0,0 +1,1904 @@ +from __future__ import annotations +import copy +import glob +import io +import lzma +import math +import os +import random +import subprocess +import sys +import time +import uuid +import zlib +from pathlib import Path +try: + import zstandard + _COMPRESSOR = "zstd" +except ImportError: + _COMPRESSOR = "zlib" +import numpy as np +import sentencepiece as spm +import torch +import torch.distributed as dist +import torch.nn.functional as F +from torch import Tensor, nn +from torch.nn.parallel import DistributedDataParallel as DDP +from flash_attn_interface import flash_attn_func as flash_attn_3_func +class Hyperparameters: + data_path = os.environ.get("DATA_PATH", "./data/datasets/fineweb10B_sp1024") + train_files = os.path.join(data_path, "fineweb_train_*.bin") + val_files = os.path.join(data_path, "fineweb_val_*.bin") + tokenizer_path = os.environ.get("TOKENIZER_PATH", "./data/tokenizers/fineweb_1024_bpe.model") + run_id = os.environ.get("RUN_ID", str(uuid.uuid4())) + seed = int(os.environ.get("SEED", 1337)) + val_batch_size = int(os.environ.get("VAL_BATCH_SIZE", 524_288)) + val_loss_every = int(os.environ.get("VAL_LOSS_EVERY", 4000)) + train_log_every = int(os.environ.get("TRAIN_LOG_EVERY", 500)) + iterations = int(os.environ.get("ITERATIONS", 20000)) + warmdown_iters = int(os.environ.get("WARMDOWN_ITERS", 3500)) + warmup_steps = int(os.environ.get("WARMUP_STEPS", 20)) + train_batch_tokens = int(os.environ.get("TRAIN_BATCH_TOKENS", 786_432)) + train_seq_len = int(os.environ.get("TRAIN_SEQ_LEN", 2048)) + eval_seq_len = int(os.environ.get("EVAL_SEQ_LEN", 2048)) + max_wallclock_seconds = float(os.environ.get("MAX_WALLCLOCK_SECONDS", 600.0)) + qk_gain_init = float(os.environ.get("QK_GAIN_INIT", 1.5)) + vocab_size = int(os.environ.get("VOCAB_SIZE", 1024)) + num_layers = int(os.environ.get("NUM_LAYERS", 11)) + num_kv_heads = int(os.environ.get("NUM_KV_HEADS", 4)) + model_dim = int(os.environ.get("MODEL_DIM", 512)) + num_heads = int(os.environ.get("NUM_HEADS", 8)) + mlp_mult = float(os.environ.get("MLP_MULT", 3.0)) + tie_embeddings = bool(int(os.environ.get("TIE_EMBEDDINGS", "1"))) + rope_base = float(os.environ.get("ROPE_BASE", 10000.0)) + logit_softcap = float(os.environ.get("LOGIT_SOFTCAP", 30.0)) + embed_lr = float(os.environ.get("EMBED_LR", 0.6)) + head_lr = float(os.environ.get("HEAD_LR", 0.008)) + tied_embed_lr = float(os.environ.get("TIED_EMBED_LR", 0.035)) + tied_embed_init_std = float(os.environ.get("TIED_EMBED_INIT_STD", 0.005)) + matrix_lr = float(os.environ.get("MATRIX_LR", 0.025)) + scalar_lr = float(os.environ.get("SCALAR_LR", 0.025)) + muon_momentum = float(os.environ.get("MUON_MOMENTUM", 0.99)) + muon_backend_steps = int(os.environ.get("MUON_BACKEND_STEPS", 5)) + muon_momentum_warmup_start = float(os.environ.get("MUON_MOMENTUM_WARMUP_START", 0.92)) + muon_momentum_warmup_steps = int(os.environ.get("MUON_MOMENTUM_WARMUP_STEPS", 1500)) + beta1 = float(os.environ.get("BETA1", 0.9)) + beta2 = float(os.environ.get("BETA2", 0.95)) + adam_eps = float(os.environ.get("ADAM_EPS", 1e-8)) + grad_clip_norm = float(os.environ.get("GRAD_CLIP_NORM", 0.3)) + eval_stride = int(os.environ.get("EVAL_STRIDE", 64)) + mtp_num_heads = int(os.environ.get("MTP_NUM_HEADS", 0)) + mtp_loss_weight = float(os.environ.get("MTP_LOSS_WEIGHT", 0.2)) + muon_beta2 = float(os.environ.get("MUON_BETA2", 0.95)) + swa_enabled = bool(int(os.environ.get("SWA_ENABLED", "1"))) + swa_every = int(os.environ.get("SWA_EVERY", 50)) + lawa_enabled = bool(int(os.environ.get("LAWA_ENABLED", "0"))) + lawa_k = int(os.environ.get("LAWA_K", 10)) + lawa_freq = int(os.environ.get("LAWA_FREQ", 100)) + muon_wd = float(os.environ.get("MUON_WD", 0.04)) + adam_wd = float(os.environ.get("ADAM_WD", 0.04)) + qat_enabled = bool(int(os.environ.get("QAT_ENABLED", "0"))) + bigram_vocab_size = int(os.environ.get("BIGRAM_VOCAB_SIZE", 2048)) + bigram_dim = int(os.environ.get("BIGRAM_DIM", 128)) + xsa_last_n = int(os.environ.get("XSA_LAST_N", 4)) + rope_dims = int(os.environ.get("ROPE_DIMS", 16)) + ln_scale = bool(int(os.environ.get("LN_SCALE", "1"))) + dtg_enabled = bool(int(os.environ.get("DTG_ENABLED", "0"))) + late_qat_threshold = float(os.environ.get("LATE_QAT_THRESHOLD", 0.15)) + ve_enabled = bool(int(os.environ.get("VE_ENABLED", "1"))) + ve_dim = int(os.environ.get("VE_DIM", 128)) + ve_layers = os.environ.get("VE_LAYERS", "9,10") + gated_attention = bool(int(os.environ.get("GATED_ATTENTION", "0"))) + value_residual = bool(int(os.environ.get("VALUE_RESIDUAL", "0"))) + ttt_enabled = bool(int(os.environ.get("TTT_ENABLED", "0"))) + ttt_lr = float(os.environ.get("TTT_LR", 0.002)) + ttt_epochs = int(os.environ.get("TTT_EPOCHS", 3)) + ttt_chunk_tokens = int(os.environ.get("TTT_CHUNK_TOKENS", 32768)) + ttt_freeze_blocks = int(os.environ.get("TTT_FREEZE_BLOCKS", 2)) + ttt_momentum = float(os.environ.get("TTT_MOMENTUM", 0.9)) + ttt_batch_seqs = int(os.environ.get("TTT_BATCH_SEQS", 32)) + ttt_grad_clip = float(os.environ.get("TTT_GRAD_CLIP", 1.0)) + +# --- Batched Newton-Schulz orthogonalization --- + +def zeropower_via_newtonschulz5(G: Tensor, steps: int = 5, eps: float = 1e-7) -> Tensor: + """Batched Newton-Schulz orthogonalization. G: (B,M,N) or (M,N).""" + a, b, c = (3.4445, -4.7750, 2.0315) + was_2d = G.ndim == 2 + if was_2d: + G = G.unsqueeze(0) + X = G.bfloat16() + transposed = X.size(-2) > X.size(-1) + if transposed: + X = X.mT + X = X / (X.norm(dim=(-2, -1), keepdim=True) + eps) + for _ in range(steps): + A = X @ X.mT + B = b * A + c * (A @ A) + X = a * X + B @ X + if transposed: + X = X.mT + if was_2d: + X = X.squeeze(0) + return X + +# --- Parallel Muon optimizer --- + +class Muon(torch.optim.Optimizer): + """Parallel Muon: post-backward reduce-scatter -> local NS5 -> all-gather. + + No DDP for bank params. After backward, this optimizer: + 1. Launches async reduce-scatter for all banks (biggest first) + 2. Returns control so Adam can step on small params while RS is in-flight + 3. Waits for each RS, runs local NS5 on the shard, launches async all-gather + 4. Each all-gather overlaps with next bank's NS5 + """ + def __init__(self, params, lr: float, momentum: float, backend_steps: int, + nesterov: bool = True, weight_decay: float = 0.0): + super().__init__( + params, + dict(lr=lr, momentum=momentum, backend_steps=backend_steps, + nesterov=nesterov, weight_decay=weight_decay), + ) + self._built = False + + def _build(self): + self._distributed = dist.is_available() and dist.is_initialized() + self._world_size = dist.get_world_size() if self._distributed else 1 + self._rank = dist.get_rank() if self._distributed else 0 + ws = self._world_size + + self._bank_meta = [] + for group in self.param_groups: + for p in group["params"]: + B = p.shape[0] + padded_B = ((B + ws - 1) // ws) * ws + shard_B = padded_B // ws + tail = p.shape[1:] + dev = p.device + self._bank_meta.append({ + 'p': p, + 'B': B, + 'padded_grad': torch.zeros(padded_B, *tail, device=dev, dtype=torch.bfloat16), + 'shard': torch.zeros(shard_B, *tail, device=dev, dtype=torch.bfloat16), + 'shard_mom': torch.zeros(shard_B, *tail, device=dev, dtype=torch.bfloat16), + 'full_update': torch.zeros(padded_B, *tail, device=dev, dtype=torch.bfloat16), + 'scale': max(1, p.shape[-2] / p.shape[-1]) ** 0.5, + }) + # Sort by size descending -- launch biggest reduce-scatters first + self._bank_meta.sort(key=lambda m: -m['p'].numel()) + self._built = True + + def launch_reduce_scatters(self): + """Phase 1: launch async reduce-scatter for all banks. Call right after backward.""" + if not self._built: + self._build() + if not self._distributed: + return + self._rs_futures = [] + for m in self._bank_meta: + p = m['p'] + if p.grad is None: + self._rs_futures.append(None) + continue + pg = m['padded_grad'] + pg[:m['B']].copy_(p.grad.bfloat16()) + if pg.shape[0] > m['B']: + pg[m['B']:].zero_() + fut = dist.reduce_scatter_tensor(m['shard'], pg, op=dist.ReduceOp.AVG, async_op=True) + self._rs_futures.append(fut) + + @torch.no_grad() + def step(self, closure=None): + """Phase 3: wait for RS, local NS5, all-gather. Call AFTER Adam steps.""" + loss = None + if closure is not None: + with torch.enable_grad(): + loss = closure() + + if not self._built: + self._build() + + for group in self.param_groups: + lr = group["lr"] + momentum = group["momentum"] + backend_steps = group["backend_steps"] + nesterov = group["nesterov"] + wd = group.get("weight_decay", 0.0) + + prev_ag_handle = None + prev_m = None + + sharded = self._distributed and hasattr(self, '_rs_futures') + + for i, m in enumerate(self._bank_meta): + p = m['p'] + if p.grad is None: + continue + + if prev_ag_handle is not None: + prev_ag_handle.wait() + pp = prev_m['p'] + upd = prev_m['full_update'][:prev_m['B']] + if wd > 0.0: + pp.data.mul_(1.0 - lr * wd) + pp.add_(upd.to(dtype=pp.dtype), alpha=-lr * prev_m['scale']) + + if sharded and self._rs_futures[i] is not None: + self._rs_futures[i].wait() + g = m['shard'] + buf = m['shard_mom'] + else: + g = p.grad.bfloat16() + state = self.state[p] + if "momentum_buffer" not in state: + state["momentum_buffer"] = torch.zeros_like(g) + buf = state["momentum_buffer"] + + buf.mul_(momentum).add_(g) + if nesterov: + update = g.add(buf, alpha=momentum) + else: + update = buf + + update = zeropower_via_newtonschulz5(update, steps=backend_steps) + + if sharded: + prev_ag_handle = dist.all_gather_into_tensor( + m['full_update'], update, async_op=True) + prev_m = m + else: + if wd > 0.0: + p.data.mul_(1.0 - lr * wd) + p.add_(update.to(dtype=p.dtype), alpha=-lr * m['scale']) + + if prev_ag_handle is not None: + prev_ag_handle.wait() + pp = prev_m['p'] + upd = prev_m['full_update'][:prev_m['B']] + if wd > 0.0: + pp.data.mul_(1.0 - lr * wd) + pp.add_(upd.to(dtype=pp.dtype), alpha=-lr * prev_m['scale']) + + if hasattr(self, '_rs_futures'): + del self._rs_futures + + return loss + +# --- Tokenizer evaluation helpers --- + +def build_sentencepiece_luts( + sp: spm.SentencePieceProcessor, vocab_size: int, device: torch.device +) -> tuple[Tensor, Tensor, Tensor]: + sp_vocab_size = int(sp.vocab_size()) + table_size = max(sp_vocab_size, vocab_size) + base_bytes_np = np.zeros((table_size,), dtype=np.int16) + has_leading_space_np = np.zeros((table_size,), dtype=np.bool_) + is_boundary_token_np = np.ones((table_size,), dtype=np.bool_) + for token_id in range(sp_vocab_size): + if sp.is_control(token_id) or sp.is_unknown(token_id) or sp.is_unused(token_id): + continue + is_boundary_token_np[token_id] = False + if sp.is_byte(token_id): + base_bytes_np[token_id] = 1 + continue + piece = sp.id_to_piece(token_id) + if piece.startswith("\u2581"): + has_leading_space_np[token_id] = True + piece = piece[1:] + base_bytes_np[token_id] = len(piece.encode("utf-8")) + return ( + torch.tensor(base_bytes_np, dtype=torch.int16, device=device), + torch.tensor(has_leading_space_np, dtype=torch.bool, device=device), + torch.tensor(is_boundary_token_np, dtype=torch.bool, device=device), + ) +def load_validation_tokens(pattern: str, seq_len: int) -> Tensor: + files = [Path(p) for p in sorted(glob.glob(pattern))] + if not files: + raise FileNotFoundError(f"No files found for pattern: {pattern}") + tokens = torch.cat([load_data_shard(file) for file in files]).contiguous() + usable = ((tokens.numel() - 1) // seq_len) * seq_len + if usable <= 0: + raise ValueError(f"Validation split is too short for TRAIN_SEQ_LEN={seq_len}") + return tokens[: usable + 1] +def eval_val( + args: Hyperparameters, + model: nn.Module, + rank: int, + world_size: int, + device: torch.device, + grad_accum_steps: int, + val_tokens: Tensor, + base_bytes_lut: Tensor, + has_leading_space_lut: Tensor, + is_boundary_token_lut: Tensor, + eval_seq_len: int | None = None, +) -> tuple[float, float]: + seq_len = eval_seq_len or args.train_seq_len + local_batch_tokens = args.val_batch_size // (world_size * grad_accum_steps) + if local_batch_tokens < seq_len: + raise ValueError( + "VAL_BATCH_SIZE must provide at least one sequence per rank; " + f"got VAL_BATCH_SIZE={args.val_batch_size}, WORLD_SIZE={world_size}, " + f"GRAD_ACCUM_STEPS={grad_accum_steps}, seq_len={seq_len}" + ) + local_batch_seqs = local_batch_tokens // seq_len + total_seqs = (val_tokens.numel() - 1) // seq_len + seq_start = (total_seqs * rank) // world_size + seq_end = (total_seqs * (rank + 1)) // world_size + val_loss_sum = torch.zeros((), device=device, dtype=torch.float64) + val_token_count = torch.zeros((), device=device, dtype=torch.float64) + val_byte_count = torch.zeros((), device=device, dtype=torch.float64) + model.eval() + with torch.inference_mode(): + for batch_seq_start in range(seq_start, seq_end, local_batch_seqs): + batch_seq_end = min(batch_seq_start + local_batch_seqs, seq_end) + raw_start = batch_seq_start * seq_len + raw_end = batch_seq_end * seq_len + 1 + local = val_tokens[raw_start:raw_end].to(device=device, dtype=torch.int64, non_blocking=True) + x = local[:-1].reshape(-1, seq_len) + y = local[1:].reshape(-1, seq_len) + with torch.autocast(device_type="cuda", dtype=torch.bfloat16, enabled=True): + batch_loss = model(x, y).detach() + batch_token_count = float(y.numel()) + val_loss_sum += batch_loss.to(torch.float64) * batch_token_count + val_token_count += batch_token_count + prev_ids = x.reshape(-1) + tgt_ids = y.reshape(-1) + token_bytes = base_bytes_lut[tgt_ids].to(dtype=torch.int16) + token_bytes += (has_leading_space_lut[tgt_ids] & ~is_boundary_token_lut[prev_ids]).to(dtype=torch.int16) + val_byte_count += token_bytes.to(torch.float64).sum() + if dist.is_available() and dist.is_initialized(): + dist.all_reduce(val_loss_sum, op=dist.ReduceOp.SUM) + dist.all_reduce(val_token_count, op=dist.ReduceOp.SUM) + dist.all_reduce(val_byte_count, op=dist.ReduceOp.SUM) + val_loss = val_loss_sum / val_token_count + bits_per_token = val_loss.item() / math.log(2.0) + tokens_per_byte = val_token_count.item() / val_byte_count.item() + model.train() + return float(val_loss.item()), float(bits_per_token * tokens_per_byte) + +# --- Quantization helpers --- + +CONTROL_TENSOR_NAME_PATTERNS = tuple( + pattern + for pattern in os.environ.get( + "CONTROL_TENSOR_NAME_PATTERNS", + "attn_scale,attn_scales,mlp_scale,mlp_scales,resid_mix,resid_mixes,q_gain,skip_weight,skip_weights,smear,dtg_gate,ve_layer_scales,ve_shared.scale,attn_gate,vr_lambda", + ).split(",") + if pattern +) +INT8_KEEP_FLOAT_FP32_NAME_PATTERNS = tuple( + pattern + for pattern in os.environ.get( + "INT8_KEEP_FLOAT_FP32_NAME_PATTERNS", + ",".join(CONTROL_TENSOR_NAME_PATTERNS), + ).split(",") + if pattern +) +INT8_KEEP_FLOAT_MAX_NUMEL = 65_536 +INT8_KEEP_FLOAT_STORE_DTYPE = torch.float16 +INT8_PER_ROW_SCALE_DTYPE = torch.float16 +INT8_CLIP_PERCENTILE = 99.99984 +INT8_CLIP_Q = INT8_CLIP_PERCENTILE / 100.0 +def tensor_nbytes(t: Tensor) -> int: + return int(t.numel()) * int(t.element_size()) +def keep_float_tensor(name: str, t: Tensor, passthrough_orig_dtypes: dict[str, str]) -> Tensor: + if any(pattern in name for pattern in INT8_KEEP_FLOAT_FP32_NAME_PATTERNS): + return t.float().contiguous() + if t.dtype in {torch.float32, torch.bfloat16}: + passthrough_orig_dtypes[name] = str(t.dtype).removeprefix("torch.") + return t.to(dtype=INT8_KEEP_FLOAT_STORE_DTYPE).contiguous() + return t +def quantize_float_tensor(t: Tensor) -> tuple[Tensor, Tensor]: + t32 = t.float() + if t32.ndim == 2: + clip_abs = ( + torch.quantile(t32.abs(), INT8_CLIP_Q, dim=1) + if t32.numel() + else torch.empty((t32.shape[0],), dtype=torch.float32) + ) + clipped = torch.maximum(torch.minimum(t32, clip_abs[:, None]), -clip_abs[:, None]) + scale = (clip_abs / 127.0).clamp_min(1.0 / 127.0) + q = torch.clamp(torch.round(clipped / scale[:, None]), -127, 127).to(torch.int8).contiguous() + return q, scale.to(dtype=INT8_PER_ROW_SCALE_DTYPE).contiguous() + clip_abs = float(torch.quantile(t32.abs().flatten(), INT8_CLIP_Q).item()) if t32.numel() else 0.0 + scale = torch.tensor(clip_abs / 127.0 if clip_abs > 0 else 1.0, dtype=torch.float32) + q = torch.clamp(torch.round(torch.clamp(t32, -clip_abs, clip_abs) / scale), -127, 127).to(torch.int8).contiguous() + return q, scale +def quantize_state_dict_int8(state_dict: dict[str, Tensor]): + quantized: dict[str, Tensor] = {} + scales: dict[str, Tensor] = {} + dtypes: dict[str, str] = {} + passthrough: dict[str, Tensor] = {} + passthrough_orig_dtypes: dict[str, str] = {} + qmeta: dict[str, dict[str, object]] = {} + stats = dict.fromkeys( + ("param_count", "num_tensors", "num_float_tensors", "num_nonfloat_tensors", "baseline_tensor_bytes", "int8_payload_bytes"), + 0, + ) + for name, tensor in state_dict.items(): + t = tensor.detach().to("cpu").contiguous() + stats["param_count"] += int(t.numel()) + stats["num_tensors"] += 1 + stats["baseline_tensor_bytes"] += tensor_nbytes(t) + if not t.is_floating_point(): + stats["num_nonfloat_tensors"] += 1 + passthrough[name] = t + stats["int8_payload_bytes"] += tensor_nbytes(t) + continue + if t.numel() <= INT8_KEEP_FLOAT_MAX_NUMEL: + kept = keep_float_tensor(name, t, passthrough_orig_dtypes) + passthrough[name] = kept + stats["int8_payload_bytes"] += tensor_nbytes(kept) + continue + stats["num_float_tensors"] += 1 + q, s = quantize_float_tensor(t) + if s.ndim > 0: + qmeta[name] = {"scheme": "per_row", "axis": 0} + quantized[name] = q + scales[name] = s + dtypes[name] = str(t.dtype).removeprefix("torch.") + stats["int8_payload_bytes"] += tensor_nbytes(q) + tensor_nbytes(s) + obj: dict[str, object] = { + "__quant_format__": "int8_clean_per_row_v1", + "quantized": quantized, + "scales": scales, + "dtypes": dtypes, + "passthrough": passthrough, + } + if qmeta: + obj["qmeta"] = qmeta + if passthrough_orig_dtypes: + obj["passthrough_orig_dtypes"] = passthrough_orig_dtypes + return obj, stats +def dequantize_state_dict_int8(obj: dict[str, object]) -> dict[str, Tensor]: + out: dict[str, Tensor] = {} + qmeta = obj.get("qmeta", {}) + passthrough_orig_dtypes = obj.get("passthrough_orig_dtypes", {}) + for name, q in obj["quantized"].items(): + dtype = getattr(torch, obj["dtypes"][name]) + s = obj["scales"][name] + if qmeta.get(name, {}).get("scheme") == "per_row" or s.ndim > 0: + s = s.to(dtype=torch.float32) + out[name] = (q.float() * s.view(q.shape[0], *([1] * (q.ndim - 1)))).to(dtype=dtype).contiguous() + else: + scale = float(s.item()) + out[name] = (q.float() * scale).to(dtype=dtype).contiguous() + for name, t in obj["passthrough"].items(): + out_t = t.detach().to("cpu").contiguous() + orig_dtype = passthrough_orig_dtypes.get(name) + if isinstance(orig_dtype, str): + out_t = out_t.to(dtype=getattr(torch, orig_dtype)).contiguous() + out[name] = out_t + return out + +# --- Data loading --- + +def load_data_shard(file: Path) -> Tensor: + header_bytes = 256 * np.dtype(" None: + self.file_idx = (self.file_idx + 1) % len(self.files) + self.tokens = load_data_shard(self.files[self.file_idx]) + self.pos = 0 + def take(self, n: int) -> Tensor: + chunks: list[Tensor] = [] + remaining = n + while remaining > 0: + avail = self.tokens.numel() - self.pos + if avail <= 0: + self._advance_file() + continue + k = min(remaining, avail) + chunks.append(self.tokens[self.pos : self.pos + k]) + self.pos += k + remaining -= k + return chunks[0] if len(chunks) == 1 else torch.cat(chunks) +class DistributedTokenLoader: + def __init__(self, pattern: str, rank: int, world_size: int, device: torch.device): + self.rank = rank + self.world_size = world_size + self.device = device + self.stream = TokenStream(pattern) + def next_batch(self, global_tokens: int, seq_len: int, grad_accum_steps: int) -> tuple[Tensor, Tensor]: + local_tokens = global_tokens // (self.world_size * grad_accum_steps) + per_rank_span = local_tokens + 1 + chunk = self.stream.take(per_rank_span * self.world_size) + start = self.rank * per_rank_span + local = chunk[start : start + per_rank_span].to(dtype=torch.int64) + x = local[:-1].reshape(-1, seq_len) + y = local[1:].reshape(-1, seq_len) + return x.to(self.device, non_blocking=True), y.to(self.device, non_blocking=True) + +# --- Transformer modules --- + +class RMSNorm(nn.Module): + def __init__(self, eps: float | None = None): + super().__init__() + self.eps = eps + def forward(self, x: Tensor) -> Tensor: + return F.rms_norm(x, (x.size(-1),), eps=self.eps) +class CastedLinear(nn.Linear): + _qat_enabled: bool = False + def forward(self, x: Tensor) -> Tensor: + w = self.weight.to(x.dtype) + if CastedLinear._qat_enabled and self.training and w.ndim == 2: + with torch.no_grad(): + w32 = self.weight.float() + row_max = w32.abs().amax(dim=1) + scale = (row_max / 31.0).clamp_min(1.0 / 31.0) + w_q = (torch.clamp(torch.round(w32 / scale[:, None]), -32, 31) * scale[:, None]).to(x.dtype) + w = w + (w_q - w).detach() + bias = self.bias.to(x.dtype) if self.bias is not None else None + return F.linear(x, w, bias) +def restore_low_dim_params_to_fp32(module: nn.Module) -> None: + with torch.no_grad(): + for name, param in module.named_parameters(): + if (param.ndim < 2 or any(pattern in name for pattern in CONTROL_TENSOR_NAME_PATTERNS)) and param.dtype != torch.float32: + param.data = param.data.float() +class Rotary(nn.Module): + def __init__(self, dim: int, base: float = 10000.0, train_seq_len: int = 1024, rope_dims: int = 0): + super().__init__() + self.dim = dim + self.base = base + self.train_seq_len = train_seq_len + self.rope_dims = rope_dims if rope_dims > 0 else dim + inv_freq = 1.0 / (base ** (torch.arange(0, self.rope_dims, 2, dtype=torch.float32) / self.rope_dims)) + self.register_buffer("inv_freq", inv_freq, persistent=False) + self._seq_len_cached = 0 + self._cos_cached: Tensor | None = None + self._sin_cached: Tensor | None = None + def forward(self, seq_len: int, device: torch.device, dtype: torch.dtype) -> tuple[Tensor, Tensor]: + if ( + self._cos_cached is None + or self._sin_cached is None + or self._seq_len_cached != seq_len + or self._cos_cached.device != device + ): + rd = self.rope_dims + if seq_len > self.train_seq_len: + scale = seq_len / self.train_seq_len + new_base = self.base * (scale ** (rd / (rd - 2))) + inv_freq = 1.0 / (new_base ** (torch.arange(0, rd, 2, dtype=torch.float32, device=device) / rd)) + else: + inv_freq = self.inv_freq.to(device) + t = torch.arange(seq_len, device=device, dtype=inv_freq.dtype) + freqs = torch.outer(t, inv_freq) + self._cos_cached = freqs.cos()[None, :, None, :] + self._sin_cached = freqs.sin()[None, :, None, :] + self._seq_len_cached = seq_len + return self._cos_cached.to(dtype=dtype), self._sin_cached.to(dtype=dtype) +def apply_rotary_emb(x: Tensor, cos: Tensor, sin: Tensor, rope_dims: int = 0) -> Tensor: + if rope_dims > 0 and rope_dims < x.size(-1): + x_rope, x_pass = x[..., :rope_dims], x[..., rope_dims:] + half = rope_dims // 2 + x1, x2 = x_rope[..., :half], x_rope[..., half:] + x_rope = torch.cat((x1 * cos + x2 * sin, x1 * (-sin) + x2 * cos), dim=-1) + return torch.cat((x_rope, x_pass), dim=-1) + half = x.size(-1) // 2 + x1, x2 = x[..., :half], x[..., half:] + return torch.cat((x1 * cos + x2 * sin, x1 * (-sin) + x2 * cos), dim=-1) + +class CausalSelfAttention(nn.Module): + def __init__( + self, + dim: int, + num_heads: int, + num_kv_heads: int, + rope_base: float, + qk_gain_init: float, + gated_attention: bool = False, + value_residual: bool = False, + ): + super().__init__() + if dim % num_heads != 0: + raise ValueError("model_dim must be divisible by num_heads") + if num_heads % num_kv_heads != 0: + raise ValueError("num_heads must be divisible by num_kv_heads") + self.num_heads = num_heads + self.num_kv_heads = num_kv_heads + self.head_dim = dim // num_heads + if self.head_dim % 2 != 0: + raise ValueError("head_dim must be even for RoPE") + # No CastedLinear -- weights come from banks + self.q_gain = nn.Parameter(torch.full((num_heads,), qk_gain_init, dtype=torch.float32)) + self.rope_dims = 0 # set by GPT.__init__ for partial RoPE + self.rotary = Rotary(self.head_dim, base=rope_base, train_seq_len=1024) + self.use_xsa = False # set by GPT.__init__ for deep layers only + # Gated attention and value residual (non-banked small params) + self.gated_attention = gated_attention + if gated_attention: + self.attn_gate = nn.Linear(dim, num_heads, bias=True) + nn.init.zeros_(self.attn_gate.weight) + nn.init.constant_(self.attn_gate.bias, 4.0) + self.value_residual = value_residual + if value_residual: + self.vr_lambda = nn.Parameter(torch.tensor([0.5, 0.5], dtype=torch.float32)) + def _xsa_efficient(self, y: Tensor, v: Tensor) -> Tensor: + """Efficient XSA: subtract self-value projection via GQA-aware reshape (no repeat_interleave). + y: [B, T, H, D], v: [B, T, Hkv, D]. H must be divisible by Hkv.""" + B, T, H, D = y.shape + Hkv = v.size(-2) + group = H // Hkv + y_g = y.reshape(B, T, Hkv, group, D) # [B, T, Hkv, group, D] + vn = F.normalize(v, dim=-1).unsqueeze(-2) # [B, T, Hkv, 1, D] -- broadcast ready + proj = (y_g * vn).sum(dim=-1, keepdim=True) * vn + return (y_g - proj).reshape(B, T, H, D) + def forward(self, x: Tensor, q_w: Tensor, k_w: Tensor, v_w: Tensor, out_w: Tensor, v_embed: Tensor | None = None, v0: Tensor | None = None) -> tuple[Tensor, Tensor | None]: + bsz, seqlen, dim = x.shape + q = F.linear(x, q_w.to(x.dtype)).reshape(bsz, seqlen, self.num_heads, self.head_dim) + k = F.linear(x, k_w.to(x.dtype)).reshape(bsz, seqlen, self.num_kv_heads, self.head_dim) + v = F.linear(x, v_w.to(x.dtype)) + if v_embed is not None: + v = v + v_embed + v = v.reshape(bsz, seqlen, self.num_kv_heads, self.head_dim) + raw_v = v if self.value_residual else None + if self.value_residual and v0 is not None: + lam = self.vr_lambda.to(dtype=v.dtype) + v = lam[0] * v0 + lam[1] * v + q = F.rms_norm(q, (q.size(-1),)) + k = F.rms_norm(k, (k.size(-1),)) + cos, sin = self.rotary(seqlen, x.device, q.dtype) + q = apply_rotary_emb(q, cos, sin, self.rope_dims) + k = apply_rotary_emb(k, cos, sin, self.rope_dims) + q = q * self.q_gain.to(dtype=q.dtype)[None, None, :, None] + y = flash_attn_3_func(q, k, v, causal=True) + if self.use_xsa: + y = self._xsa_efficient(y, v) + if self.gated_attention: + # gate shape: (bsz, seqlen, num_heads) -> (bsz, seqlen, num_heads, 1) for B,T,H,D layout + gate = torch.sigmoid(self.attn_gate(x)).unsqueeze(-1) + y = y * gate + y = y.reshape(bsz, seqlen, dim) + return F.linear(y, out_w.to(x.dtype)), raw_v + +class SmearGate(nn.Module): + def __init__(self, dim: int): + super().__init__() + self.gate = nn.Parameter(torch.zeros(dim, dtype=torch.float32)) + def forward(self, x: Tensor) -> Tensor: + g = torch.sigmoid(self.gate.to(dtype=x.dtype))[None, None, :] + x_prev = torch.cat([torch.zeros_like(x[:, :1]), x[:, :-1]], dim=1) + return (1 - g) * x + g * x_prev + +class BigramHashEmbedding(nn.Module): + def __init__(self, bigram_vocab_size: int, bigram_dim: int, model_dim: int): + super().__init__() + self.bigram_vocab_size = bigram_vocab_size + self.embed = nn.Embedding(bigram_vocab_size, bigram_dim) + nn.init.zeros_(self.embed.weight) + self.proj = CastedLinear(bigram_dim, model_dim, bias=False) if bigram_dim != model_dim else None + if self.proj is not None: + nn.init.zeros_(self.proj.weight) + self.scale = nn.Parameter(torch.tensor(0.05, dtype=torch.float32)) + def bigram_hash(self, tokens: Tensor) -> Tensor: + t = tokens.to(torch.int32) + mod = self.bigram_vocab_size - 1 + out = torch.empty_like(t) + out[..., 0] = mod + out[..., 1:] = torch.bitwise_xor(36313 * t[..., 1:], 27191 * t[..., :-1]) % mod + return out.long() + def forward(self, token_ids: Tensor) -> Tensor: + h = self.embed(self.bigram_hash(token_ids)) + if self.proj is not None: + h = self.proj(h) + return h * self.scale.to(dtype=h.dtype) + +class ValueEmbedding(nn.Module): + """Reinject token identity into attention values at specific layers. + Each table maps vocab tokens to a low-dim embedding, projected to model_dim.""" + def __init__(self, vocab_size: int, ve_dim: int, model_dim: int): + super().__init__() + self.embed = nn.Embedding(vocab_size, ve_dim) + nn.init.normal_(self.embed.weight, std=0.01) + self.proj = CastedLinear(ve_dim, model_dim, bias=False) if ve_dim != model_dim else None + if self.proj is not None: + nn.init.zeros_(self.proj.weight) + self.scale = nn.Parameter(torch.tensor(0.1, dtype=torch.float32)) + def forward(self, token_ids: Tensor) -> Tensor: + h = self.embed(token_ids) + if self.proj is not None: + h = self.proj(h) + return h * self.scale.to(dtype=h.dtype) + +class MLP(nn.Module): + def __init__(self, dim: int, mlp_mult: int): + super().__init__() + # No CastedLinear -- weights come from banks + def forward(self, x: Tensor, up_w: Tensor, down_w: Tensor) -> Tensor: + x = F.leaky_relu(F.linear(x, up_w.to(x.dtype)), negative_slope=0.5) + return F.linear(x.square(), down_w.to(x.dtype)) + +class Block(nn.Module): + def __init__( + self, + dim: int, + num_heads: int, + num_kv_heads: int, + mlp_mult: int, + rope_base: float, + qk_gain_init: float, + layer_idx: int = 0, + ln_scale: bool = False, + dtg: bool = False, + gated_attention: bool = False, + value_residual: bool = False, + ): + super().__init__() + self.attn_norm = RMSNorm() + self.mlp_norm = RMSNorm() + self.attn = CausalSelfAttention(dim, num_heads, num_kv_heads, rope_base, qk_gain_init, + gated_attention=gated_attention, value_residual=value_residual) + self.mlp = MLP(dim, mlp_mult) + self.attn_scale = nn.Parameter(torch.ones(dim, dtype=torch.float32)) + self.mlp_scale = nn.Parameter(torch.ones(dim, dtype=torch.float32)) + self.resid_mix = nn.Parameter(torch.stack((torch.ones(dim), torch.zeros(dim))).float()) + self.ln_scale_factor = 1.0 / math.sqrt(layer_idx + 1) if ln_scale else 1.0 + if dtg: + self.dtg_gate = nn.Linear(dim, 1, bias=True) + nn.init.zeros_(self.dtg_gate.weight) + nn.init.constant_(self.dtg_gate.bias, 2.0) + else: + self.dtg_gate = None + def forward(self, x: Tensor, x0: Tensor, q_w: Tensor, k_w: Tensor, v_w: Tensor, out_w: Tensor, up_w: Tensor, down_w: Tensor, v_embed: Tensor | None = None, v0: Tensor | None = None) -> tuple[Tensor, Tensor | None]: + mix = self.resid_mix.to(dtype=x.dtype) + x_in = mix[0][None, None, :] * x + mix[1][None, None, :] * x0 + attn_out, raw_v = self.attn(self.attn_norm(x_in) * self.ln_scale_factor, q_w, k_w, v_w, out_w, v_embed=v_embed, v0=v0) + x_out = x_in + self.attn_scale.to(dtype=x_in.dtype)[None, None, :] * attn_out + x_out = x_out + self.mlp_scale.to(dtype=x_out.dtype)[None, None, :] * self.mlp(self.mlp_norm(x_out) * self.ln_scale_factor, up_w, down_w) + if self.dtg_gate is not None: + gate = torch.sigmoid(self.dtg_gate(x_in.detach())) + x_out = x_in + gate * (x_out - x_in) + return x_out, raw_v + +class GPT(nn.Module): + def __init__( + self, + vocab_size: int, + num_layers: int, + model_dim: int, + num_heads: int, + num_kv_heads: int, + mlp_mult: int, + tie_embeddings: bool, + tied_embed_init_std: float, + logit_softcap: float, + rope_base: float, + qk_gain_init: float, + mtp_num_heads: int = 0, + mtp_loss_weight: float = 0.1, + bigram_vocab_size: int = 0, + bigram_dim: int = 128, + xsa_last_n: int = 0, + rope_dims: int = 0, + ln_scale: bool = False, + dtg: bool = False, + ve_enabled: bool = False, + ve_dim: int = 128, + ve_layers: str = "9,10", + gated_attention: bool = False, + value_residual: bool = False, + ): + super().__init__() + self._ve_target_dim = num_kv_heads * (model_dim // num_heads) # kv_dim for value projection + if logit_softcap <= 0.0: + raise ValueError(f"logit_softcap must be positive, got {logit_softcap}") + self.tie_embeddings = tie_embeddings + self.tied_embed_init_std = tied_embed_init_std + self.logit_softcap = logit_softcap + self.value_residual = value_residual + self.mtp_num_heads = mtp_num_heads + self.mtp_loss_weight = mtp_loss_weight + self.tok_emb = nn.Embedding(vocab_size, model_dim) + self.bigram = BigramHashEmbedding(bigram_vocab_size, bigram_dim, model_dim) if bigram_vocab_size > 0 else None + self.smear = SmearGate(model_dim) + self.num_encoder_layers = num_layers // 2 + self.num_decoder_layers = num_layers - self.num_encoder_layers + self.num_skip_weights = min(self.num_encoder_layers, self.num_decoder_layers) + self.skip_weights = nn.Parameter(torch.ones(self.num_skip_weights, model_dim, dtype=torch.float32)) + # Parameter banks: contiguous 3D tensors for batched optimizer + head_dim = model_dim // num_heads + kv_dim = num_kv_heads * head_dim + mlp_dim = int(mlp_mult * model_dim) + self.num_layers = num_layers + self.qo_bank = nn.Parameter(torch.empty(2 * num_layers, model_dim, model_dim)) + self.kv_bank = nn.Parameter(torch.empty(2 * num_layers, kv_dim, model_dim)) + self.mlp_up_bank = nn.Parameter(torch.empty(num_layers, mlp_dim, model_dim)) + self.mlp_down_bank = nn.Parameter(torch.empty(num_layers, model_dim, mlp_dim)) + self.blocks = nn.ModuleList( + [ + Block( + model_dim, + num_heads, + num_kv_heads, + mlp_mult, + rope_base, + qk_gain_init, + layer_idx=i, + ln_scale=ln_scale, + dtg=dtg, + gated_attention=gated_attention, + value_residual=value_residual, + ) + for i in range(num_layers) + ] + ) + if rope_dims > 0: + head_dim = model_dim // num_heads + for block in self.blocks: + block.attn.rope_dims = rope_dims + block.attn.rotary = Rotary(head_dim, base=rope_base, train_seq_len=1024, rope_dims=rope_dims) + self.ve_layer_indices = [int(x) for x in ve_layers.split(",") if x.strip()] if ve_enabled else [] + kv_dim_ve = self._ve_target_dim + if self.ve_layer_indices: + self.ve_shared = ValueEmbedding(vocab_size, ve_dim, kv_dim_ve) + self.ve_layer_scales = nn.ParameterList( + [nn.Parameter(torch.ones(1, dtype=torch.float32)) for _ in self.ve_layer_indices] + ) + else: + self.ve_shared = None + self.ve_layer_scales = nn.ParameterList() + self.value_embeds = nn.ModuleList() # keep empty for compat + self.final_norm = RMSNorm() + self.lm_head = None if tie_embeddings else CastedLinear(model_dim, vocab_size, bias=False) + if self.lm_head is not None: + self.lm_head._zero_init = True + self.mtp_heads = nn.ModuleList( + [CastedLinear(model_dim, vocab_size, bias=False) for _ in range(mtp_num_heads)] + ) + for head in self.mtp_heads: + head._zero_init = True + if xsa_last_n > 0: + for i in range(max(0, num_layers - xsa_last_n), num_layers): + self.blocks[i].attn.use_xsa = True + self._init_weights() + def _init_weights(self) -> None: + if self.tie_embeddings: + nn.init.normal_(self.tok_emb.weight, mean=0.0, std=self.tied_embed_init_std) + n = self.num_layers + proj_scale = 1.0 / math.sqrt(2 * n) + # Init banks: orthogonal, with proj layers scaled down and out/down zero-init + for i in range(n): + nn.init.orthogonal_(self.qo_bank.data[i], gain=1.0) # Q + nn.init.zeros_(self.qo_bank.data[n + i]) # Out (zero init) + nn.init.orthogonal_(self.kv_bank.data[i], gain=1.0) # K + nn.init.orthogonal_(self.kv_bank.data[n + i], gain=1.0) # V + nn.init.orthogonal_(self.mlp_up_bank.data[i], gain=1.0) # MLP up + nn.init.zeros_(self.mlp_down_bank.data[i]) # MLP down (zero init) + # Scale proj layers (out_proj and mlp_down are "proj" layers) + self.qo_bank.data[n + i].mul_(proj_scale) + self.mlp_down_bank.data[i].mul_(proj_scale) + # Init remaining nn.Linear modules (bigram proj, mtp heads, lm_head) + for name, module in self.named_modules(): + if isinstance(module, nn.Linear): + if getattr(module, "_zero_init", False): + nn.init.zeros_(module.weight) + elif module.weight.ndim == 2 and module.weight.shape[0] >= 64 and module.weight.shape[1] >= 64: + nn.init.orthogonal_(module.weight, gain=1.0) + def _get_ve(self, layer_idx: int, input_ids: Tensor, ve_cache: dict | None = None) -> Tensor | None: + """Get value embedding for a specific layer using shared table + per-layer scale.""" + if self.ve_shared is None or layer_idx not in self.ve_layer_indices: + return None + if ve_cache is not None and 've' not in ve_cache: + ve_cache['ve'] = self.ve_shared(input_ids) + ve_base = ve_cache['ve'] if ve_cache is not None else self.ve_shared(input_ids) + ve_idx = self.ve_layer_indices.index(layer_idx) + return ve_base * self.ve_layer_scales[ve_idx].to(dtype=ve_base.dtype) + def forward(self, input_ids: Tensor, target_ids: Tensor) -> Tensor: + n = self.num_layers + x = self.tok_emb(input_ids) + if self.bigram is not None: + x = x + self.bigram(input_ids) + x = F.rms_norm(x, (x.size(-1),)) + x = self.smear(x) + x0 = x + v0 = None + skips: list[Tensor] = [] + ve_cache: dict = {} + for i in range(self.num_encoder_layers): + ve = self._get_ve(i, input_ids, ve_cache) + x, raw_v = self.blocks[i](x, x0, + self.qo_bank[i], self.kv_bank[i], self.kv_bank[n + i], + self.qo_bank[n + i], self.mlp_up_bank[i], self.mlp_down_bank[i], + v_embed=ve, v0=v0) + if v0 is None and raw_v is not None: + v0 = raw_v + skips.append(x) + for i in range(self.num_decoder_layers): + bi = self.num_encoder_layers + i + if skips: + x = x + self.skip_weights[i].to(dtype=x.dtype)[None, None, :] * skips.pop() + ve = self._get_ve(bi, input_ids, ve_cache) + x, _ = self.blocks[bi](x, x0, + self.qo_bank[bi], self.kv_bank[bi], self.kv_bank[n + bi], + self.qo_bank[n + bi], self.mlp_up_bank[bi], self.mlp_down_bank[bi], + v_embed=ve, v0=v0) + x = self.final_norm(x) + x_flat = x.reshape(-1, x.size(-1)) + targets = target_ids.reshape(-1) + if self.tie_embeddings: + logits_proj = F.linear(x_flat, self.tok_emb.weight) + else: + if self.lm_head is None: + raise RuntimeError("lm_head is required when tie_embeddings=False") + logits_proj = self.lm_head(x_flat) + logits = self.logit_softcap * torch.tanh(logits_proj / self.logit_softcap) + main_loss = F.cross_entropy(logits.float(), targets, reduction="mean") + if self.training and self.mtp_num_heads > 0 and self.mtp_loss_weight > 0.0: + _, seqlen, dim = x.shape + mtp_loss_sum = x.new_zeros(()) + mtp_loss_count = 0 + for k, mtp_head in enumerate(self.mtp_heads): + valid_t = seqlen - (k + 1) + if valid_t <= 0: + continue + mtp_hidden = x[:, :valid_t, :].reshape(-1, dim) + mtp_targets = target_ids[:, k + 1 :].reshape(-1) + mtp_logits_proj = mtp_head(mtp_hidden) + mtp_logits = self.logit_softcap * torch.tanh(mtp_logits_proj / self.logit_softcap) + mtp_loss_sum = mtp_loss_sum + F.cross_entropy(mtp_logits.float(), mtp_targets, reduction="mean") + mtp_loss_count += 1 + if mtp_loss_count > 0: + main_loss = main_loss + self.mtp_loss_weight * (mtp_loss_sum / mtp_loss_count) + return main_loss + def forward_logits(self, input_ids: Tensor) -> Tensor: + """Return logits (bsz, seq_len, vocab) without computing loss.""" + n = self.num_layers + x = self.tok_emb(input_ids) + if self.bigram is not None: + x = x + self.bigram(input_ids) + x = F.rms_norm(x, (x.size(-1),)) + x = self.smear(x) + x0 = x + v0 = None + skips: list[Tensor] = [] + ve_cache: dict = {} + for i in range(self.num_encoder_layers): + ve = self._get_ve(i, input_ids, ve_cache) + x, raw_v = self.blocks[i](x, x0, + self.qo_bank[i], self.kv_bank[i], self.kv_bank[n + i], + self.qo_bank[n + i], self.mlp_up_bank[i], self.mlp_down_bank[i], + v_embed=ve, v0=v0) + if v0 is None and raw_v is not None: + v0 = raw_v + skips.append(x) + for i in range(self.num_decoder_layers): + bi = self.num_encoder_layers + i + if skips: + x = x + self.skip_weights[i].to(dtype=x.dtype)[None, None, :] * skips.pop() + ve = self._get_ve(bi, input_ids, ve_cache) + x, _ = self.blocks[bi](x, x0, + self.qo_bank[bi], self.kv_bank[bi], self.kv_bank[n + bi], + self.qo_bank[n + bi], self.mlp_up_bank[bi], self.mlp_down_bank[bi], + v_embed=ve, v0=v0) + x = self.final_norm(x) + if self.tie_embeddings: + logits_proj = F.linear(x, self.tok_emb.weight) + else: + logits_proj = self.lm_head(x) + return self.logit_softcap * torch.tanh(logits_proj / self.logit_softcap) + +# --- Sliding window evaluation --- + +def eval_val_sliding( + args: Hyperparameters, + base_model: nn.Module, + rank: int, + world_size: int, + device: torch.device, + val_tokens: Tensor, + base_bytes_lut: Tensor, + has_leading_space_lut: Tensor, + is_boundary_token_lut: Tensor, + stride: int, + batch_seqs: int = 32, + eval_seq_len: int | None = None, +) -> tuple[float, float]: + """Sliding window evaluation: each token scored with maximum context.""" + seq_len = eval_seq_len or args.train_seq_len + total_tokens = val_tokens.numel() - 1 + window_starts = [ws for ws in range(0, total_tokens, stride) + if min(ws + seq_len, total_tokens) - ws >= 1] + total_windows = len(window_starts) + my_s = (total_windows * rank) // world_size + my_e = (total_windows * (rank + 1)) // world_size + my_windows = window_starts[my_s:my_e] + loss_sum = torch.zeros((), device=device, dtype=torch.float64) + token_count = torch.zeros((), device=device, dtype=torch.float64) + byte_count = torch.zeros((), device=device, dtype=torch.float64) + base_model.eval() + compiled_logits = torch.compile(base_model.forward_logits, dynamic=False, fullgraph=True) + with torch.inference_mode(): + for bi in range(0, len(my_windows), batch_seqs): + batch_ws = my_windows[bi:bi + batch_seqs] + bsz = len(batch_ws) + x_batch = torch.zeros(bsz, seq_len, dtype=torch.int64, device=device) + y_batch = torch.zeros(bsz, seq_len, dtype=torch.int64, device=device) + wlens: list[int] = [] + for i, ws in enumerate(batch_ws): + end = min(ws + seq_len, total_tokens) + wlen = end - ws + wlens.append(wlen) + chunk = val_tokens[ws:end + 1].to(dtype=torch.int64, device=device) + x_batch[i, :wlen] = chunk[:-1] + y_batch[i, :wlen] = chunk[1:] + with torch.autocast(device_type="cuda", dtype=torch.bfloat16): + logits = compiled_logits(x_batch) + nll = F.cross_entropy( + logits.reshape(-1, logits.size(-1)).float(), + y_batch.reshape(-1), + reduction="none", + ).reshape(bsz, seq_len) + for i, ws in enumerate(batch_ws): + wlen = wlens[i] + s = 0 if ws == 0 else max(wlen - stride, 0) + scored_nll = nll[i, s:wlen].to(torch.float64) + loss_sum += scored_nll.sum() + token_count += float(wlen - s) + tgt = y_batch[i, s:wlen] + prev = x_batch[i, s:wlen] + tb = base_bytes_lut[tgt].to(torch.float64) + tb += (has_leading_space_lut[tgt] & ~is_boundary_token_lut[prev]).to(torch.float64) + byte_count += tb.sum() + if dist.is_available() and dist.is_initialized(): + dist.all_reduce(loss_sum, op=dist.ReduceOp.SUM) + dist.all_reduce(token_count, op=dist.ReduceOp.SUM) + dist.all_reduce(byte_count, op=dist.ReduceOp.SUM) + val_loss = (loss_sum / token_count).item() + bits_per_token = val_loss / math.log(2.0) + tokens_per_byte = token_count.item() / byte_count.item() + base_model.train() + return val_loss, bits_per_token * tokens_per_byte + + +def eval_val_sliding_ttt( + args: Hyperparameters, base_model: nn.Module, rank: int, world_size: int, + device: torch.device, val_tokens: Tensor, base_bytes_lut: Tensor, + has_leading_space_lut: Tensor, is_boundary_token_lut: Tensor, + stride: int, batch_seqs: int = 32, log0=print, +) -> tuple[float, float]: + """Legal score-first TTT (PR #461 recipe): score each chunk with sliding windows, + then train on it. Every token scored BEFORE any update that could use it.""" + seq_len = args.train_seq_len + total_tokens = val_tokens.numel() - 1 + ttt_chunk = args.ttt_chunk_tokens + + # Pre-compute all window starts + window_starts = [ws for ws in range(0, total_tokens, stride) + if min(ws + seq_len, total_tokens) - ws >= stride or ws == 0] + + # Assign each window to a chunk based on the first token it scores + num_chunks = (total_tokens + ttt_chunk - 1) // ttt_chunk + chunk_windows: list[list[int]] = [[] for _ in range(num_chunks)] + for ws in window_starts: + end = min(ws + seq_len, total_tokens) + wlen = end - ws + s = 0 if ws == 0 else max(wlen - stride, 0) + scored_start = ws + s + ci = min(scored_start // ttt_chunk, num_chunks - 1) + chunk_windows[ci].append(ws) + + log0(f"ttt_sliding:start chunks={num_chunks} chunk_tokens={ttt_chunk} " + f"total_windows={len(window_starts)} stride={stride} " + f"ttt_lr={args.ttt_lr} ttt_epochs={args.ttt_epochs} " + f"freeze_blocks={args.ttt_freeze_blocks}") + + loss_sum = torch.zeros((), device=device, dtype=torch.float64) + token_count = torch.zeros((), device=device, dtype=torch.float64) + byte_count = torch.zeros((), device=device, dtype=torch.float64) + + # Freeze first N blocks + frozen_block_ids = set(range(min(args.ttt_freeze_blocks, len(base_model.blocks)))) + ttt_params = [] + for name, p in base_model.named_parameters(): + freeze = False + for bi in frozen_block_ids: + if f"blocks.{bi}." in name: + freeze = True + break + if freeze: + p.requires_grad_(False) + else: + p.requires_grad_(True) + ttt_params.append(p) + + log0(f"ttt_sliding:params unfrozen={sum(p.numel() for p in ttt_params)} " + f"frozen={sum(p.numel() for p in base_model.parameters() if not p.requires_grad)}") + + optimizer = torch.optim.SGD(ttt_params, lr=args.ttt_lr, momentum=args.ttt_momentum) + t0 = time.perf_counter() + + for ci in range(num_chunks): + windows = chunk_windows[ci] + if not windows: + continue + chunk_start = ci * ttt_chunk + chunk_end = min((ci + 1) * ttt_chunk, total_tokens) + + # --- Phase 1: SCORE this chunk's windows (inference_mode) --- + my_s = (len(windows) * rank) // world_size + my_e = (len(windows) * (rank + 1)) // world_size + my_windows = windows[my_s:my_e] + + base_model.eval() + with torch.inference_mode(): + for bi in range(0, len(my_windows), batch_seqs): + batch_ws = my_windows[bi:bi + batch_seqs] + bsz = len(batch_ws) + x_batch = torch.zeros(bsz, seq_len, dtype=torch.int64, device=device) + y_batch = torch.zeros(bsz, seq_len, dtype=torch.int64, device=device) + wlens: list[int] = [] + for i, ws in enumerate(batch_ws): + end = min(ws + seq_len, total_tokens) + wlen = end - ws + wlens.append(wlen) + chunk_tok = val_tokens[ws:end + 1].to(dtype=torch.int64, device=device) + x_batch[i, :wlen] = chunk_tok[:-1] + y_batch[i, :wlen] = chunk_tok[1:] + with torch.autocast(device_type="cuda", dtype=torch.bfloat16): + logits = base_model.forward_logits(x_batch) + nll = F.cross_entropy( + logits.reshape(-1, logits.size(-1)).float(), + y_batch.reshape(-1), reduction="none", + ).reshape(bsz, seq_len) + for i, ws in enumerate(batch_ws): + wlen = wlens[i] + s = 0 if ws == 0 else max(wlen - stride, 0) + scored_nll = nll[i, s:wlen].to(torch.float64) + loss_sum += scored_nll.sum() + token_count += float(wlen - s) + tgt, prev = y_batch[i, s:wlen], x_batch[i, s:wlen] + tb = base_bytes_lut[tgt].to(torch.float64) + tb += (has_leading_space_lut[tgt] & ~is_boundary_token_lut[prev]).to(torch.float64) + byte_count += tb.sum() + + # --- Phase 2: TRAIN on this chunk (already scored = legal) --- + is_last_chunk = (ci == num_chunks - 1) + if not is_last_chunk and args.ttt_epochs > 0: + base_model.train() + chunk_seqs = (chunk_end - chunk_start) // seq_len + if chunk_seqs > 0: + cos_lr = args.ttt_lr * 0.5 * (1.0 + math.cos(math.pi * ci / max(num_chunks - 1, 1))) + for pg in optimizer.param_groups: + pg['lr'] = cos_lr + my_seq_s = (chunk_seqs * rank) // world_size + my_seq_e = (chunk_seqs * (rank + 1)) // world_size + my_chunk_seqs = my_seq_e - my_seq_s + for _ep in range(args.ttt_epochs): + for bs in range(0, my_chunk_seqs, args.ttt_batch_seqs): + be = min(bs + args.ttt_batch_seqs, my_chunk_seqs) + actual_bs = my_seq_s + bs + start_tok = chunk_start + actual_bs * seq_len + end_tok = chunk_start + (my_seq_s + be) * seq_len + 1 + if end_tok > val_tokens.numel(): + continue + local = val_tokens[start_tok:end_tok].to(device=device, dtype=torch.int64) + x = local[:-1].reshape(-1, seq_len) + y = local[1:].reshape(-1, seq_len) + optimizer.zero_grad(set_to_none=True) + with torch.autocast(device_type="cuda", dtype=torch.bfloat16): + loss = base_model(x, y) + loss.backward() + if world_size > 1: + for p in ttt_params: + if p.grad is not None: + dist.all_reduce(p.grad, op=dist.ReduceOp.AVG) + torch.nn.utils.clip_grad_norm_(ttt_params, args.ttt_grad_clip) + optimizer.step() + + if rank == 0 and (ci % 10 == 0 or ci == num_chunks - 1): + elapsed = time.perf_counter() - t0 + rl = loss_sum.item() / max(token_count.item(), 1) + rbpb = rl / math.log(2.0) * (token_count.item() / max(byte_count.item(), 1)) if token_count.item() > 0 else 0.0 + log0(f" ttt_chunk [{ci+1}/{num_chunks}] bpb={rbpb:.6f} time={elapsed:.1f}s") + + if dist.is_available() and dist.is_initialized(): + dist.all_reduce(loss_sum, op=dist.ReduceOp.SUM) + dist.all_reduce(token_count, op=dist.ReduceOp.SUM) + dist.all_reduce(byte_count, op=dist.ReduceOp.SUM) + + val_loss = (loss_sum / token_count).item() + val_bpb = val_loss / math.log(2.0) * (token_count.item() / byte_count.item()) + + for p in base_model.parameters(): + p.requires_grad_(True) + base_model.eval() + + log0(f"ttt_sliding:done val_loss={val_loss:.6f} val_bpb={val_bpb:.6f} " + f"elapsed={time.perf_counter() - t0:.1f}s") + return val_loss, val_bpb + + +# --- GPTQ-lite int6 quantization --- + +def _classify_param(name: str) -> str: + if "tok_emb" in name or "lm_head" in name: + return "embed" + if ".mlp." in name: + return "mlp" + if ".attn." in name or (".proj." in name and ".mlp." not in name): + return "attn" + return "other" +def quantize_int6_per_row(t: Tensor, clip_range: int = 31) -> tuple[Tensor, Tensor]: + t32 = t.float() + if t32.ndim == 2: + best_q, best_s, best_err = None, None, float('inf') + for pct in [0.9990, 0.9995, 0.9999, 0.99999, 1.0]: + if pct < 1.0: + row_clip = torch.quantile(t32.abs(), pct, dim=1) + else: + row_clip = t32.abs().amax(dim=1) + s = (row_clip / clip_range).clamp_min(1.0 / clip_range).to(torch.float16) + q = torch.clamp(torch.round(t32 / s.float()[:, None]), -clip_range, clip_range).to(torch.int8) + recon = q.float() * s.float()[:, None] + err = (t32 - recon).pow(2).mean().item() + if err < best_err: + best_q, best_s, best_err = q, s, err + return best_q, best_s + amax = t32.abs().max().item() + scale = torch.tensor(amax / clip_range if amax > 0 else 1.0, dtype=torch.float16) + q = torch.clamp(torch.round(t32 / scale.float()), -clip_range, clip_range).to(torch.int8) + return q, scale + +def _unbank_state_dict(sd: dict[str, Tensor], num_layers: int) -> dict[str, Tensor]: + """Convert 3D bank tensors into individual 2D tensors with standard names.""" + out: dict[str, Tensor] = {} + n = num_layers + for name, tensor in sd.items(): + if name == "qo_bank": + for i in range(n): + out[f"blocks.{i}.attn.c_q.weight"] = tensor[i] + out[f"blocks.{i}.attn.proj.weight"] = tensor[n + i] + elif name == "kv_bank": + for i in range(n): + out[f"blocks.{i}.attn.c_k.weight"] = tensor[i] + out[f"blocks.{i}.attn.c_v.weight"] = tensor[n + i] + elif name == "mlp_up_bank": + for i in range(n): + out[f"blocks.{i}.mlp.fc.weight"] = tensor[i] + elif name == "mlp_down_bank": + for i in range(n): + out[f"blocks.{i}.mlp.proj.weight"] = tensor[i] + else: + out[name] = tensor + return out + +def _rebank_state_dict(sd: dict[str, Tensor], num_layers: int, template_sd: dict[str, Tensor]) -> dict[str, Tensor]: + """Convert individual 2D tensors back into 3D bank tensors.""" + out: dict[str, Tensor] = {} + n = num_layers + # Reconstruct banks from individual weight keys + qo_slices = [None] * (2 * n) + kv_slices = [None] * (2 * n) + up_slices = [None] * n + down_slices = [None] * n + consumed = set() + for i in range(n): + qk = f"blocks.{i}.attn.c_q.weight" + if qk in sd: + qo_slices[i] = sd[qk] + consumed.add(qk) + ok = f"blocks.{i}.attn.proj.weight" + if ok in sd: + qo_slices[n + i] = sd[ok] + consumed.add(ok) + kk = f"blocks.{i}.attn.c_k.weight" + if kk in sd: + kv_slices[i] = sd[kk] + consumed.add(kk) + vk = f"blocks.{i}.attn.c_v.weight" + if vk in sd: + kv_slices[n + i] = sd[vk] + consumed.add(vk) + fk = f"blocks.{i}.mlp.fc.weight" + if fk in sd: + up_slices[i] = sd[fk] + consumed.add(fk) + dk = f"blocks.{i}.mlp.proj.weight" + if dk in sd: + down_slices[i] = sd[dk] + consumed.add(dk) + out["qo_bank"] = torch.stack(qo_slices).to(dtype=template_sd["qo_bank"].dtype) + out["kv_bank"] = torch.stack(kv_slices).to(dtype=template_sd["kv_bank"].dtype) + out["mlp_up_bank"] = torch.stack(up_slices).to(dtype=template_sd["mlp_up_bank"].dtype) + out["mlp_down_bank"] = torch.stack(down_slices).to(dtype=template_sd["mlp_down_bank"].dtype) + for name, tensor in sd.items(): + if name not in consumed: + out[name] = tensor + return out + +def mixed_quantize_int6(state_dict: dict[str, Tensor], int6_cats: set[str]): + num_layers_total = max( + (int(k.split(".")[1]) for k in state_dict if k.startswith("blocks.")), + default=0, + ) + 1 + late_k_layers = set(range(num_layers_total - 2, num_layers_total)) + result: dict[str, Tensor] = {} + meta: dict[str, object] = {} + for name, tensor in state_dict.items(): + t = tensor.detach().cpu().contiguous() + cat = _classify_param(name) + if not t.is_floating_point() or t.numel() <= 65536: + result[name] = t.to(torch.float16) if t.is_floating_point() else t + meta[name] = "passthrough" + continue + if any(p in name for p in CONTROL_TENSOR_NAME_PATTERNS): + result[name] = t.float() + meta[name] = "passthrough_ctrl" + continue + if cat in int6_cats and t.ndim >= 1: + q, s = quantize_int6_per_row(t) + result[name + ".q"] = q + result[name + ".scale"] = s + meta[name] = {"type": "int6"} + else: + q, s = quantize_float_tensor(t) + result[name + ".q"] = q + result[name + ".scale"] = s + meta[name] = {"type": "int8"} + return result, meta +def dequantize_mixed_int6(result: dict[str, Tensor], meta: dict[str, object], + template_sd: dict[str, Tensor]) -> dict[str, Tensor]: + out: dict[str, Tensor] = {} + for name, orig in template_sd.items(): + info = meta.get(name) + if info is None: + continue + orig_dtype = orig.dtype + if info in ("passthrough", "passthrough_ctrl", "passthrough_fp16"): + t = result[name] + if t.dtype == torch.float16 and orig_dtype in (torch.float32, torch.bfloat16): + t = t.to(orig_dtype) + out[name] = t + continue + q, s = result[name + ".q"], result[name + ".scale"] + if s.ndim > 0: + out[name] = (q.float() * s.float().view(q.shape[0], *([1] * (q.ndim - 1)))).to(orig_dtype) + else: + out[name] = (q.float() * float(s.item())).to(orig_dtype) + return out + +# --- Training --- + +def main() -> None: + code = Path(__file__).read_text(encoding="utf-8") + args = Hyperparameters() + # zeropower_via_newtonschulz5 runs eagerly with bmm -- do NOT compile + distributed = "RANK" in os.environ and "WORLD_SIZE" in os.environ + rank = int(os.environ.get("RANK", "0")) + world_size = int(os.environ.get("WORLD_SIZE", "1")) + local_rank = int(os.environ.get("LOCAL_RANK", "0")) + if world_size <= 0: + raise ValueError(f"WORLD_SIZE must be positive, got {world_size}") + if 8 % world_size != 0: + raise ValueError(f"WORLD_SIZE={world_size} must divide 8 so grad_accum_steps stays integral") + grad_accum_steps = 8 // world_size + grad_scale = 1.0 / grad_accum_steps + if not torch.cuda.is_available(): + raise RuntimeError("CUDA is required") + device = torch.device("cuda", local_rank) + torch.cuda.set_device(device) + if distributed: + dist.init_process_group(backend="nccl", device_id=device) + dist.barrier() + master_process = rank == 0 + torch.backends.cuda.matmul.allow_tf32 = True + torch.backends.cudnn.allow_tf32 = True + from torch.backends.cuda import enable_cudnn_sdp, enable_flash_sdp, enable_math_sdp, enable_mem_efficient_sdp + enable_cudnn_sdp(False) + enable_flash_sdp(True) + enable_mem_efficient_sdp(False) + enable_math_sdp(False) + logfile = None + if master_process: + os.makedirs("logs", exist_ok=True) + logfile = f"logs/{args.run_id}.txt" + print(logfile) + def log0(msg: str, console: bool = True) -> None: + if not master_process: + return + if console: + print(msg) + if logfile is not None: + with open(logfile, "a", encoding="utf-8") as f: + print(msg, file=f) + log0(code, console=False) + log0("=" * 100, console=False) + log0(f"Running Python {sys.version}", console=False) + log0(f"Running PyTorch {torch.__version__}", console=False) + log0( + subprocess.run(["nvidia-smi"], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True, check=False).stdout, + console=False, + ) + log0("=" * 100, console=False) + random.seed(args.seed) + np.random.seed(args.seed) + torch.manual_seed(args.seed) + torch.cuda.manual_seed_all(args.seed) + if not args.tokenizer_path.endswith(".model"): + raise ValueError(f"Script only setup for SentencePiece .model file: {args.tokenizer_path}") + sp = spm.SentencePieceProcessor(model_file=args.tokenizer_path) + if int(sp.vocab_size()) != args.vocab_size: + raise ValueError( + f"VOCAB_SIZE={args.vocab_size} does not match tokenizer vocab_size={int(sp.vocab_size())}" + ) + dataset_dir = Path(args.data_path).resolve() + actual_train_files = len(list(dataset_dir.glob("fineweb_train_*.bin"))) + effective_eval_seq_len = args.eval_seq_len if args.eval_seq_len > 0 else args.train_seq_len + val_seq_len = max(args.train_seq_len, effective_eval_seq_len) + val_tokens = load_validation_tokens(args.val_files, val_seq_len) + base_bytes_lut, has_leading_space_lut, is_boundary_token_lut = build_sentencepiece_luts( + sp, args.vocab_size, device + ) + log0(f"val_bpb:enabled tokenizer_kind=sentencepiece tokenizer_path={args.tokenizer_path}") + log0(f"train_loader:dataset:{dataset_dir.name} train_shards:{actual_train_files}") + log0(f"val_loader:shards pattern={args.val_files} tokens:{val_tokens.numel() - 1}") + CastedLinear._qat_enabled = args.qat_enabled + base_model = GPT( + vocab_size=args.vocab_size, + num_layers=args.num_layers, + model_dim=args.model_dim, + num_heads=args.num_heads, + num_kv_heads=args.num_kv_heads, + mlp_mult=args.mlp_mult, + tie_embeddings=args.tie_embeddings, + tied_embed_init_std=args.tied_embed_init_std, + logit_softcap=args.logit_softcap, + rope_base=args.rope_base, + qk_gain_init=args.qk_gain_init, + mtp_num_heads=args.mtp_num_heads, + mtp_loss_weight=args.mtp_loss_weight, + bigram_vocab_size=args.bigram_vocab_size, + bigram_dim=args.bigram_dim, + xsa_last_n=args.xsa_last_n, + rope_dims=args.rope_dims, + ln_scale=args.ln_scale, + dtg=args.dtg_enabled, + ve_enabled=args.ve_enabled, + ve_dim=args.ve_dim, + ve_layers=args.ve_layers, + gated_attention=args.gated_attention, + value_residual=args.value_residual, + ).to(device).bfloat16() + # Banks stay FP32 (like CastedLinear weights), cast to BF16 in forward + base_model.qo_bank.data = base_model.qo_bank.data.float() + base_model.kv_bank.data = base_model.kv_bank.data.float() + base_model.mlp_up_bank.data = base_model.mlp_up_bank.data.float() + base_model.mlp_down_bank.data = base_model.mlp_down_bank.data.float() + for module in base_model.modules(): + if isinstance(module, CastedLinear): + module.float() + restore_low_dim_params_to_fp32(base_model) + # No DDP -- Parallel Muon handles bank grad communication via reduce-scatter, + # and non-bank grads are manually all-reduced before Adam steps. + compiled_model = torch.compile(base_model, dynamic=False, fullgraph=True) + model = compiled_model + + # Optimizer split: + # - 4 parameter banks -> Muon (batched Newton-Schulz) + # - token embedding -> Adam + # - scalars/control tensors -> Adam + # - bigram proj, mtp heads, VE proj -> Adam (small matrix params not worth banking) + matrix_params = [ + base_model.qo_bank, base_model.kv_bank, + base_model.mlp_up_bank, base_model.mlp_down_bank, + ] + block_named_params = list(base_model.blocks.named_parameters()) + scalar_params = [ + p + for name, p in block_named_params + if p.ndim < 2 or any(pattern in name for pattern in CONTROL_TENSOR_NAME_PATTERNS) + ] + if base_model.skip_weights.numel() > 0: + scalar_params.append(base_model.skip_weights) + scalar_params.append(base_model.smear.gate) + if base_model.bigram is not None: + scalar_params.append(base_model.bigram.scale) + token_lr = args.tied_embed_lr if args.tie_embeddings else args.embed_lr + tok_params = [{"params": [base_model.tok_emb.weight], "lr": token_lr, "base_lr": token_lr}] + if base_model.bigram is not None: + tok_params.append({"params": [base_model.bigram.embed.weight], "lr": token_lr, "base_lr": token_lr}) + if base_model.bigram.proj is not None: + scalar_params.append(base_model.bigram.proj.weight) + if base_model.ve_shared is not None: + tok_params.append({"params": [base_model.ve_shared.embed.weight], "lr": token_lr, "base_lr": token_lr}) + if base_model.ve_shared.proj is not None: + scalar_params.append(base_model.ve_shared.proj.weight) + scalar_params.append(base_model.ve_shared.scale) + for s in base_model.ve_layer_scales: + scalar_params.append(s) + optimizer_tok = torch.optim.AdamW( + tok_params, + betas=(args.beta1, args.beta2), + eps=args.adam_eps, + weight_decay=args.adam_wd, + fused=True, + ) + optimizer_muon = Muon( + matrix_params, + lr=args.matrix_lr, + momentum=args.muon_momentum, + backend_steps=args.muon_backend_steps, + weight_decay=args.muon_wd, + ) + for group in optimizer_muon.param_groups: + group["base_lr"] = args.matrix_lr + optimizer_scalar = torch.optim.AdamW( + [{"params": scalar_params, "lr": args.scalar_lr, "base_lr": args.scalar_lr}], + betas=(args.beta1, args.beta2), + eps=args.adam_eps, + weight_decay=args.adam_wd, + fused=True, + ) + # Non-bank params that need manual all-reduce (replicated across GPUs) + replicated_params = list(optimizer_tok.param_groups[0]["params"]) + for pg in optimizer_tok.param_groups[1:]: + replicated_params.extend(pg["params"]) + replicated_params.extend(scalar_params) + + optimizer_head = None + if base_model.lm_head is not None: + optimizer_head = torch.optim.Adam( + [{"params": [base_model.lm_head.weight], "lr": args.head_lr, "base_lr": args.head_lr}], + betas=(args.beta1, args.beta2), + eps=args.adam_eps, + fused=True, + ) + replicated_params.append(base_model.lm_head.weight) + optimizers: list[torch.optim.Optimizer] = [optimizer_tok, optimizer_muon, optimizer_scalar] + if optimizer_head is not None: + optimizers.append(optimizer_head) + n_params = sum(p.numel() for p in base_model.parameters()) + mtp_params = sum(p.numel() for p in base_model.mtp_heads.parameters()) + log0(f"model_params:{n_params}") + log0(f"mtp_num_heads:{args.mtp_num_heads} mtp_loss_weight:{args.mtp_loss_weight} mtp_params:{mtp_params}") + xsa_layers = [i for i, b in enumerate(base_model.blocks) if b.attn.use_xsa] + log0(f"XSA:last_{args.xsa_last_n} active_layers:{xsa_layers}") + log0(f"world_size:{world_size} grad_accum_steps:{grad_accum_steps}") + log0("sdp_backends:cudnn=False flash=True mem_efficient=False math=False") + log0(f"attention_mode:gqa num_heads:{args.num_heads} num_kv_heads:{args.num_kv_heads}") + log0( + f"tie_embeddings:{args.tie_embeddings} embed_lr:{token_lr} " + f"head_lr:{args.head_lr if base_model.lm_head is not None else 0.0} " + f"matrix_lr:{args.matrix_lr} scalar_lr:{args.scalar_lr}" + ) + log0( + f"train_batch_tokens:{args.train_batch_tokens} train_seq_len:{args.train_seq_len} " + f"iterations:{args.iterations} warmup_steps:{args.warmup_steps} " + f"max_wallclock_seconds:{args.max_wallclock_seconds:.3f}" + ) + log0(f"seed:{args.seed}") + train_loader = DistributedTokenLoader(args.train_files, rank, world_size, device) + def zero_grad_all() -> None: + for opt in optimizers: + opt.zero_grad(set_to_none=True) + max_wallclock_ms = 1000.0 * args.max_wallclock_seconds if args.max_wallclock_seconds > 0 else None + def lr_mul(step: int, elapsed_ms: float) -> float: + if args.warmdown_iters <= 0: + return 1.0 + if max_wallclock_ms is None: + warmdown_start = max(args.iterations - args.warmdown_iters, 0) + return max((args.iterations - step) / max(args.warmdown_iters, 1), 0.0) if warmdown_start <= step < args.iterations else 1.0 + step_ms = elapsed_ms / max(step, 1) + warmdown_ms = args.warmdown_iters * step_ms + remaining_ms = max(max_wallclock_ms - elapsed_ms, 0.0) + return remaining_ms / max(warmdown_ms, 1e-9) if remaining_ms <= warmdown_ms else 1.0 + if args.warmup_steps > 0: + initial_model_state = {name: tensor.detach().cpu().clone() for name, tensor in base_model.state_dict().items()} + initial_optimizer_states = [copy.deepcopy(opt.state_dict()) for opt in optimizers] + model.train() + for warmup_step in range(args.warmup_steps): + zero_grad_all() + for micro_step in range(grad_accum_steps): + x, y = train_loader.next_batch(args.train_batch_tokens, args.train_seq_len, grad_accum_steps) + with torch.autocast(device_type="cuda", dtype=torch.bfloat16, enabled=True): + warmup_loss = model(x, y) + (warmup_loss * grad_scale).backward() + # All-reduce all grads for warmup (simple, not optimized) + if distributed: + for p in base_model.parameters(): + if p.grad is not None: + dist.all_reduce(p.grad, op=dist.ReduceOp.AVG) + for opt in optimizers: + opt.step() + zero_grad_all() + if args.warmup_steps <= 20 or (warmup_step + 1) % 10 == 0 or warmup_step + 1 == args.warmup_steps: + log0(f"warmup_step:{warmup_step + 1}/{args.warmup_steps}") + base_model.load_state_dict(initial_model_state, strict=True) + for opt, state in zip(optimizers, initial_optimizer_states, strict=True): + opt.load_state_dict(state) + zero_grad_all() + train_loader = DistributedTokenLoader(args.train_files, rank, world_size, device) + swa_state: dict[str, Tensor] | None = None + swa_count = 0 + from collections import deque + lawa_queue: deque[dict[str, Tensor]] = deque(maxlen=args.lawa_k) + ema_state = {name: t.detach().float().clone() for name, t in base_model.state_dict().items()} + ema_decay = 0.997 + training_time_ms = 0.0 + stop_after_step: int | None = None + torch.cuda.synchronize() + t0 = time.perf_counter() + step = 0 + while True: + last_step = step == args.iterations or (stop_after_step is not None and step >= stop_after_step) + should_validate = last_step or (args.val_loss_every > 0 and step % args.val_loss_every == 0) + if should_validate: + torch.cuda.synchronize() + training_time_ms += 1000.0 * (time.perf_counter() - t0) + val_loss, val_bpb = eval_val( + args, + model, + rank, + world_size, + device, + grad_accum_steps, + val_tokens, + base_bytes_lut, + has_leading_space_lut, + is_boundary_token_lut, + ) + log0( + f"step:{step}/{args.iterations} val_loss:{val_loss:.4f} val_bpb:{val_bpb:.4f} " + f"train_time:{training_time_ms:.0f}ms step_avg:{training_time_ms / max(step, 1):.2f}ms" + ) + torch.cuda.synchronize() + t0 = time.perf_counter() + if last_step: + if stop_after_step is not None and step < args.iterations: + log0( + f"stopping_early: wallclock_cap train_time:{training_time_ms:.0f}ms " + f"step:{step}/{args.iterations}" + ) + break + elapsed_ms = training_time_ms + 1000.0 * (time.perf_counter() - t0) + scale = lr_mul(step, elapsed_ms) + if args.late_qat_threshold > 0 and scale < args.late_qat_threshold and not CastedLinear._qat_enabled: + CastedLinear._qat_enabled = True + log0(f"late_qat:enabled step:{step} scale:{scale:.4f}") + zero_grad_all() + train_loss = torch.zeros((), device=device) + for micro_step in range(grad_accum_steps): + x, y = train_loader.next_batch(args.train_batch_tokens, args.train_seq_len, grad_accum_steps) + with torch.autocast(device_type="cuda", dtype=torch.bfloat16, enabled=True): + loss = model(x, y) + train_loss += loss.detach() + (loss * grad_scale).backward() + train_loss /= grad_accum_steps + frac = min(step / args.muon_momentum_warmup_steps, 1.0) if args.muon_momentum_warmup_steps > 0 else 1.0 + muon_momentum = (1 - frac) * args.muon_momentum_warmup_start + frac * args.muon_momentum + for group in optimizer_muon.param_groups: + group["momentum"] = muon_momentum + for opt in optimizers: + for group in opt.param_groups: + group["lr"] = group["base_lr"] * scale + if args.grad_clip_norm > 0: + torch.nn.utils.clip_grad_norm_(base_model.parameters(), args.grad_clip_norm) + # === 3-phase overlapped optimizer step === + # Phase 1: Launch async reduce-scatter for banks (biggest first) + optimizer_muon.launch_reduce_scatters() + # Phase 2: All-reduce non-bank grads + step Adam (while bank RS is in-flight) + if distributed: + for p in replicated_params: + if p.grad is not None: + dist.all_reduce(p.grad, op=dist.ReduceOp.AVG) + optimizer_tok.step() + optimizer_scalar.step() + if optimizer_head is not None: + optimizer_head.step() + # Phase 3: Wait for RS, local NS5, all-gather (banks processed last) + optimizer_muon.step() + zero_grad_all() + # EMA update + with torch.no_grad(): + for name, t in base_model.state_dict().items(): + ema_state[name].mul_(ema_decay).add_(t.detach().float(), alpha=1.0 - ema_decay) + step += 1 + approx_training_time_ms = training_time_ms + 1000.0 * (time.perf_counter() - t0) + if args.swa_enabled and scale < 0.2 and step % args.swa_every == 0: + if swa_state is None: + swa_state = {name: t.detach().cpu().clone() for name, t in base_model.state_dict().items()} + swa_count = 1 + log0(f"swa:start step:{step}") + else: + for name, t in base_model.state_dict().items(): + swa_state[name] += t.detach().cpu() + swa_count += 1 + if args.lawa_enabled and step % args.lawa_freq == 0: + lawa_queue.append({name: t.detach().cpu().clone() for name, t in base_model.state_dict().items()}) + should_log_train = ( + args.train_log_every > 0 + and (step <= 10 or step % args.train_log_every == 0 or stop_after_step is not None) + ) + if should_log_train: + log0( + f"step:{step}/{args.iterations} train_loss:{train_loss.item():.4f} " + f"train_time:{approx_training_time_ms:.0f}ms step_avg:{approx_training_time_ms / step:.2f}ms" + ) + reached_cap = max_wallclock_ms is not None and approx_training_time_ms >= max_wallclock_ms + if distributed and max_wallclock_ms is not None: + reached_cap_tensor = torch.tensor(int(reached_cap), device=device) + dist.all_reduce(reached_cap_tensor, op=dist.ReduceOp.MAX) + reached_cap = bool(reached_cap_tensor.item()) + if stop_after_step is None and reached_cap: + stop_after_step = step + log0( + f"peak memory allocated: {torch.cuda.max_memory_allocated() // 1024 // 1024} MiB " + f"reserved: {torch.cuda.max_memory_reserved() // 1024 // 1024} MiB" + ) + # Apply weight averaging + if args.lawa_enabled and len(lawa_queue) > 1: + log0(f"lawa:applying LAWA averaging k={len(lawa_queue)}") + current_state = base_model.state_dict() + avg_state = {name: torch.zeros(t.shape, dtype=torch.float32, device='cpu') for name, t in current_state.items()} + for snap in lawa_queue: + for name in avg_state: + avg_state[name] += snap[name].float() + for name in avg_state: + avg_state[name] /= len(lawa_queue) + avg_state[name] = avg_state[name].to(dtype=current_state[name].dtype) + base_model.load_state_dict(avg_state, strict=True) + else: + log0("ema:applying EMA weights") + current_state = base_model.state_dict() + avg_state = {name: t.to(dtype=current_state[name].dtype) for name, t in ema_state.items()} + base_model.load_state_dict(avg_state, strict=True) + torch.cuda.synchronize() + t_diag = time.perf_counter() + diag_val_loss, diag_val_bpb = eval_val( + args, compiled_model, rank, world_size, device, grad_accum_steps, + val_tokens, base_bytes_lut, has_leading_space_lut, is_boundary_token_lut, + ) + torch.cuda.synchronize() + log0( + f"DIAGNOSTIC post_ema val_loss:{diag_val_loss:.4f} val_bpb:{diag_val_bpb:.4f} " + f"eval_time:{1000.0 * (time.perf_counter() - t_diag):.0f}ms" + ) + full_state_dict = base_model.state_dict() + export_sd = {k: v for k, v in full_state_dict.items() if "mtp_heads" not in k} + excluded_mtp = sum(int(t.numel()) for k, t in full_state_dict.items() if "mtp_heads" in k) + if excluded_mtp > 0: + log0(f"export_excluding_mtp_params:{excluded_mtp}") + if master_process: + torch.save(export_sd, "final_model.pt") + model_bytes = os.path.getsize("final_model.pt") + code_bytes = len(code.encode("utf-8")) + log0(f"Serialized model: {model_bytes} bytes") + log0(f"Code size: {code_bytes} bytes") + # Unbank 3D tensors into individual 2D tensors for quantization + sd_cpu = {k: v.detach().cpu() for k, v in export_sd.items()} + unbanked_sd = _unbank_state_dict(sd_cpu, args.num_layers) + quant_result, quant_meta = mixed_quantize_int6(unbanked_sd, {"mlp", "attn"}) + quant_buf = io.BytesIO() + torch.save({"w": quant_result, "m": quant_meta}, quant_buf) + quant_raw = quant_buf.getvalue() + quant_blob = lzma.compress(quant_raw, preset=6) + if master_process: + with open("final_model.int6.ptz", "wb") as f: + f.write(quant_blob) + quant_file_bytes = len(quant_blob) + code_bytes = len(code.encode("utf-8")) + log0(f"Serialized model int6+lzma: {quant_file_bytes} bytes") + log0(f"Total submission size int6+lzma: {quant_file_bytes + code_bytes} bytes") + if distributed: + dist.barrier() + with open("final_model.int6.ptz", "rb") as f: + quant_blob_disk = f.read() + quant_state = torch.load( + io.BytesIO(lzma.decompress(quant_blob_disk)), + map_location="cpu", + ) + deq_unbanked = dequantize_mixed_int6(quant_state["w"], quant_state["m"], unbanked_sd) + # Re-bank the dequantized tensors + deq_state = _rebank_state_dict(deq_unbanked, args.num_layers, sd_cpu) + eval_model = GPT( + vocab_size=args.vocab_size, num_layers=args.num_layers, model_dim=args.model_dim, + num_heads=args.num_heads, num_kv_heads=args.num_kv_heads, mlp_mult=args.mlp_mult, + tie_embeddings=args.tie_embeddings, tied_embed_init_std=args.tied_embed_init_std, + logit_softcap=args.logit_softcap, rope_base=args.rope_base, qk_gain_init=args.qk_gain_init, + mtp_num_heads=0, mtp_loss_weight=0.0, + bigram_vocab_size=args.bigram_vocab_size, bigram_dim=args.bigram_dim, + xsa_last_n=args.xsa_last_n, + rope_dims=args.rope_dims, ln_scale=args.ln_scale, dtg=args.dtg_enabled, + ve_enabled=args.ve_enabled, ve_dim=args.ve_dim, ve_layers=args.ve_layers, + gated_attention=args.gated_attention, value_residual=args.value_residual, + ).to(device).bfloat16() + eval_model.qo_bank.data = eval_model.qo_bank.data.float() + eval_model.kv_bank.data = eval_model.kv_bank.data.float() + eval_model.mlp_up_bank.data = eval_model.mlp_up_bank.data.float() + eval_model.mlp_down_bank.data = eval_model.mlp_down_bank.data.float() + for m in eval_model.modules(): + if isinstance(m, CastedLinear): + m.float() + restore_low_dim_params_to_fp32(eval_model) + eval_model.load_state_dict(deq_state, strict=True) + compiled_eval = torch.compile(eval_model, dynamic=False, fullgraph=True) + torch.cuda.synchronize() + t_qeval = time.perf_counter() + q_val_loss, q_val_bpb = eval_val( + args, compiled_eval, rank, world_size, device, grad_accum_steps, + val_tokens, base_bytes_lut, has_leading_space_lut, is_boundary_token_lut, + eval_seq_len=effective_eval_seq_len, + ) + torch.cuda.synchronize() + log0( + f"final_int6_roundtrip val_loss:{q_val_loss:.4f} val_bpb:{q_val_bpb:.4f} " + f"eval_time:{1000.0 * (time.perf_counter() - t_qeval):.0f}ms" + ) + log0(f"final_int6_roundtrip_exact val_loss:{q_val_loss:.8f} val_bpb:{q_val_bpb:.8f}") + sw_seq_len = effective_eval_seq_len + if args.eval_stride > 0 and args.eval_stride < sw_seq_len: + torch.cuda.synchronize() + t_slide = time.perf_counter() + sw_val_loss, sw_val_bpb = eval_val_sliding( + args, eval_model, rank, world_size, device, + val_tokens, base_bytes_lut, has_leading_space_lut, is_boundary_token_lut, + stride=args.eval_stride, + eval_seq_len=sw_seq_len, + ) + torch.cuda.synchronize() + log0( + f"final_int6_sliding_window val_loss:{sw_val_loss:.4f} val_bpb:{sw_val_bpb:.4f} " + f"stride:{args.eval_stride} eval_time:{1000.0 * (time.perf_counter() - t_slide):.0f}ms" + ) + log0(f"final_int6_sliding_window_exact val_loss:{sw_val_loss:.8f} val_bpb:{sw_val_bpb:.8f}") + log0(f"final_int8_zlib_roundtrip_exact val_loss:{sw_val_loss:.8f} val_bpb:{sw_val_bpb:.8f}") + if args.eval_stride != 64 and 64 < sw_seq_len: + torch.cuda.synchronize() + t_slide64 = time.perf_counter() + sw64_val_loss, sw64_val_bpb = eval_val_sliding( + args, eval_model, rank, world_size, device, + val_tokens, base_bytes_lut, has_leading_space_lut, is_boundary_token_lut, + stride=64, + eval_seq_len=sw_seq_len, + ) + torch.cuda.synchronize() + log0( + f"final_int6_sliding_window_s64 val_loss:{sw64_val_loss:.4f} val_bpb:{sw64_val_bpb:.4f} " + f"stride:64 eval_time:{1000.0 * (time.perf_counter() - t_slide64):.0f}ms" + ) + log0(f"final_int6_sliding_window_s64_exact val_loss:{sw64_val_loss:.8f} val_bpb:{sw64_val_bpb:.8f}") + log0(f"final_int8_zlib_roundtrip_exact val_loss:{sw64_val_loss:.8f} val_bpb:{sw64_val_bpb:.8f}") + # Legal score-first TTT (PR #461 recipe) + if args.ttt_enabled: + torch.cuda.synchronize() + t_ttt = time.perf_counter() + ttt_loss, ttt_bpb = eval_val_sliding_ttt( + args, eval_model, rank, world_size, device, + val_tokens, base_bytes_lut, has_leading_space_lut, is_boundary_token_lut, + stride=args.eval_stride, log0=log0, + ) + torch.cuda.synchronize() + log0(f"legal_ttt val_loss:{ttt_loss:.4f} val_bpb:{ttt_bpb:.4f} " + f"eval_time:{1000.0 * (time.perf_counter() - t_ttt):.0f}ms") + log0(f"legal_ttt_exact val_loss:{ttt_loss:.8f} val_bpb:{ttt_bpb:.8f}") + if distributed: + dist.destroy_process_group() +if __name__ == "__main__": + main() diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed1337.log b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed1337.log new file mode 100644 index 000000000..3b38058fc --- /dev/null +++ b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed1337.log @@ -0,0 +1,274 @@ +W0324 20:10:12.314000 1253342 torch/distributed/run.py:803] +W0324 20:10:12.314000 1253342 torch/distributed/run.py:803] ***************************************** +W0324 20:10:12.314000 1253342 torch/distributed/run.py:803] Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. +W0324 20:10:12.314000 1253342 torch/distributed/run.py:803] ***************************************** +logs/2deb33c3-43db-45fb-89e4-8dbd17db625c.txt +val_bpb:enabled tokenizer_kind=sentencepiece tokenizer_path=/root/parameter-golf/data/tokenizers/fineweb_1024_bpe.model +train_loader:dataset:fineweb10B_sp1024 train_shards:80 +val_loader:shards pattern=/root/parameter-golf/data/datasets/fineweb10B_sp1024/fineweb_val_*.bin tokens:62021632 +model_params:26928220 +mtp_num_heads:0 mtp_loss_weight:0.2 mtp_params:0 +XSA:last_4 active_layers:[7, 8, 9, 10] +world_size:8 grad_accum_steps:1 +sdp_backends:cudnn=False flash=True mem_efficient=False math=False +attention_mode:gqa num_heads:8 num_kv_heads:4 +tie_embeddings:True embed_lr:0.035 head_lr:0.0 matrix_lr:0.025 scalar_lr:0.025 +train_batch_tokens:786432 train_seq_len:2048 iterations:9000 warmup_steps:20 max_wallclock_seconds:600.000 +seed:1337 +warmup_step:1/20 +warmup_step:2/20 +warmup_step:3/20 +warmup_step:4/20 +warmup_step:5/20 +warmup_step:6/20 +warmup_step:7/20 +warmup_step:8/20 +warmup_step:9/20 +warmup_step:10/20 +warmup_step:11/20 +warmup_step:12/20 +warmup_step:13/20 +warmup_step:14/20 +warmup_step:15/20 +warmup_step:16/20 +warmup_step:17/20 +warmup_step:18/20 +warmup_step:19/20 +warmup_step:20/20 +step:0/9000 val_loss:6.9304 val_bpb:4.1046 train_time:0ms step_avg:0.01ms +step:1/9000 train_loss:6.9264 train_time:132ms step_avg:131.98ms +step:2/9000 train_loss:8.8177 train_time:165ms step_avg:82.68ms +step:3/9000 train_loss:7.7214 train_time:245ms step_avg:81.62ms +step:4/9000 train_loss:7.1943 train_time:326ms step_avg:81.48ms +step:5/9000 train_loss:7.1247 train_time:408ms step_avg:81.54ms +step:6/9000 train_loss:7.1378 train_time:488ms step_avg:81.32ms +step:7/9000 train_loss:6.9932 train_time:569ms step_avg:81.35ms +step:8/9000 train_loss:6.7414 train_time:651ms step_avg:81.33ms +step:9/9000 train_loss:6.4210 train_time:732ms step_avg:81.35ms +step:10/9000 train_loss:6.0821 train_time:814ms step_avg:81.40ms +step:500/9000 train_loss:2.4840 train_time:41465ms step_avg:82.93ms +step:1000/9000 train_loss:2.1474 train_time:83007ms step_avg:83.01ms +step:1500/9000 train_loss:2.0896 train_time:124613ms step_avg:83.08ms +step:2000/9000 train_loss:2.1644 train_time:166294ms step_avg:83.15ms +step:2500/9000 train_loss:2.1610 train_time:208006ms step_avg:83.20ms +step:3000/9000 train_loss:2.0970 train_time:249706ms step_avg:83.24ms +step:3500/9000 train_loss:2.0984 train_time:291450ms step_avg:83.27ms +step:4000/9000 train_loss:2.0274 train_time:333183ms step_avg:83.30ms +step:4000/9000 val_loss:2.0556 val_bpb:1.2175 train_time:333235ms step_avg:83.31ms +step:4500/9000 train_loss:2.0624 train_time:374935ms step_avg:83.32ms +step:5000/9000 train_loss:1.8211 train_time:416688ms step_avg:83.34ms +step:5500/9000 train_loss:2.0250 train_time:458465ms step_avg:83.36ms +step:6000/9000 train_loss:2.0497 train_time:500250ms step_avg:83.37ms +step:6500/9000 train_loss:1.9153 train_time:542026ms step_avg:83.39ms +late_qat:enabled step:6670 scale:0.1499 +step:7000/9000 train_loss:2.0291 train_time:583785ms step_avg:83.40ms +step:7195/9000 val_loss:1.9196 val_bpb:1.1369 train_time:600112ms step_avg:83.41ms +stopping_early: wallclock_cap train_time:600112ms step:7195/9000 +peak memory allocated: 21481 MiB reserved: 22030 MiB +ema:applying EMA weights +DIAGNOSTIC post_ema val_loss:1.9180 val_bpb:1.1360 eval_time:1978ms +Serialized model: 106027446 bytes +Code size: 89809 bytes +Serialized model int6+lzma: 15831824 bytes +Total submission size int6+lzma: 15921633 bytes +final_int6_roundtrip val_loss:1.9316 val_bpb:1.1440 eval_time:22049ms +final_int6_roundtrip_exact val_loss:1.93155790 val_bpb:1.14397739 +final_int6_sliding_window val_loss:1.8919 val_bpb:1.1205 stride:64 eval_time:98912ms +final_int6_sliding_window_exact val_loss:1.89185957 val_bpb:1.12046876 +final_int8_zlib_roundtrip_exact val_loss:1.89185957 val_bpb:1.12046876 +ttt_sliding:start chunks=1893 chunk_tokens=32768 total_windows=969088 stride=64 ttt_lr=0.002 ttt_epochs=3 freeze_blocks=0 +ttt_sliding:params unfrozen=26928220 frozen=0 + ttt_chunk [1/1893] bpb=1.162981 time=0.5s + ttt_chunk [11/1893] bpb=1.148021 time=2.7s + ttt_chunk [21/1893] bpb=1.132087 time=5.1s + ttt_chunk [31/1893] bpb=1.128775 time=7.3s + ttt_chunk [41/1893] bpb=1.115220 time=9.5s + ttt_chunk [51/1893] bpb=1.109557 time=11.6s + ttt_chunk [61/1893] bpb=1.116249 time=13.8s + ttt_chunk [71/1893] bpb=1.114866 time=15.9s + ttt_chunk [81/1893] bpb=1.114203 time=18.1s + ttt_chunk [91/1893] bpb=1.115297 time=20.2s + ttt_chunk [101/1893] bpb=1.118902 time=22.4s + ttt_chunk [111/1893] bpb=1.121350 time=24.5s + ttt_chunk [121/1893] bpb=1.114600 time=26.7s + ttt_chunk [131/1893] bpb=1.114694 time=28.8s + ttt_chunk [141/1893] bpb=1.120270 time=31.0s + ttt_chunk [151/1893] bpb=1.122013 time=33.1s + ttt_chunk [161/1893] bpb=1.121814 time=35.3s + ttt_chunk [171/1893] bpb=1.126208 time=37.5s + ttt_chunk [181/1893] bpb=1.128397 time=39.7s + ttt_chunk [191/1893] bpb=1.135635 time=41.8s + ttt_chunk [201/1893] bpb=1.134489 time=44.0s + ttt_chunk [211/1893] bpb=1.132270 time=46.1s + ttt_chunk [221/1893] bpb=1.133773 time=48.3s + ttt_chunk [231/1893] bpb=1.132380 time=50.4s + ttt_chunk [241/1893] bpb=1.132653 time=52.6s + ttt_chunk [251/1893] bpb=1.132188 time=54.8s + ttt_chunk [261/1893] bpb=1.129318 time=56.9s + ttt_chunk [271/1893] bpb=1.128193 time=59.1s + ttt_chunk [281/1893] bpb=1.129463 time=61.3s + ttt_chunk [291/1893] bpb=1.131300 time=63.5s + ttt_chunk [301/1893] bpb=1.131989 time=65.6s + ttt_chunk [311/1893] bpb=1.134067 time=67.8s + ttt_chunk [321/1893] bpb=1.135989 time=69.9s + ttt_chunk [331/1893] bpb=1.135902 time=72.1s + ttt_chunk [341/1893] bpb=1.134929 time=74.2s + ttt_chunk [351/1893] bpb=1.137156 time=76.4s + ttt_chunk [361/1893] bpb=1.137347 time=78.5s + ttt_chunk [371/1893] bpb=1.136705 time=80.7s + ttt_chunk [381/1893] bpb=1.136789 time=82.8s + ttt_chunk [391/1893] bpb=1.136600 time=85.0s + ttt_chunk [401/1893] bpb=1.134563 time=87.1s + ttt_chunk [411/1893] bpb=1.133324 time=89.3s + ttt_chunk [421/1893] bpb=1.132381 time=91.4s + ttt_chunk [431/1893] bpb=1.132299 time=93.6s + ttt_chunk [441/1893] bpb=1.132706 time=95.7s + ttt_chunk [451/1893] bpb=1.133035 time=97.9s + ttt_chunk [461/1893] bpb=1.131912 time=100.0s + ttt_chunk [471/1893] bpb=1.132524 time=102.2s + ttt_chunk [481/1893] bpb=1.132124 time=104.3s + ttt_chunk [491/1893] bpb=1.130993 time=106.5s + ttt_chunk [501/1893] bpb=1.130534 time=108.6s + ttt_chunk [511/1893] bpb=1.129902 time=110.8s + ttt_chunk [521/1893] bpb=1.127568 time=112.9s + ttt_chunk [531/1893] bpb=1.128724 time=115.1s + ttt_chunk [541/1893] bpb=1.129041 time=117.2s + ttt_chunk [551/1893] bpb=1.128018 time=119.4s + ttt_chunk [561/1893] bpb=1.128512 time=121.5s + ttt_chunk [571/1893] bpb=1.127475 time=123.7s + ttt_chunk [581/1893] bpb=1.126636 time=125.8s + ttt_chunk [591/1893] bpb=1.126013 time=128.0s + ttt_chunk [601/1893] bpb=1.126492 time=130.2s + ttt_chunk [611/1893] bpb=1.126410 time=132.3s + ttt_chunk [621/1893] bpb=1.126244 time=134.5s + ttt_chunk [631/1893] bpb=1.126918 time=136.6s + ttt_chunk [641/1893] bpb=1.126650 time=138.8s + ttt_chunk [651/1893] bpb=1.126760 time=140.9s + ttt_chunk [661/1893] bpb=1.126216 time=143.1s + ttt_chunk [671/1893] bpb=1.126547 time=145.3s + ttt_chunk [681/1893] bpb=1.127231 time=147.4s + ttt_chunk [691/1893] bpb=1.128241 time=149.6s + ttt_chunk [701/1893] bpb=1.127681 time=151.7s + ttt_chunk [711/1893] bpb=1.127668 time=153.8s + ttt_chunk [721/1893] bpb=1.127303 time=156.0s + ttt_chunk [731/1893] bpb=1.127334 time=158.1s + ttt_chunk [741/1893] bpb=1.127453 time=160.3s + ttt_chunk [751/1893] bpb=1.127291 time=162.4s + ttt_chunk [761/1893] bpb=1.127207 time=164.6s + ttt_chunk [771/1893] bpb=1.126891 time=166.7s + ttt_chunk [781/1893] bpb=1.127609 time=168.9s + ttt_chunk [791/1893] bpb=1.127197 time=171.1s + ttt_chunk [801/1893] bpb=1.127486 time=173.3s + ttt_chunk [811/1893] bpb=1.127240 time=175.4s + ttt_chunk [821/1893] bpb=1.126965 time=177.6s + ttt_chunk [831/1893] bpb=1.126781 time=179.7s + ttt_chunk [841/1893] bpb=1.126163 time=181.9s + ttt_chunk [851/1893] bpb=1.125912 time=184.0s + ttt_chunk [861/1893] bpb=1.125648 time=186.2s + ttt_chunk [871/1893] bpb=1.125906 time=188.3s + ttt_chunk [881/1893] bpb=1.126108 time=190.5s + ttt_chunk [891/1893] bpb=1.125680 time=192.7s + ttt_chunk [901/1893] bpb=1.125401 time=194.8s + ttt_chunk [911/1893] bpb=1.125545 time=196.9s + ttt_chunk [921/1893] bpb=1.126070 time=199.1s + ttt_chunk [931/1893] bpb=1.126030 time=201.2s + ttt_chunk [941/1893] bpb=1.125718 time=203.4s + ttt_chunk [951/1893] bpb=1.126111 time=205.5s + ttt_chunk [961/1893] bpb=1.126174 time=207.7s + ttt_chunk [971/1893] bpb=1.127026 time=209.8s + ttt_chunk [981/1893] bpb=1.127113 time=212.0s + ttt_chunk [991/1893] bpb=1.127117 time=214.2s + ttt_chunk [1001/1893] bpb=1.127072 time=216.4s + ttt_chunk [1011/1893] bpb=1.126873 time=218.5s + ttt_chunk [1021/1893] bpb=1.127214 time=220.7s + ttt_chunk [1031/1893] bpb=1.127647 time=222.8s + ttt_chunk [1041/1893] bpb=1.127328 time=225.0s + ttt_chunk [1051/1893] bpb=1.127086 time=227.1s + ttt_chunk [1061/1893] bpb=1.127134 time=229.3s + ttt_chunk [1071/1893] bpb=1.127755 time=231.4s + ttt_chunk [1081/1893] bpb=1.128031 time=233.7s + ttt_chunk [1091/1893] bpb=1.128753 time=235.8s + ttt_chunk [1101/1893] bpb=1.128782 time=238.0s + ttt_chunk [1111/1893] bpb=1.128609 time=240.1s + ttt_chunk [1121/1893] bpb=1.128396 time=242.3s + ttt_chunk [1131/1893] bpb=1.128244 time=244.4s + ttt_chunk [1141/1893] bpb=1.127935 time=246.6s + ttt_chunk [1151/1893] bpb=1.127963 time=248.7s + ttt_chunk [1161/1893] bpb=1.127559 time=250.9s + ttt_chunk [1171/1893] bpb=1.127879 time=253.0s + ttt_chunk [1181/1893] bpb=1.127143 time=255.2s + ttt_chunk [1191/1893] bpb=1.127006 time=257.4s + ttt_chunk [1201/1893] bpb=1.127412 time=259.5s + ttt_chunk [1211/1893] bpb=1.126930 time=261.6s + ttt_chunk [1221/1893] bpb=1.126629 time=263.8s + ttt_chunk [1231/1893] bpb=1.126350 time=265.9s + ttt_chunk [1241/1893] bpb=1.125994 time=268.1s + ttt_chunk [1251/1893] bpb=1.125407 time=270.2s + ttt_chunk [1261/1893] bpb=1.125365 time=272.4s + ttt_chunk [1271/1893] bpb=1.124985 time=274.5s + ttt_chunk [1281/1893] bpb=1.124791 time=276.7s + ttt_chunk [1291/1893] bpb=1.124577 time=278.8s + ttt_chunk [1301/1893] bpb=1.123981 time=281.0s + ttt_chunk [1311/1893] bpb=1.123576 time=283.2s + ttt_chunk [1321/1893] bpb=1.123246 time=285.3s + ttt_chunk [1331/1893] bpb=1.123183 time=287.5s + ttt_chunk [1341/1893] bpb=1.123055 time=289.6s + ttt_chunk [1351/1893] bpb=1.122982 time=291.8s + ttt_chunk [1361/1893] bpb=1.123022 time=293.9s + ttt_chunk [1371/1893] bpb=1.122898 time=296.1s + ttt_chunk [1381/1893] bpb=1.122892 time=298.2s + ttt_chunk [1391/1893] bpb=1.122489 time=300.4s + ttt_chunk [1401/1893] bpb=1.122447 time=302.5s + ttt_chunk [1411/1893] bpb=1.122570 time=304.7s + ttt_chunk [1421/1893] bpb=1.122816 time=306.8s + ttt_chunk [1431/1893] bpb=1.122529 time=309.0s + ttt_chunk [1441/1893] bpb=1.123056 time=311.1s + ttt_chunk [1451/1893] bpb=1.123378 time=313.3s + ttt_chunk [1461/1893] bpb=1.122916 time=315.4s + ttt_chunk [1471/1893] bpb=1.123965 time=317.6s + ttt_chunk [1481/1893] bpb=1.123523 time=319.7s + ttt_chunk [1491/1893] bpb=1.123343 time=321.9s + ttt_chunk [1501/1893] bpb=1.123283 time=324.0s + ttt_chunk [1511/1893] bpb=1.123321 time=326.2s + ttt_chunk [1521/1893] bpb=1.123348 time=328.3s + ttt_chunk [1531/1893] bpb=1.122844 time=330.5s + ttt_chunk [1541/1893] bpb=1.122716 time=332.7s + ttt_chunk [1551/1893] bpb=1.123025 time=334.8s + ttt_chunk [1561/1893] bpb=1.123029 time=337.0s + ttt_chunk [1571/1893] bpb=1.122872 time=339.2s + ttt_chunk [1581/1893] bpb=1.122999 time=341.3s + ttt_chunk [1591/1893] bpb=1.122862 time=343.5s + ttt_chunk [1601/1893] bpb=1.123021 time=345.6s + ttt_chunk [1611/1893] bpb=1.122978 time=347.8s + ttt_chunk [1621/1893] bpb=1.122584 time=350.0s + ttt_chunk [1631/1893] bpb=1.122893 time=352.1s + ttt_chunk [1641/1893] bpb=1.122895 time=354.3s + ttt_chunk [1651/1893] bpb=1.122854 time=356.5s + ttt_chunk [1661/1893] bpb=1.122729 time=358.6s + ttt_chunk [1671/1893] bpb=1.123190 time=360.8s + ttt_chunk [1681/1893] bpb=1.123321 time=363.0s + ttt_chunk [1691/1893] bpb=1.123160 time=365.1s + ttt_chunk [1701/1893] bpb=1.123320 time=367.3s + ttt_chunk [1711/1893] bpb=1.123311 time=369.4s + ttt_chunk [1721/1893] bpb=1.123315 time=371.6s + ttt_chunk [1731/1893] bpb=1.123204 time=373.8s + ttt_chunk [1741/1893] bpb=1.123010 time=375.9s + ttt_chunk [1751/1893] bpb=1.122851 time=378.0s + ttt_chunk [1761/1893] bpb=1.122998 time=380.2s + ttt_chunk [1771/1893] bpb=1.122902 time=382.3s + ttt_chunk [1781/1893] bpb=1.122919 time=384.5s + ttt_chunk [1791/1893] bpb=1.122508 time=386.7s + ttt_chunk [1801/1893] bpb=1.122391 time=388.9s + ttt_chunk [1811/1893] bpb=1.122280 time=391.0s + ttt_chunk [1821/1893] bpb=1.122330 time=393.2s + ttt_chunk [1831/1893] bpb=1.121729 time=395.3s + ttt_chunk [1841/1893] bpb=1.121717 time=397.5s + ttt_chunk [1851/1893] bpb=1.121490 time=399.6s + ttt_chunk [1861/1893] bpb=1.121112 time=401.8s + ttt_chunk [1871/1893] bpb=1.121104 time=404.0s + ttt_chunk [1881/1893] bpb=1.120652 time=406.1s + ttt_chunk [1891/1893] bpb=1.120421 time=408.2s + ttt_chunk [1893/1893] bpb=1.120469 time=408.5s +ttt_sliding:done val_loss=1.888241 val_bpb=1.118325 elapsed=408.5s +legal_ttt val_loss:1.8882 val_bpb:1.1183 eval_time:409052ms +legal_ttt_exact val_loss:1.88824070 val_bpb:1.11832546 diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed2025.log b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed2025.log new file mode 100644 index 000000000..ddf59e612 --- /dev/null +++ b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed2025.log @@ -0,0 +1,274 @@ +W0324 21:19:57.797000 1313866 torch/distributed/run.py:803] +W0324 21:19:57.797000 1313866 torch/distributed/run.py:803] ***************************************** +W0324 21:19:57.797000 1313866 torch/distributed/run.py:803] Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. +W0324 21:19:57.797000 1313866 torch/distributed/run.py:803] ***************************************** +logs/cc7b30f2-8cf7-4f77-b218-bc13978b9096.txt +val_bpb:enabled tokenizer_kind=sentencepiece tokenizer_path=/root/parameter-golf/data/tokenizers/fineweb_1024_bpe.model +train_loader:dataset:fineweb10B_sp1024 train_shards:80 +val_loader:shards pattern=/root/parameter-golf/data/datasets/fineweb10B_sp1024/fineweb_val_*.bin tokens:62021632 +model_params:26928220 +mtp_num_heads:0 mtp_loss_weight:0.2 mtp_params:0 +XSA:last_4 active_layers:[7, 8, 9, 10] +world_size:8 grad_accum_steps:1 +sdp_backends:cudnn=False flash=True mem_efficient=False math=False +attention_mode:gqa num_heads:8 num_kv_heads:4 +tie_embeddings:True embed_lr:0.035 head_lr:0.0 matrix_lr:0.025 scalar_lr:0.025 +train_batch_tokens:786432 train_seq_len:2048 iterations:9000 warmup_steps:20 max_wallclock_seconds:600.000 +seed:2025 +warmup_step:1/20 +warmup_step:2/20 +warmup_step:3/20 +warmup_step:4/20 +warmup_step:5/20 +warmup_step:6/20 +warmup_step:7/20 +warmup_step:8/20 +warmup_step:9/20 +warmup_step:10/20 +warmup_step:11/20 +warmup_step:12/20 +warmup_step:13/20 +warmup_step:14/20 +warmup_step:15/20 +warmup_step:16/20 +warmup_step:17/20 +warmup_step:18/20 +warmup_step:19/20 +warmup_step:20/20 +step:0/9000 val_loss:6.9302 val_bpb:4.1045 train_time:0ms step_avg:0.01ms +step:1/9000 train_loss:6.9280 train_time:132ms step_avg:132.18ms +step:2/9000 train_loss:8.7983 train_time:166ms step_avg:82.75ms +step:3/9000 train_loss:7.7372 train_time:246ms step_avg:81.84ms +step:4/9000 train_loss:7.1693 train_time:326ms step_avg:81.61ms +step:5/9000 train_loss:7.1119 train_time:408ms step_avg:81.55ms +step:6/9000 train_loss:7.1429 train_time:489ms step_avg:81.54ms +step:7/9000 train_loss:7.0873 train_time:570ms step_avg:81.41ms +step:8/9000 train_loss:6.8751 train_time:651ms step_avg:81.35ms +step:9/9000 train_loss:6.6003 train_time:732ms step_avg:81.29ms +step:10/9000 train_loss:6.1227 train_time:813ms step_avg:81.26ms +step:500/9000 train_loss:2.4900 train_time:41439ms step_avg:82.88ms +step:1000/9000 train_loss:2.1465 train_time:83004ms step_avg:83.00ms +step:1500/9000 train_loss:2.0956 train_time:124625ms step_avg:83.08ms +step:2000/9000 train_loss:2.1653 train_time:166306ms step_avg:83.15ms +step:2500/9000 train_loss:2.1629 train_time:208026ms step_avg:83.21ms +step:3000/9000 train_loss:2.1039 train_time:249755ms step_avg:83.25ms +step:3500/9000 train_loss:2.0966 train_time:291501ms step_avg:83.29ms +step:4000/9000 train_loss:2.0265 train_time:333250ms step_avg:83.31ms +step:4000/9000 val_loss:2.0578 val_bpb:1.2187 train_time:333302ms step_avg:83.33ms +step:4500/9000 train_loss:2.0625 train_time:375045ms step_avg:83.34ms +step:5000/9000 train_loss:1.8216 train_time:416835ms step_avg:83.37ms +step:5500/9000 train_loss:2.0275 train_time:458619ms step_avg:83.39ms +step:6000/9000 train_loss:2.0530 train_time:500383ms step_avg:83.40ms +step:6500/9000 train_loss:1.9192 train_time:542134ms step_avg:83.41ms +late_qat:enabled step:6669 scale:0.1497 +step:7000/9000 train_loss:2.0318 train_time:583889ms step_avg:83.41ms +step:7194/9000 val_loss:1.9219 val_bpb:1.1383 train_time:600115ms step_avg:83.42ms +stopping_early: wallclock_cap train_time:600115ms step:7194/9000 +peak memory allocated: 21471 MiB reserved: 22002 MiB +ema:applying EMA weights +DIAGNOSTIC post_ema val_loss:1.9203 val_bpb:1.1373 eval_time:1975ms +Serialized model: 106027446 bytes +Code size: 89809 bytes +Serialized model int6+lzma: 15880516 bytes +Total submission size int6+lzma: 15970325 bytes +final_int6_roundtrip val_loss:1.9349 val_bpb:1.1460 eval_time:6619ms +final_int6_roundtrip_exact val_loss:1.93490970 val_bpb:1.14596251 +final_int6_sliding_window val_loss:1.8953 val_bpb:1.1225 stride:64 eval_time:74022ms +final_int6_sliding_window_exact val_loss:1.89529538 val_bpb:1.12250365 +final_int8_zlib_roundtrip_exact val_loss:1.89529538 val_bpb:1.12250365 +ttt_sliding:start chunks=1893 chunk_tokens=32768 total_windows=969088 stride=64 ttt_lr=0.002 ttt_epochs=3 freeze_blocks=0 +ttt_sliding:params unfrozen=26928220 frozen=0 + ttt_chunk [1/1893] bpb=1.162623 time=0.5s + ttt_chunk [11/1893] bpb=1.146131 time=2.7s + ttt_chunk [21/1893] bpb=1.131947 time=4.8s + ttt_chunk [31/1893] bpb=1.129787 time=7.0s + ttt_chunk [41/1893] bpb=1.116419 time=9.2s + ttt_chunk [51/1893] bpb=1.111008 time=11.4s + ttt_chunk [61/1893] bpb=1.117512 time=13.5s + ttt_chunk [71/1893] bpb=1.116276 time=15.6s + ttt_chunk [81/1893] bpb=1.115497 time=17.8s + ttt_chunk [91/1893] bpb=1.116473 time=19.9s + ttt_chunk [101/1893] bpb=1.119998 time=22.1s + ttt_chunk [111/1893] bpb=1.122334 time=24.2s + ttt_chunk [121/1893] bpb=1.115526 time=26.4s + ttt_chunk [131/1893] bpb=1.115686 time=28.5s + ttt_chunk [141/1893] bpb=1.121439 time=30.7s + ttt_chunk [151/1893] bpb=1.123363 time=32.9s + ttt_chunk [161/1893] bpb=1.122936 time=35.0s + ttt_chunk [171/1893] bpb=1.127397 time=37.2s + ttt_chunk [181/1893] bpb=1.129649 time=39.3s + ttt_chunk [191/1893] bpb=1.136821 time=41.5s + ttt_chunk [201/1893] bpb=1.135611 time=43.6s + ttt_chunk [211/1893] bpb=1.133546 time=45.7s + ttt_chunk [221/1893] bpb=1.135094 time=47.9s + ttt_chunk [231/1893] bpb=1.133777 time=50.0s + ttt_chunk [241/1893] bpb=1.134178 time=52.2s + ttt_chunk [251/1893] bpb=1.133748 time=54.3s + ttt_chunk [261/1893] bpb=1.130819 time=56.5s + ttt_chunk [271/1893] bpb=1.129682 time=58.6s + ttt_chunk [281/1893] bpb=1.131010 time=60.7s + ttt_chunk [291/1893] bpb=1.132818 time=62.9s + ttt_chunk [301/1893] bpb=1.133620 time=65.0s + ttt_chunk [311/1893] bpb=1.135688 time=67.2s + ttt_chunk [321/1893] bpb=1.137550 time=69.4s + ttt_chunk [331/1893] bpb=1.137411 time=71.6s + ttt_chunk [341/1893] bpb=1.136405 time=73.7s + ttt_chunk [351/1893] bpb=1.138640 time=75.9s + ttt_chunk [361/1893] bpb=1.138773 time=78.0s + ttt_chunk [371/1893] bpb=1.138135 time=80.1s + ttt_chunk [381/1893] bpb=1.138267 time=82.3s + ttt_chunk [391/1893] bpb=1.138053 time=84.4s + ttt_chunk [401/1893] bpb=1.136037 time=86.6s + ttt_chunk [411/1893] bpb=1.134861 time=88.8s + ttt_chunk [421/1893] bpb=1.133936 time=90.9s + ttt_chunk [431/1893] bpb=1.133824 time=93.1s + ttt_chunk [441/1893] bpb=1.134150 time=95.2s + ttt_chunk [451/1893] bpb=1.134485 time=97.4s + ttt_chunk [461/1893] bpb=1.133319 time=99.5s + ttt_chunk [471/1893] bpb=1.133905 time=101.7s + ttt_chunk [481/1893] bpb=1.133548 time=103.8s + ttt_chunk [491/1893] bpb=1.132471 time=106.0s + ttt_chunk [501/1893] bpb=1.132006 time=108.1s + ttt_chunk [511/1893] bpb=1.131351 time=110.3s + ttt_chunk [521/1893] bpb=1.129003 time=112.4s + ttt_chunk [531/1893] bpb=1.130162 time=114.6s + ttt_chunk [541/1893] bpb=1.130500 time=116.7s + ttt_chunk [551/1893] bpb=1.129444 time=118.9s + ttt_chunk [561/1893] bpb=1.129962 time=121.1s + ttt_chunk [571/1893] bpb=1.128947 time=123.2s + ttt_chunk [581/1893] bpb=1.128150 time=125.4s + ttt_chunk [591/1893] bpb=1.127518 time=127.5s + ttt_chunk [601/1893] bpb=1.128010 time=129.7s + ttt_chunk [611/1893] bpb=1.127948 time=131.8s + ttt_chunk [621/1893] bpb=1.127793 time=134.0s + ttt_chunk [631/1893] bpb=1.128504 time=136.2s + ttt_chunk [641/1893] bpb=1.128261 time=138.3s + ttt_chunk [651/1893] bpb=1.128380 time=140.5s + ttt_chunk [661/1893] bpb=1.127848 time=142.7s + ttt_chunk [671/1893] bpb=1.128180 time=144.9s + ttt_chunk [681/1893] bpb=1.128887 time=147.0s + ttt_chunk [691/1893] bpb=1.129887 time=149.1s + ttt_chunk [701/1893] bpb=1.129351 time=151.3s + ttt_chunk [711/1893] bpb=1.129347 time=153.5s + ttt_chunk [721/1893] bpb=1.128988 time=155.6s + ttt_chunk [731/1893] bpb=1.129027 time=157.8s + ttt_chunk [741/1893] bpb=1.129088 time=159.9s + ttt_chunk [751/1893] bpb=1.128932 time=162.1s + ttt_chunk [761/1893] bpb=1.128847 time=164.2s + ttt_chunk [771/1893] bpb=1.128511 time=166.4s + ttt_chunk [781/1893] bpb=1.129256 time=168.5s + ttt_chunk [791/1893] bpb=1.128815 time=170.6s + ttt_chunk [801/1893] bpb=1.129126 time=172.8s + ttt_chunk [811/1893] bpb=1.128871 time=175.0s + ttt_chunk [821/1893] bpb=1.128645 time=177.1s + ttt_chunk [831/1893] bpb=1.128451 time=179.2s + ttt_chunk [841/1893] bpb=1.127800 time=181.4s + ttt_chunk [851/1893] bpb=1.127564 time=183.6s + ttt_chunk [861/1893] bpb=1.127312 time=185.7s + ttt_chunk [871/1893] bpb=1.127560 time=187.8s + ttt_chunk [881/1893] bpb=1.127743 time=190.0s + ttt_chunk [891/1893] bpb=1.127273 time=192.1s + ttt_chunk [901/1893] bpb=1.127001 time=194.3s + ttt_chunk [911/1893] bpb=1.127123 time=196.4s + ttt_chunk [921/1893] bpb=1.127603 time=198.6s + ttt_chunk [931/1893] bpb=1.127588 time=200.7s + ttt_chunk [941/1893] bpb=1.127271 time=202.9s + ttt_chunk [951/1893] bpb=1.127637 time=205.0s + ttt_chunk [961/1893] bpb=1.127711 time=207.2s + ttt_chunk [971/1893] bpb=1.128594 time=209.3s + ttt_chunk [981/1893] bpb=1.128663 time=211.5s + ttt_chunk [991/1893] bpb=1.128680 time=213.6s + ttt_chunk [1001/1893] bpb=1.128636 time=215.8s + ttt_chunk [1011/1893] bpb=1.128442 time=217.9s + ttt_chunk [1021/1893] bpb=1.128792 time=220.0s + ttt_chunk [1031/1893] bpb=1.129244 time=222.2s + ttt_chunk [1041/1893] bpb=1.128909 time=224.4s + ttt_chunk [1051/1893] bpb=1.128668 time=226.5s + ttt_chunk [1061/1893] bpb=1.128704 time=228.7s + ttt_chunk [1071/1893] bpb=1.129302 time=230.8s + ttt_chunk [1081/1893] bpb=1.129582 time=232.9s + ttt_chunk [1091/1893] bpb=1.130313 time=235.1s + ttt_chunk [1101/1893] bpb=1.130321 time=237.2s + ttt_chunk [1111/1893] bpb=1.130181 time=239.4s + ttt_chunk [1121/1893] bpb=1.129982 time=241.5s + ttt_chunk [1131/1893] bpb=1.129861 time=243.7s + ttt_chunk [1141/1893] bpb=1.129537 time=245.8s + ttt_chunk [1151/1893] bpb=1.129548 time=248.0s + ttt_chunk [1161/1893] bpb=1.129172 time=250.1s + ttt_chunk [1171/1893] bpb=1.129488 time=252.3s + ttt_chunk [1181/1893] bpb=1.128743 time=254.4s + ttt_chunk [1191/1893] bpb=1.128624 time=256.6s + ttt_chunk [1201/1893] bpb=1.129044 time=258.7s + ttt_chunk [1211/1893] bpb=1.128564 time=260.9s + ttt_chunk [1221/1893] bpb=1.128253 time=263.0s + ttt_chunk [1231/1893] bpb=1.127961 time=265.2s + ttt_chunk [1241/1893] bpb=1.127609 time=267.3s + ttt_chunk [1251/1893] bpb=1.127018 time=269.5s + ttt_chunk [1261/1893] bpb=1.126982 time=271.6s + ttt_chunk [1271/1893] bpb=1.126602 time=273.8s + ttt_chunk [1281/1893] bpb=1.126396 time=275.9s + ttt_chunk [1291/1893] bpb=1.126157 time=278.1s + ttt_chunk [1301/1893] bpb=1.125562 time=280.2s + ttt_chunk [1311/1893] bpb=1.125149 time=282.4s + ttt_chunk [1321/1893] bpb=1.124805 time=284.5s + ttt_chunk [1331/1893] bpb=1.124742 time=286.6s + ttt_chunk [1341/1893] bpb=1.124626 time=288.8s + ttt_chunk [1351/1893] bpb=1.124542 time=290.9s + ttt_chunk [1361/1893] bpb=1.124602 time=293.1s + ttt_chunk [1371/1893] bpb=1.124468 time=295.2s + ttt_chunk [1381/1893] bpb=1.124447 time=297.4s + ttt_chunk [1391/1893] bpb=1.124054 time=299.5s + ttt_chunk [1401/1893] bpb=1.124023 time=301.7s + ttt_chunk [1411/1893] bpb=1.124128 time=303.8s + ttt_chunk [1421/1893] bpb=1.124384 time=305.9s + ttt_chunk [1431/1893] bpb=1.124099 time=308.1s + ttt_chunk [1441/1893] bpb=1.124622 time=310.2s + ttt_chunk [1451/1893] bpb=1.124956 time=312.4s + ttt_chunk [1461/1893] bpb=1.124504 time=314.5s + ttt_chunk [1471/1893] bpb=1.125569 time=316.7s + ttt_chunk [1481/1893] bpb=1.125113 time=318.8s + ttt_chunk [1491/1893] bpb=1.124939 time=321.0s + ttt_chunk [1501/1893] bpb=1.124847 time=323.1s + ttt_chunk [1511/1893] bpb=1.124865 time=325.2s + ttt_chunk [1521/1893] bpb=1.124892 time=327.4s + ttt_chunk [1531/1893] bpb=1.124363 time=329.6s + ttt_chunk [1541/1893] bpb=1.124226 time=331.7s + ttt_chunk [1551/1893] bpb=1.124558 time=333.9s + ttt_chunk [1561/1893] bpb=1.124557 time=336.0s + ttt_chunk [1571/1893] bpb=1.124399 time=338.2s + ttt_chunk [1581/1893] bpb=1.124531 time=340.3s + ttt_chunk [1591/1893] bpb=1.124378 time=342.5s + ttt_chunk [1601/1893] bpb=1.124554 time=344.7s + ttt_chunk [1611/1893] bpb=1.124495 time=346.8s + ttt_chunk [1621/1893] bpb=1.124095 time=349.0s + ttt_chunk [1631/1893] bpb=1.124408 time=351.1s + ttt_chunk [1641/1893] bpb=1.124407 time=353.3s + ttt_chunk [1651/1893] bpb=1.124360 time=355.4s + ttt_chunk [1661/1893] bpb=1.124238 time=357.6s + ttt_chunk [1671/1893] bpb=1.124706 time=359.7s + ttt_chunk [1681/1893] bpb=1.124844 time=361.9s + ttt_chunk [1691/1893] bpb=1.124671 time=364.0s + ttt_chunk [1701/1893] bpb=1.124837 time=366.1s + ttt_chunk [1711/1893] bpb=1.124833 time=368.3s + ttt_chunk [1721/1893] bpb=1.124840 time=370.4s + ttt_chunk [1731/1893] bpb=1.124727 time=372.6s + ttt_chunk [1741/1893] bpb=1.124535 time=374.8s + ttt_chunk [1751/1893] bpb=1.124374 time=377.0s + ttt_chunk [1761/1893] bpb=1.124520 time=379.1s + ttt_chunk [1771/1893] bpb=1.124416 time=381.3s + ttt_chunk [1781/1893] bpb=1.124427 time=383.4s + ttt_chunk [1791/1893] bpb=1.124024 time=385.6s + ttt_chunk [1801/1893] bpb=1.123904 time=387.7s + ttt_chunk [1811/1893] bpb=1.123815 time=389.8s + ttt_chunk [1821/1893] bpb=1.123870 time=392.0s + ttt_chunk [1831/1893] bpb=1.123270 time=394.1s + ttt_chunk [1841/1893] bpb=1.123264 time=396.3s + ttt_chunk [1851/1893] bpb=1.123045 time=398.4s + ttt_chunk [1861/1893] bpb=1.122678 time=400.6s + ttt_chunk [1871/1893] bpb=1.122670 time=402.7s + ttt_chunk [1881/1893] bpb=1.122211 time=404.9s + ttt_chunk [1891/1893] bpb=1.121972 time=407.0s + ttt_chunk [1893/1893] bpb=1.122013 time=407.3s +ttt_sliding:done val_loss=1.890743 val_bpb=1.119807 elapsed=407.3s +legal_ttt val_loss:1.8907 val_bpb:1.1198 eval_time:407831ms +legal_ttt_exact val_loss:1.89074262 val_bpb:1.11980725 diff --git a/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed42.log b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed42.log new file mode 100644 index 000000000..b6b0018f2 --- /dev/null +++ b/records/track_non_record_16mb/2026-03-24_ShardOrdering_CaseStudy/train_seed42.log @@ -0,0 +1,274 @@ +W0324 20:58:55.535000 1311836 torch/distributed/run.py:803] +W0324 20:58:55.535000 1311836 torch/distributed/run.py:803] ***************************************** +W0324 20:58:55.535000 1311836 torch/distributed/run.py:803] Setting OMP_NUM_THREADS environment variable for each process to be 1 in default, to avoid your system being overloaded, please further tune the variable for optimal performance in your application as needed. +W0324 20:58:55.535000 1311836 torch/distributed/run.py:803] ***************************************** +logs/60bce2e6-2d55-4440-8d79-803ceaddd3d6.txt +val_bpb:enabled tokenizer_kind=sentencepiece tokenizer_path=/root/parameter-golf/data/tokenizers/fineweb_1024_bpe.model +train_loader:dataset:fineweb10B_sp1024 train_shards:80 +val_loader:shards pattern=/root/parameter-golf/data/datasets/fineweb10B_sp1024/fineweb_val_*.bin tokens:62021632 +model_params:26928220 +mtp_num_heads:0 mtp_loss_weight:0.2 mtp_params:0 +XSA:last_4 active_layers:[7, 8, 9, 10] +world_size:8 grad_accum_steps:1 +sdp_backends:cudnn=False flash=True mem_efficient=False math=False +attention_mode:gqa num_heads:8 num_kv_heads:4 +tie_embeddings:True embed_lr:0.035 head_lr:0.0 matrix_lr:0.025 scalar_lr:0.025 +train_batch_tokens:786432 train_seq_len:2048 iterations:9000 warmup_steps:20 max_wallclock_seconds:600.000 +seed:42 +warmup_step:1/20 +warmup_step:2/20 +warmup_step:3/20 +warmup_step:4/20 +warmup_step:5/20 +warmup_step:6/20 +warmup_step:7/20 +warmup_step:8/20 +warmup_step:9/20 +warmup_step:10/20 +warmup_step:11/20 +warmup_step:12/20 +warmup_step:13/20 +warmup_step:14/20 +warmup_step:15/20 +warmup_step:16/20 +warmup_step:17/20 +warmup_step:18/20 +warmup_step:19/20 +warmup_step:20/20 +step:0/9000 val_loss:6.9293 val_bpb:4.1039 train_time:0ms step_avg:0.01ms +step:1/9000 train_loss:6.9265 train_time:133ms step_avg:132.66ms +step:2/9000 train_loss:8.7813 train_time:166ms step_avg:83.01ms +step:3/9000 train_loss:7.6982 train_time:246ms step_avg:81.87ms +step:4/9000 train_loss:7.1949 train_time:327ms step_avg:81.70ms +step:5/9000 train_loss:7.2026 train_time:409ms step_avg:81.84ms +step:6/9000 train_loss:7.1296 train_time:489ms step_avg:81.55ms +step:7/9000 train_loss:7.0330 train_time:571ms step_avg:81.51ms +step:8/9000 train_loss:6.8260 train_time:652ms step_avg:81.44ms +step:9/9000 train_loss:6.4758 train_time:732ms step_avg:81.35ms +step:10/9000 train_loss:6.0454 train_time:814ms step_avg:81.36ms +step:500/9000 train_loss:2.4815 train_time:41420ms step_avg:82.84ms +step:1000/9000 train_loss:2.1452 train_time:83008ms step_avg:83.01ms +step:1500/9000 train_loss:2.0876 train_time:124593ms step_avg:83.06ms +step:2000/9000 train_loss:2.1645 train_time:166248ms step_avg:83.12ms +step:2500/9000 train_loss:2.1600 train_time:207948ms step_avg:83.18ms +step:3000/9000 train_loss:2.0985 train_time:249657ms step_avg:83.22ms +step:3500/9000 train_loss:2.1013 train_time:291382ms step_avg:83.25ms +step:4000/9000 train_loss:2.0317 train_time:333094ms step_avg:83.27ms +step:4000/9000 val_loss:2.0556 val_bpb:1.2174 train_time:333145ms step_avg:83.29ms +step:4500/9000 train_loss:2.0613 train_time:374811ms step_avg:83.29ms +step:5000/9000 train_loss:1.8251 train_time:416524ms step_avg:83.30ms +step:5500/9000 train_loss:2.0281 train_time:458231ms step_avg:83.31ms +step:6000/9000 train_loss:2.0484 train_time:499966ms step_avg:83.33ms +step:6500/9000 train_loss:1.9167 train_time:541682ms step_avg:83.34ms +late_qat:enabled step:6675 scale:0.1497 +step:7000/9000 train_loss:2.0301 train_time:583393ms step_avg:83.34ms +step:7200/9000 val_loss:1.9192 val_bpb:1.1367 train_time:600122ms step_avg:83.35ms +stopping_early: wallclock_cap train_time:600122ms step:7200/9000 +peak memory allocated: 21471 MiB reserved: 22002 MiB +ema:applying EMA weights +DIAGNOSTIC post_ema val_loss:1.9176 val_bpb:1.1357 eval_time:1977ms +Serialized model: 106027446 bytes +Code size: 89809 bytes +Serialized model int6+lzma: 15786192 bytes +Total submission size int6+lzma: 15876001 bytes +final_int6_roundtrip val_loss:1.9310 val_bpb:1.1437 eval_time:6613ms +final_int6_roundtrip_exact val_loss:1.93102422 val_bpb:1.14366131 +final_int6_sliding_window val_loss:1.8914 val_bpb:1.1202 stride:64 eval_time:74347ms +final_int6_sliding_window_exact val_loss:1.89141729 val_bpb:1.12020683 +final_int8_zlib_roundtrip_exact val_loss:1.89141729 val_bpb:1.12020683 +ttt_sliding:start chunks=1893 chunk_tokens=32768 total_windows=969088 stride=64 ttt_lr=0.002 ttt_epochs=3 freeze_blocks=0 +ttt_sliding:params unfrozen=26928220 frozen=0 + ttt_chunk [1/1893] bpb=1.150363 time=0.5s + ttt_chunk [11/1893] bpb=1.142417 time=2.7s + ttt_chunk [21/1893] bpb=1.129457 time=4.8s + ttt_chunk [31/1893] bpb=1.127131 time=7.0s + ttt_chunk [41/1893] bpb=1.114037 time=9.1s + ttt_chunk [51/1893] bpb=1.109179 time=11.3s + ttt_chunk [61/1893] bpb=1.116177 time=13.4s + ttt_chunk [71/1893] bpb=1.114600 time=15.6s + ttt_chunk [81/1893] bpb=1.113847 time=17.7s + ttt_chunk [91/1893] bpb=1.114657 time=19.9s + ttt_chunk [101/1893] bpb=1.118235 time=22.1s + ttt_chunk [111/1893] bpb=1.120711 time=24.3s + ttt_chunk [121/1893] bpb=1.113893 time=26.5s + ttt_chunk [131/1893] bpb=1.114138 time=28.7s + ttt_chunk [141/1893] bpb=1.119671 time=30.8s + ttt_chunk [151/1893] bpb=1.121647 time=33.0s + ttt_chunk [161/1893] bpb=1.121207 time=35.2s + ttt_chunk [171/1893] bpb=1.125673 time=37.3s + ttt_chunk [181/1893] bpb=1.127954 time=39.5s + ttt_chunk [191/1893] bpb=1.135230 time=41.7s + ttt_chunk [201/1893] bpb=1.133890 time=43.9s + ttt_chunk [211/1893] bpb=1.131758 time=46.0s + ttt_chunk [221/1893] bpb=1.133354 time=48.2s + ttt_chunk [231/1893] bpb=1.132072 time=50.4s + ttt_chunk [241/1893] bpb=1.132343 time=52.5s + ttt_chunk [251/1893] bpb=1.131872 time=54.7s + ttt_chunk [261/1893] bpb=1.129093 time=56.9s + ttt_chunk [271/1893] bpb=1.127967 time=59.0s + ttt_chunk [281/1893] bpb=1.129279 time=61.2s + ttt_chunk [291/1893] bpb=1.131088 time=63.3s + ttt_chunk [301/1893] bpb=1.131719 time=65.5s + ttt_chunk [311/1893] bpb=1.133809 time=67.7s + ttt_chunk [321/1893] bpb=1.135717 time=69.8s + ttt_chunk [331/1893] bpb=1.135590 time=72.0s + ttt_chunk [341/1893] bpb=1.134632 time=74.2s + ttt_chunk [351/1893] bpb=1.136902 time=76.3s + ttt_chunk [361/1893] bpb=1.137120 time=78.5s + ttt_chunk [371/1893] bpb=1.136444 time=80.7s + ttt_chunk [381/1893] bpb=1.136602 time=82.8s + ttt_chunk [391/1893] bpb=1.136434 time=85.0s + ttt_chunk [401/1893] bpb=1.134393 time=87.2s + ttt_chunk [411/1893] bpb=1.133215 time=89.3s + ttt_chunk [421/1893] bpb=1.132266 time=91.6s + ttt_chunk [431/1893] bpb=1.132098 time=93.7s + ttt_chunk [441/1893] bpb=1.132422 time=95.9s + ttt_chunk [451/1893] bpb=1.132741 time=98.1s + ttt_chunk [461/1893] bpb=1.131641 time=100.3s + ttt_chunk [471/1893] bpb=1.132201 time=102.4s + ttt_chunk [481/1893] bpb=1.131835 time=104.6s + ttt_chunk [491/1893] bpb=1.130704 time=106.8s + ttt_chunk [501/1893] bpb=1.130229 time=108.9s + ttt_chunk [511/1893] bpb=1.129542 time=111.1s + ttt_chunk [521/1893] bpb=1.127148 time=113.3s + ttt_chunk [531/1893] bpb=1.128304 time=115.5s + ttt_chunk [541/1893] bpb=1.128600 time=117.6s + ttt_chunk [551/1893] bpb=1.127534 time=119.8s + ttt_chunk [561/1893] bpb=1.128070 time=122.0s + ttt_chunk [571/1893] bpb=1.127055 time=124.1s + ttt_chunk [581/1893] bpb=1.126272 time=126.3s + ttt_chunk [591/1893] bpb=1.125646 time=128.5s + ttt_chunk [601/1893] bpb=1.126143 time=130.6s + ttt_chunk [611/1893] bpb=1.126087 time=132.8s + ttt_chunk [621/1893] bpb=1.125891 time=135.0s + ttt_chunk [631/1893] bpb=1.126592 time=137.1s + ttt_chunk [641/1893] bpb=1.126316 time=139.3s + ttt_chunk [651/1893] bpb=1.126441 time=141.4s + ttt_chunk [661/1893] bpb=1.125888 time=143.6s + ttt_chunk [671/1893] bpb=1.126261 time=145.8s + ttt_chunk [681/1893] bpb=1.126983 time=147.9s + ttt_chunk [691/1893] bpb=1.127995 time=150.1s + ttt_chunk [701/1893] bpb=1.127452 time=152.3s + ttt_chunk [711/1893] bpb=1.127422 time=154.4s + ttt_chunk [721/1893] bpb=1.127078 time=156.6s + ttt_chunk [731/1893] bpb=1.127134 time=158.7s + ttt_chunk [741/1893] bpb=1.127212 time=160.9s + ttt_chunk [751/1893] bpb=1.127052 time=163.1s + ttt_chunk [761/1893] bpb=1.126988 time=165.2s + ttt_chunk [771/1893] bpb=1.126669 time=167.4s + ttt_chunk [781/1893] bpb=1.127386 time=169.6s + ttt_chunk [791/1893] bpb=1.126962 time=171.7s + ttt_chunk [801/1893] bpb=1.127261 time=173.9s + ttt_chunk [811/1893] bpb=1.127019 time=176.1s + ttt_chunk [821/1893] bpb=1.126804 time=178.2s + ttt_chunk [831/1893] bpb=1.126623 time=180.4s + ttt_chunk [841/1893] bpb=1.125973 time=182.6s + ttt_chunk [851/1893] bpb=1.125720 time=184.7s + ttt_chunk [861/1893] bpb=1.125502 time=186.9s + ttt_chunk [871/1893] bpb=1.125776 time=189.1s + ttt_chunk [881/1893] bpb=1.125967 time=191.2s + ttt_chunk [891/1893] bpb=1.125554 time=193.4s + ttt_chunk [901/1893] bpb=1.125270 time=195.6s + ttt_chunk [911/1893] bpb=1.125390 time=197.7s + ttt_chunk [921/1893] bpb=1.125864 time=199.9s + ttt_chunk [931/1893] bpb=1.125823 time=202.1s + ttt_chunk [941/1893] bpb=1.125481 time=204.2s + ttt_chunk [951/1893] bpb=1.125895 time=206.4s + ttt_chunk [961/1893] bpb=1.125979 time=208.6s + ttt_chunk [971/1893] bpb=1.126827 time=210.8s + ttt_chunk [981/1893] bpb=1.126905 time=212.9s + ttt_chunk [991/1893] bpb=1.126922 time=215.1s + ttt_chunk [1001/1893] bpb=1.126901 time=217.3s + ttt_chunk [1011/1893] bpb=1.126674 time=219.4s + ttt_chunk [1021/1893] bpb=1.127032 time=221.6s + ttt_chunk [1031/1893] bpb=1.127488 time=223.8s + ttt_chunk [1041/1893] bpb=1.127153 time=225.9s + ttt_chunk [1051/1893] bpb=1.126925 time=228.1s + ttt_chunk [1061/1893] bpb=1.126978 time=230.3s + ttt_chunk [1071/1893] bpb=1.127580 time=232.4s + ttt_chunk [1081/1893] bpb=1.127836 time=234.6s + ttt_chunk [1091/1893] bpb=1.128582 time=236.7s + ttt_chunk [1101/1893] bpb=1.128614 time=238.9s + ttt_chunk [1111/1893] bpb=1.128482 time=241.1s + ttt_chunk [1121/1893] bpb=1.128272 time=243.3s + ttt_chunk [1131/1893] bpb=1.128147 time=245.4s + ttt_chunk [1141/1893] bpb=1.127822 time=247.6s + ttt_chunk [1151/1893] bpb=1.127847 time=249.8s + ttt_chunk [1161/1893] bpb=1.127465 time=251.9s + ttt_chunk [1171/1893] bpb=1.127767 time=254.1s + ttt_chunk [1181/1893] bpb=1.127018 time=256.3s + ttt_chunk [1191/1893] bpb=1.126896 time=258.4s + ttt_chunk [1201/1893] bpb=1.127316 time=260.6s + ttt_chunk [1211/1893] bpb=1.126833 time=262.8s + ttt_chunk [1221/1893] bpb=1.126531 time=265.0s + ttt_chunk [1231/1893] bpb=1.126252 time=267.2s + ttt_chunk [1241/1893] bpb=1.125911 time=269.3s + ttt_chunk [1251/1893] bpb=1.125328 time=271.5s + ttt_chunk [1261/1893] bpb=1.125291 time=273.7s + ttt_chunk [1271/1893] bpb=1.124923 time=275.9s + ttt_chunk [1281/1893] bpb=1.124719 time=278.0s + ttt_chunk [1291/1893] bpb=1.124486 time=280.2s + ttt_chunk [1301/1893] bpb=1.123896 time=282.3s + ttt_chunk [1311/1893] bpb=1.123510 time=284.5s + ttt_chunk [1321/1893] bpb=1.123167 time=286.7s + ttt_chunk [1331/1893] bpb=1.123092 time=288.8s + ttt_chunk [1341/1893] bpb=1.122970 time=291.0s + ttt_chunk [1351/1893] bpb=1.122885 time=293.2s + ttt_chunk [1361/1893] bpb=1.122931 time=295.3s + ttt_chunk [1371/1893] bpb=1.122816 time=297.5s + ttt_chunk [1381/1893] bpb=1.122808 time=299.7s + ttt_chunk [1391/1893] bpb=1.122411 time=301.8s + ttt_chunk [1401/1893] bpb=1.122392 time=304.0s + ttt_chunk [1411/1893] bpb=1.122516 time=306.2s + ttt_chunk [1421/1893] bpb=1.122759 time=308.4s + ttt_chunk [1431/1893] bpb=1.122465 time=310.5s + ttt_chunk [1441/1893] bpb=1.122987 time=312.7s + ttt_chunk [1451/1893] bpb=1.123319 time=314.9s + ttt_chunk [1461/1893] bpb=1.122860 time=317.0s + ttt_chunk [1471/1893] bpb=1.123892 time=319.2s + ttt_chunk [1481/1893] bpb=1.123438 time=321.4s + ttt_chunk [1491/1893] bpb=1.123272 time=323.5s + ttt_chunk [1501/1893] bpb=1.123194 time=325.7s + ttt_chunk [1511/1893] bpb=1.123224 time=327.9s + ttt_chunk [1521/1893] bpb=1.123248 time=330.0s + ttt_chunk [1531/1893] bpb=1.122743 time=332.2s + ttt_chunk [1541/1893] bpb=1.122607 time=334.4s + ttt_chunk [1551/1893] bpb=1.122929 time=336.5s + ttt_chunk [1561/1893] bpb=1.122934 time=338.7s + ttt_chunk [1571/1893] bpb=1.122760 time=340.9s + ttt_chunk [1581/1893] bpb=1.122876 time=343.0s + ttt_chunk [1591/1893] bpb=1.122736 time=345.2s + ttt_chunk [1601/1893] bpb=1.122910 time=347.4s + ttt_chunk [1611/1893] bpb=1.122853 time=349.5s + ttt_chunk [1621/1893] bpb=1.122445 time=351.7s + ttt_chunk [1631/1893] bpb=1.122757 time=353.8s + ttt_chunk [1641/1893] bpb=1.122766 time=356.0s + ttt_chunk [1651/1893] bpb=1.122720 time=358.2s + ttt_chunk [1661/1893] bpb=1.122588 time=360.4s + ttt_chunk [1671/1893] bpb=1.123069 time=362.5s + ttt_chunk [1681/1893] bpb=1.123215 time=364.7s + ttt_chunk [1691/1893] bpb=1.123053 time=366.9s + ttt_chunk [1701/1893] bpb=1.123200 time=369.0s + ttt_chunk [1711/1893] bpb=1.123207 time=371.2s + ttt_chunk [1721/1893] bpb=1.123221 time=373.3s + ttt_chunk [1731/1893] bpb=1.123103 time=375.5s + ttt_chunk [1741/1893] bpb=1.122908 time=377.7s + ttt_chunk [1751/1893] bpb=1.122732 time=379.8s + ttt_chunk [1761/1893] bpb=1.122878 time=382.0s + ttt_chunk [1771/1893] bpb=1.122782 time=384.2s + ttt_chunk [1781/1893] bpb=1.122800 time=386.3s + ttt_chunk [1791/1893] bpb=1.122400 time=388.5s + ttt_chunk [1801/1893] bpb=1.122284 time=390.6s + ttt_chunk [1811/1893] bpb=1.122182 time=392.8s + ttt_chunk [1821/1893] bpb=1.122228 time=395.0s + ttt_chunk [1831/1893] bpb=1.121620 time=397.1s + ttt_chunk [1841/1893] bpb=1.121602 time=399.3s + ttt_chunk [1851/1893] bpb=1.121374 time=401.4s + ttt_chunk [1861/1893] bpb=1.121015 time=403.6s + ttt_chunk [1871/1893] bpb=1.120981 time=405.8s + ttt_chunk [1881/1893] bpb=1.120534 time=407.9s + ttt_chunk [1891/1893] bpb=1.120309 time=410.1s + ttt_chunk [1893/1893] bpb=1.120356 time=410.4s +ttt_sliding:done val_loss=1.887916 val_bpb=1.118133 elapsed=410.4s +legal_ttt val_loss:1.8879 val_bpb:1.1181 eval_time:410905ms +legal_ttt_exact val_loss:1.88791633 val_bpb:1.11813335