分布式训练是一种模型训练范式,它涉及将训练工作负载分散到多个工作节点,从而显着提高训练速度和模型精度。虽然分布式训练可用于任何类型的机器学习模型训练,但它最适合用于大型模型和计算密集型任务,例如深度学习。
在 PyTorch 中,您可以使用多种方法执行分布式训练,每种方法在某些用例中都具有其优势
分布式数据并行 (DDP)
完全分片数据并行 (FSDP)
张量并行 (TP)
设备网格
远程过程调用 (RPC) 分布式训练
自定义扩展
在 分布式概述 中详细了解这些选项。
了解 DDP¶DDP 简介视频教程一个逐步介绍如何开始使用 DistributedDataParallel 并深入更复杂主题的视频系列
代码 视频
分布式数据并行的入门教程本教程简要介绍了 PyTorch DistributedData Parallel。
代码
使用 Join 上下文管理器进行具有不均匀输入的分布式训练本教程描述了 Join 上下文管理器并演示了它在 DistributedData Parallel 中的使用。
代码
了解 FSDP¶FSDP 入门教程本教程演示了如何在 MNIST 数据集上使用 FSDP 执行分布式训练。
代码
FSDP 高级教程在本教程中,您将学习如何使用 FSDP 对 HuggingFace (HF) T5 模型进行微调,以进行文本摘要。
代码
了解张量并行 (TP)¶使用张量并行 (TP) 训练大型 Transformer 模型本教程演示了如何使用张量并行和完全分片数据并行在数百到数千个 GPU 上训练大型 Transformer 模型。
代码
了解 DeviceMesh¶DeviceMesh 入门教程在本教程中,您将了解 DeviceMesh 及其如何帮助分布式训练。
代码
了解 RPC¶分布式 RPC 框架入门教程本教程演示了如何开始使用基于 RPC 的分布式训练。
代码
使用分布式 RPC 框架实现参数服务器本教程将引导您完成使用 PyTorch 分布式 RPC 框架实现参数服务器的简单示例。
代码
使用异步执行实现批处理 RPC 处理在本教程中,您将使用 @rpc.functions.async_execution 装饰器构建批处理 RPC 应用程序。
代码
将分布式数据并行与分布式 RPC 框架结合使用在本教程中,您将学习如何将分布式数据并行与分布式模型并行结合使用。
代码
自定义扩展¶使用 Cpp 扩展自定义进程组后端在本教程中,您将学习如何实现自定义的 ProcessGroup 后端,并使用 cpp 扩展将其插入 PyTorch 分布式包中。
代码