# 第 25—31 章配套实验

本目录为原创 CPU 教学实验，架构参考固定版 Karpathy/build-nanogpt。许可与归属见 NOTICE.md。无需网络、预训练权重、外部语料或 GPU。

## 本次实际环境与运行

Python 3.12.14；torch 2.6.0+cpu；单线程；seed=1337。数值等价测试使用 float64，微型训练使用 float32。使用全书已配置环境：

```bash
cd nn_zero_to_hero_book
source qa/environment/env.sh
python examples/part4/lab.py > qa/part4/results.json
MPLCONFIGDIR=/tmp/part4-mpl XDG_CACHE_HOME=/tmp/part4-cache python examples/part4/draw.py
```

独立环境需要 torch 2.6.0（CPU 构建）；绘图另外需要 matplotlib。请按对应平台官方安装方式准备依赖。lab.py 自身设置 torch 单线程和确定性算法；完整线程环境另见全书 env.sh。运行一次 lab.py 会顺序消耗 RNG，选择性复制某一个测试时应独立固定其随机状态，不能预期中间随机数与全量执行一致。

## 文件

- lab.py：完整 tiny GPT、AdamW 分组、训练步和全部断言。
- draw.py：五幅原创图的 PNG/SVG 生成器。
- ../../qa/part4/results.json：实际执行输出，包含环境和测试数值。
- ../../qa/part4/manifest.json：交付文件哈希及验证边界。
- ../../research/part4/coverage.md：官方 31 个 GPT-2 时间段、源码行区间与 State of GPT 主题对应。

## 结果与限制

全部断言通过；大/小批次加权梯度、因果注意力、shifted completion mask、checkpoint 恢复均有实际验证。DDP 只是两个 CPU 模型梯度的数学平均，没有启动分布式进程。没有下载 GPT-2 权重、FineWeb 或 HellaSwag；没有 GPU、BF16、TF32、fused AdamW、编译性能或真实语言评测结论。最后一个训练实验仅学习固定的模 17 后继规则。
