GPT-2 124M GitHub代码训练完成 | AI生成和翻译
这是全面的训练总结:
================================================================ GPT-2 124M 在 GitHub 代码上的训练 — 完整运行总结 ================================================================
持续时间 开始时间: 周六 6月21日 21:14(目录创建) 结束时间: 周四 6月25日 00:39(最终检查点保存) 总时长: 约3天3.5小时(75.4小时)
配置 模型: GPT-2 124M(12层,12头,768嵌入维度,约1.63亿总参数) 数据集: 282个GitHub代码的.npy分片(27 GB,约140亿token) 批次: 4 × 1024 × 8 grad_accum = 32,768 tokens/step 步数: 427,000次迭代 所见token: 约140亿 优化器: AdamW(lr=6e-4,余弦衰减→6e-5,预热2000步) 精度: bfloat16,启用torch.compile
吞吐量 平均每步时间: ~636 ms/step(含评估/检查点开销) 稳态: 621 ms/step(torch.compile预热后) 步数/小时: ~5,663 tokens/秒: ~51,900 tokens/小时: ~1.87亿 MFU: 14.44%
硬件 GPU: RTX 4070(12 GB显存) 显存使用: ~5,050 MiB(7.3 GB空闲空间) 功耗: ~208W 温度: ~65°C
损失进展 第0步: loss 10.87(随机初始化) 第14k步: val_loss 5.87 第25k步: loss ~3.6 第70k步: val_loss 2.08 ← 最佳点 第325k步: val_loss 2.79 第427k步: val_loss 3.47(检查点中的最终最佳val_loss)
注意:最终val_loss(3.47)高于训练中期(70k时的2.08)。 这表明在后期当学习率衰减且模型记忆训练数据时,存在一定过拟合。 最佳泛化性能大约在第60-80k步。
检查点 路径: /mnt/data/nanoGPT/out-github-code-124m/ckpt.pt 大小: 1.4 GB
流程
- 下载: 38/1126个来自codeparrot/github-code的parquet分片
- 分词: 通过tiktoken进行GPT-2 BPE分词 → 140个训练.npy分片 + 1个验证.npy分片
- 训练: 在RTX 4070上运行427k步,耗时3.25天
================================================================
没错——3天3.5小时,140亿token,搞定!🎉