训练进度与预计完成时间 训练进度与预计完成时间 | Zhiwei Li

训练进度与预计完成时间 | AI生成和翻译

Home 2026.04

以下是对运行训练和预计完成时间的分析。

运行状态

  • 进程: 在 tmux 1: 中运行 python3 train.py config/train_fineweb.py (于 4月29日星期三 13:46 HKT 启动)
  • 当前: 4月29æ—¥ 22:20 HKT → 已运行约 8 小时 34 分钟
  • 最新日志行: iter 3200: loss 3.4117, time 9332ms, mfu 13.57%
  • 最新检查点: out-fineweb/ckpt.pt 于 21:35 写入 (第 3000 步保存)。大小 1,492,570,892 B ≈ 1.39 GiB,与保存了优化器状态的 125M GPT-2 预期相符 (fp32 模型约 0.5 GB + AdamW m/v 约 1.0 GB)。

当前使用的配置 (config/train_fineweb.py)

   
dataset fineweb
model 12L / 12H / 768d, ~1.236 亿参数
block_size 1024
batch / grad_accum 8 × 64 → 有效批次 512 序列 → 每迭代 524,288 个token
max_iters / lr_decay_iters 12000
warmup 500
lr 3e-4 → 3e-5
eval_interval 500 (always_save_checkpoint=True)
compile True

因此,训练完成时的总 token 数 ≈ 12000 × 524,288 ≈ 62.9 亿个token (注释中的 “~30 亿” 已过时)。

损失趋势

step    train    val
0       10.997   10.991
500      5.451    5.508
1000     4.379    4.391
1500     4.063    4.010
2000     3.906    3.852
2500     3.813    3.774
3000     3.744    3.691

仍以每 500 步约下降 0.07 的速度减少,且验证损失 < 训练损失 —— 状态健康,无过拟合迹象。仍有足够下降空间:在 FineWeb 规模的数据上,一个 125M 的 GPT-2 模型预期最终会稳定在验证损失约 3.0–3.1。

预计何时完成?

  • 每次迭代时间: 9.33 ç§’ (正常) + 每 500 次迭代约 20 秒评估时间 → 有效平均约 ~9.37 ç§’/次迭代
  • 完整运行: 12000 × 9.37 ≈ 112,400 ç§’ ≈ 31.2 小时 挂钟时间
  • 估算截止 22:20 的当前迭代: 30,840 / 9.37 ≈ 迭代次数 ~3290
  • 剩余: ~8700 次迭代 × 9.37 ç§’ ≈ 22.6 小时
  • 预计完成时间 (ETA): 4月30日星期四, 约 20:50 HKT (±30 分钟,取决于评估开销)

下一个检查点保存将在第 3500 步触发,约等于迭代次数 3290 + 210 → 从现在起约 33 分钟后 (约 22:53)。

值得注意的事项

  • MFU 略有下降 (15.4 % → 13.6 %);无需担心,这是评估步骤后滚动平均的正常现象。
  • 单 GPU 上 gradient_accumulation_steps = 64 且 batch_size = 8,意味着每次迭代包含 64 个微批次 —— 这就是为什么感觉 9.3 ç§’/次迭代较长,但吞吐量实际良好 (~56 K tok/s)。
  • 注释中关于 max_iters çš„ “~30 亿个token处理” 是不正确的;在 block 大小为 1024、有效批次为 512 的情况下,12K 次迭代应处理约 62.9 亿个token。如果您在意,值得修正,但这不影响本次运行。

您希望我继续监控并在下一个检查点时通知您,还是从当前检查点采样以检查生成效果?