内容摘要
这期内容把 GPT-2 124M 从公开权重、架构实现到多卡训练完整复现了一遍,并用现代 PyTorch 工程手段把训练效率大幅拉高。作者最终在其采用的验证损失和 HellaSwag 指标上超过公开 GPT-2 124M,但也明确保留了数据顺序、评测公平性和 torch.compile 兼容性等疑点。
关键观点
目标不是笼统“GPT-2”,而是 124M 子模型
作者一开始就强调,所谓“复现 GPT-2”很容易说得过于笼统,因为 GPT-2 实际上是一组不同参数规模的模型。此次目标被严格限定为 124M 版本,而不是 1.5B 的 XL。这个限定直接决定了层数、通道数、训练预算、吞吐目标和评测基线。作者还提醒,论文里的参数总数表格并不完全可靠,实际应以代码仓库中的更正为准。
为什么重要: 如果目标模型没定准,后续一切对齐都会偏掉。复现实验首先要定义清楚自己究竟在复现哪一个检查点。
支撑证据
in particular in this video we're going to be reproducing the 124 million parameter model
先借 Hugging Face 搭桥,再写自己的极简 PyTorch GPT
原始 OpenAI GPT-2 代码是 TensorFlow,这对今天的大多数教学和实验并不友好。作者因此先把 Hugging Face Transformers 作为“目标行为”的参考实现,用它加载官方权重、抽取 state_dict、采样文本,再反向对齐自己的 GPT 类命名和张量形状。这样做的目的不是依赖库隐藏复杂度,而是先建立一个可验证的真值,再把实现压缩成更容易读懂的版本。最终他把一个较长的工业实现,收敛成不足百行的核心模型骨架。