Files
xtrain/docs/runs/README.md
Gahow Wang ff79fee3c5 docs: run v4 — TinyStories, dim768, val 1.17
Design doc docs/runs/04-v4-tinystories-dim768.md (data 720.9M tok ~1.54ep /
arch dim768/18L core 127.4M vs v3 / hparams 22000 steps, global batch 128
per-rank 16, seq 256, lr 6e-4->6e-5 warmup 1100 + cosine, clip 1.0, world=8
DDP fp32 / results train 11.07->1.14, best val 1.1690, ~145K tok/s 8-GPU /
v3->v4 improvement: val 1.30->1.17 + side-by-side samples). Notes that this run
validated T11's caching allocator at dim768 multi-GPU and that dim768 fp32
batch-32 OOM is the bf16 trigger. Update docs/runs/README.md comparison table
to v0/v1/v2/v3/v4 and the next-rung proposal to v5.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 13:14:37 +08:00

3.0 KiB
Raw Blame History

Scaling Runs

xtrain 的 scaling 阶段:在 v0-baseline 之上逐版放大数据 + 参数,每版一份 docs/runs/NN-<version>.md 设计文档(数据来源 / 架构 + 参数 / 超参 / 结果 val-loss + 采样 / 相比上一版的提升),训练完存入 dash5 模型 registry~/projects/tiny-models/<version>/)并导出 xserv 格式验证可服务。

模型核心参数(core params= Config::core_params() = 总参数减去两张 vocab×dimtoken embedding + lm_head。gpt2 vocab=50257 使这两张表固定占 ~25.7Mdim256 时),它不反映 模型容量,所以阶梯按 core 来量。

对比表

val loss 一栏给的是各版各自训练 run 报告的 best valheld-out 1M token全量 train 末尾切片)。 注v0/v1 训练用 seq128、v2 用 seq256eval 窗口不同 → 同一保留集 + 同一 eval 设置seq256/64batch 重评 v1=2.6756→v2=2.0418(低 0.634apples-to-apples下表 best-val 同向。

版本 数据 架构 (dim/L/heads·hd/ffn) core 参数 总参数 val loss 备注
v0-baseline TinyStories valid 3MB 切片 (~72 万 tok) 32 / 4 / 2·16 / 64 ~41K 3.26M 3.8050 太小不可用;采样陷入 "mommy's mommy's mommy" 循环
v1-tinystories-dim256 TinyStories 全量 train (468.3M tok, u16 缓存) 256 / 8 / 8·32 / 1024 8.39M 34.13M 2.5847 全量数据 + dim256/8Lval 低 1.22,采样连贯成篇;~25.9min/单卡
v2-tinystories-dim384 TinyStories 全量 (复用 v1 缓存, 训 ~36.9M tok) 384 / 12 / 12·32 / 1536 28.32M 66.92M 1.7055 dim384/12L + DDP 4 卡val 比 v1 低 0.88,情节更长;~2.8h/4 卡。⚠️ DDP 弱扩展见 KI-1
v3-tinystories-dim512 TinyStories 全量 (复用 v1 缓存, 训 ~245.8M tok, ~0.53 epoch) 512 / 16 / 16·32 / 2048 67.13M 118.59M 1.3027 dim512/16L + 单卡 batched (T10)val 比 v2 低 0.40,带动机/转折的连续叙事;~2.65h/单卡 ~26K tok/s。T10 修 KI-1 根因(launch-bound),单卡避开 KI-5
v4-tinystories-dim768 TinyStories 全量 (复用 v1 缓存, 训 ~720.9M tok, ~1.54 epoch) 768 / 18 / 24·32 / 2048 127.43M 204.63M 1.1690 dim768/18L + 8 卡 DDP fp32val 比 v3 低 0.13,细节更具体、结构更完整;~84min/8 卡 ~145K tok/s。验证 T11 缓存分配器在 dim768 多卡扩展;⚠️ fp32 per-rank batch 32 OOM = bf16(KI-2) 触发点

下一档(提案)

  • v5(待派发):见 04-v4-*.md 末尾 "v5 提案"——先上 bf16KI-2v4 已触发dim768 fp32 batch-32 OOM 找回 batch-256 甜点区;数据上 v4 才 ~1.54 epoch 仍欠拟合,更多 TinyStories token / 开始广化 语料TinyStories + 通用高质语料)继续降 val按需 process-per-GPU 提高 8 卡线性、换更贴合 tokenizer (KI-4)。