Files
xtrain/docs/runs
Gahow Wang b4bb426d48 docs: run v6 — FineWeb-edu graduation (val 3.07, new distribution)
第一版脱离 TinyStories:纯 FineWeb-edu 真实网页文本(2.255B 语料),架构同
v4/v5(dim768/18L, core 127.43M),8 卡 DDP bf16,2.29B tok/1.02ep,~1.9h
@218K tok/s。train 11.03→3.14,best/final FineWeb val 3.0652。

方法论:FineWeb val(3.07) 与 v0–v5 的 TinyStories val(~1.1) 不可比——真实
网页熵高,~3.0 是预期非回退;判据是采样质量 + transfer eval。

- 新增 docs/runs/06-v6-fineweb-edu-dim768.md:数据管线(scripts/fineweb_to_txt.py)
  / 架构(同 v4/v5,隔离数据变量) / 超参 / 结果(val 单调降无走平=未饱和) /
  方法论说明 / transfer eval(v6→TinyStories val 2.75 vs v5 native 1.11,纯通用
  数据对窄分布有代价) / v5-vs-v6 同提示词采样对比(v6 写真实说明文 vs v5 一律
  掉进小故事)
- README 对比表加 v6 行(val 单独标注分布) + 换轴说明 + v7 提案
- evolution.md scaling 表 v6 行定稿 + 数据轴 TinyStories→FineWeb-edu 毕业说明

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 22:21:43 +08:00
..

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 同向。

tokens / epoch 两列让数据饱和可见v4→v5 同 arch、数据 ×3.51.54→5.33 epochval 仅 ↓0.06~5% 且末段走平 ⇒ TinyStories 在 dim768 已近数据天花板(详见 05-v5)。

⚠️ v6 起换了保留集(语料)v0v5 的 val 都是 TinyStories 1M 留出集彼此可比v6 换成纯 FineWeb-edu(真实网页文本),它的 val3.07)是另一把尺子上的另一个分布不能和 v0v5 的 ~1.1 比大小——真实网页熵高,~3.0 是预期值不是回退。v6 的判据是采样质量 + transfer eval06-v6)。下表 v6 行的 val 单独标注分布。

版本 数据 训练 token epoch 架构 (dim/L/heads·hd/ffn) core 参数 总参数 val loss 备注
v0-baseline TinyStories valid 3MB 切片 (~72 万 tok) ~0.72M 32 / 4 / 2·16 / 64 ~41K 3.26M 3.8050 太小不可用;采样陷入 "mommy's mommy's mommy" 循环
v1-tinystories-dim256 TinyStories 全量 train (468.3M tok, u16 缓存) ~5.1M 256 / 8 / 8·32 / 1024 8.39M 34.13M 2.5847 全量数据 + dim256/8Lval 低 1.22,采样连贯成篇;~25.9min/单卡
v2-tinystories-dim384 TinyStories 全量 (复用 v1 缓存) ~36.9M 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 ~0.53 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 ~1.54 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-tinystories-dim768 TinyStories 全量 (复用 v1 缓存) ~2.49B ~5.33 768 / 18 / 24·32 / 2048 (同 v4) 127.43M 204.63M 1.1102 架构同 v4,唯一变量=数据量 + 8 卡 DDP bf16(global 256)~3.2h/8 卡 ~217K tok/s。⚠️ 数据天花板:数据 ×3.5 仅 val ↓0.06(~5%) 且末段走平 ⇒ TinyStories 在 dim768 近饱和v6 该换轴(更大模型/更广语料)
v6-fineweb-edu-dim768 FineWeb-edu 真实网页 (2.255B 语料) ~2.29B ~1.02 768 / 18 / 24·32 / 2048 (同 v4/v5) 127.43M 204.63M 3.0652 ⚠️*(FineWeb val,与上不可比)* 第一版脱离 TinyStories,唯一变量=数据来源 + 8 卡 DDP bf16~1.9h/8 卡 ~218K tok/s。val 是另一分布(真实网页熵高,~3.0 是预期非回退),判据=采样质量+transfer。FineWeb val 末步仍单调降=未饱和;transfer: v6→TinyStories val 2.75(v5 native 1.11),纯通用数据对窄分布有代价。采样: v6 写真实说明文 vs v5 一律掉进小故事

下一档(提案)

  • v7待派发v6 兑现了 v5「换轴广化语料」的判断——纯 FineWeb-edu 带来语言种类的质变(小故事→真实 说明文),且 FineWeb val 才训 1.02 epoch、到末步仍单调降=新语料下远未饱和。v7 杠杆按收益排序: 1. 更多/更好 FineWeb-edu首选最便宜最确定同 arch 多喂 23 epoch / 加分片val 几乎必继续降) 2. 数据混合TinyStories+FineWeb治 v6 暴露的 transfer 退化 1.11→2.75,为「连贯+广度」服务) 3. 更大模型dim1024+,要先做 KI-3 激活重计算,代价最高,留到数据轴榨干后)。判断 先走 1—— v6 曲线明确说「这本语料还没喂够」,动模型尺寸前先吃满数据轴性价比最高。详见 06-v6-*.md 末尾 "v7 提案"。