Files
xtrain/docs/runs/README.md
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

45 lines
5.3 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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×dim`
token embedding + lm_head。gpt2 vocab=50257 使这两张表固定占 ~25.7Mdim256 时),它**不反映
模型容量**,所以阶梯按 core 来量。
## 对比表
val loss 一栏给的是各版**各自训练 run 报告的 best val**held-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](05-v5-tinystories-dim768.md))。
⚠️ **v6 起换了保留集(语料)**v0v5 的 val 都是 **TinyStories** 1M 留出集彼此可比v6 换成纯
**FineWeb-edu**(真实网页文本),它的 val3.07)是**另一把尺子上的另一个分布****不能**和 v0v5 的
~1.1 比大小——真实网页熵高,~3.0 是预期值不是回退。v6 的判据是采样质量 + transfer eval
[06-v6](06-v6-fineweb-edu-dim768.md))。下表 v6 行的 val 单独标注分布。
| 版本 | 数据 | 训练 token | epoch | 架构 (dim/L/heads·hd/ffn) | core 参数 | 总参数 | val loss | 备注 |
|---|---|---|---|---|---|---|---|---|
| [v0-baseline](../../docs/05-training-loop.md) | 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](01-v1-tinystories-dim256.md) | 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](02-v2-tinystories-dim384.md) | 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](../known-issues.md) |
| [v3-tinystories-dim512](03-v3-tinystories-dim512.md) | 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](04-v4-tinystories-dim768.md) | TinyStories 全量 (复用 v1 缓存) | ~720.9M | ~1.54 | 768 / 18 / 24·32 / 2048 | 127.43M | 204.63M | **1.1690** | dim768/18L + **8 卡 DDP fp32**val 比 v3 低 0.13,细节更具体、结构更完整;~84min/8 卡 ~145K tok/s。验证 T11 缓存分配器在 dim768 多卡扩展;⚠️ fp32 per-rank batch 32 OOM = bf16(KI-2) 触发点 |
| [v5-tinystories-dim768](05-v5-tinystories-dim768.md) | 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](06-v6-fineweb-edu-dim768.md) | **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 提案"。
</content>