冒烟测试与培训计划总结 | AI生成和翻译

Home 2026.05

以下是结果。

烟雾测试结果 — /mnt/data/nanoGPT/out-gpt2-200m-smoke/smoke.log

指标
参数数量(由 train.py 打印) 218.51M
损失轨迹(25 次迭代) 10.985 → 7.66(正常冷启动下降)
每迭代时间(bs=2, grad_accum=4) ~330 ms
崩溃 / NaN / 内存溢出(OOM)

VRAM 探测(bf16,未编译)

微批次大小 峰值 VRAM 毫秒/微步 毫秒/令牌
2 5.55 GB 117 0.0571
4(已选) 8.01 GB 167 0.0408
6 10.44 GB 231 0.0376
8 内存溢出

bs=4 是明确的最佳选择:每令牌比 bs=2 快 28%,且留有约 4 GB 空间用于 torch.compile 和评估。我已更新 config/train_gpt2_200m.py,设置 batch_size=4gradient_accumulation_steps=128(仍为每步 524,288 个令牌)。

计划

架构(自定义,介于 GPT-2 small 和 medium 之间):

n_layer = 18,  n_head = 16,  n_embd = 896     → 2.185 亿非嵌入参数

为什么是 4B 令牌: Chinchilla 最优 ≈ 20 × 参数数 → 20 × 219M ≈ 4.4B。你的 4B 目标正好在此线上。

令牌预算: 524,288 令牌/步 × 8,000 步 = 41.9 亿令牌

数据: data/fineweb/edu_fineweb100B/ 目录下已有 1,408 个 FineWeb-Edu 分片(约 140B 令牌)——远超所需,因此无需重新分词。

在 RTX 4070 上的时间预估:

设置 每次迭代时间 8,000 次迭代的挂钟时间
bs=4,未编译 ~21.4 秒 约 48 小时(约 2 天)
bs=4,启用 compile=True(在 Ada 上通常加速约 25%) ~16 秒 约 36 小时(约 1.5 天)

因此预算大致为 约 1.5–2 天的 GPU 不间断运行时间。加上首次迭代时 torch.compile 预热约 30 分钟,以及总共 32 次评估(每 250 次迭代一次 × 约 3 秒/次)约 30 分钟。

期望的最终验证损失: ~2.92–3.00(优于 124M 的 ~3.0–3.1,略低于 350M 的 ~2.85–2.95)。

启动正式运行

python3 train.py config/train_gpt2_200m.py

如果需要,我还可以:(a) 将输出分流到日志文件,(b) 接入 wandb,或 (c) 现在就在后台启动,以便你监控。


Back Donate