文章摘要
【关 键 词】 GPT-2模型、成本降低、C、CUDA编程、性能提升、多节点训练
OpenAI的创始成员和前研究科学家Andrej Karpathy最近成功地在单个八H100节点上重现了GPT-2(1.6B)模型,整个过程仅需24小时,成本为672美元。这一成就展示了计算、软件和数据方面的进步,使得过去需要整个团队和规模化投入的项目,现在可以以更低的成本和更短的时间完成。Karpathy在2017年离开OpenAI加入特斯拉担任AI高级总监,2023年重返OpenAI并组建团队推出ChatGPT。离开OpenAI后,他开发了llm.c,这是一个简单、纯C/CUDA的LLM,大约5000行代码,无需使用Python解释器或复杂的深度学习库。
Karpathy估计,与2019年相比,训练GPT-2的成本可能高出100倍,大约10万美元。他通过使用FineWeb-Edu数据集和H100 GPU,性能提高了10倍,成本大幅降低。新模型的输出结果与GPT-2相当,连贯且质量相近。
复现过程简单,只需一台八H100 GPU的设备,使用C/CUDA编写的llm.c,不涉及minconda、Python、PyTorch等。Karpathy提供了详细的训练步骤,包括安装CUDA、cudnn、MPI,下载llm.c代码和数据集,编译和训练模型。训练过程中,每个步骤约需2.75秒,共3.2万个步骤,总计约24小时。训练使用了100万个FineWeb-EDU token,处理了约33.6B个token,随着预测能力的提高,loss逐渐下降。
评估方面,Karpathy使用了HellaSwag评估方案,发现新模型在约25K步左右与GPT-2模型性能交叉。GPT-3模型(与GPT-2架构相似,但训练数据量更大)也在同一评估中表现更好。Karpathy指出,HellaSwag主要测试英语和常识,不涉及多语言、数学或代码内容,因此不是完美的单点比较选项。
在训练参数方面,Karpathy参考了GPT-3论文中的超参数,因为GPT-2论文几乎没有提供这方面的信息。他详细解释了每个参数的作用,如训练和验证数据、日志目录、评估间隔、采样设置、微批次大小、序列长度、总批次大小、权重衰减、学习率计划、优化器设置等。
对于内存限制问题,Karpathy建议调整微批次大小、使用重新计算设置、禁用fp32主权重、减少序列长度等方法来解决。他强调,即使内存较小,只要有耐心,任务也能顺利完成,只是速度稍慢。
Karpathy对llm.c的代码表示赞赏,认为它简洁、直接、可读,编译和运行速度快,内存占用恒定,具有按bit确定性,MFU略低于50%。主要代码位于train_gpt2.cu文件中,包含模型定义和训练循环。
最后,llm.c支持多节点训练,Karpathy见过的最大规模训练使用了约500张GPU。这表明llm.c具有很好的扩展性,可以充分利用大量计算资源。
原文和模型
【原文链接】 阅读原文 [ 5280字 | 22分钟 ]
【原文作者】 AI前线
【摘要模型】 moonshot-v1-32k
【摘要评分】 ★★★★★