用途
本指南旨在帮助开发者掌握分布式 PyTorch 训练代码的编写方法,解决大规模神经网络训练中的常见问题,例如如何将单 GPU 训练脚本扩展到多 GPU 或多节点、如何诊断训练过程中的挂起或错误、如何在集群上调度训练任务、如何调整超参数以及如何有效记录日志。
主要能力
指南按章节组织,每章包含一个 README.md 和一个 train_llm.py 脚本,逐步升级训练代码:
- 第 1 章:标准因果语言模型训练脚本,可在单 GPU 上运行。
- 第 2 章:升级脚本以支持多 GPU,并使用 DDP(分布式数据并行)。
- 第 3 章:介绍如何在多节点集群上启动训练任务。
- 第 4 章:将脚本升级为使用 FSDP(完全分片数据并行)以优化内存使用。
- 第 5 章:升级脚本以训练 Llama-405b 模型。
- 第 6 章:升级单 GPU 训练脚本以支持张量并行(TP)。
- 第 7 章:升级 TP 训练脚本以使用 2D 并行(FSDP + TP)。 此外,还包含替代框架介绍(这些框架底层均与 PyTorch 兼容)、诊断错误的最佳实践以及分布式训练相关主题。
使用方式
项目完全使用标准 PyTorch 编写,仅依赖 transformers 和 datasets 库处理模型与数据,分布式部分全部由 PyTorch 实现。使用前需克隆仓库并配置虚拟环境。教程使用 wandb 作为实验跟踪工具。每个章节的 README 会讨论分布式训练的高层概念以及该章节引入的代码变更。
适用场景
适用于需要训练或微调大型因果语言模型(如 GPT、Llama)的开发者,尤其是希望从单 GPU 迁移到多 GPU、多节点集群,或需要优化内存使用、诊断集群训练错误的场景。
限制
指南未提供具体的收费、价格或平台信息。其他功能细节暂未提供。