SuperAPI AI 工具集

distributed-training-guide

这是一个关于分布式 PyTorch 训练代码最佳实践与指南的开源项目,由 LambdaLabsML 维护。项目以章节形式组织,每章包含 README.md 和 train_llm.py 脚本,逐步讲解从单 GPU 训练到多 GPU、多节点、FSDP、张量并行以及 2D 并行的完整升级路径。指南完全使用标准 PyTorch 编写,仅依赖 transformers 和 datasets 处理模型与数据,不引入其他分布式库。内容涵盖如何将单 GPU 脚本扩展到多 GPU/多节点、诊断训练中的挂起与错误、在集群上调度启动训练、调整超参数以及日志记录等最佳实践。适合希望学习分布式训练并应用于因果语言模型(如 GPT/Llama)的开发者。

访问官网

工具介绍

用途

本指南旨在帮助开发者掌握分布式 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、多节点集群,或需要优化内存使用、诊断集群训练错误的场景。

限制

指南未提供具体的收费、价格或平台信息。其他功能细节暂未提供。