分布式 (Distributed)#
分布式训练是一种模型训练范式,它将训练工作负载分散到多个工作节点上,从而显著提高训练速度和模型精度。虽然分布式训练可用于任何类型的机器学习模型训练,但它对于大型模型和深度学习等计算密集型任务最为有效。
在 PyTorch 中有几种执行分布式训练的方法,每种方法在特定的使用场景下都有其优势:
阅读分布式概述 (Distributed Overview)以了解有关这些选项的更多信息。
学习 DDP#
一系列分步视频教程,介绍如何开始使用 DistributedDataParallel 并进阶到更复杂的主题
本教程提供了关于 PyTorch DistributedDataParallel 的简短且易懂的介绍。
本教程介绍了 Join 上下文管理器,并演示了其在 DistributedDataParallel 中的使用。
学习 FSDP2#
本教程演示了如何使用 FSDP2 在 Transformer 模型上执行分布式训练
学习张量并行 (TP)#
本教程演示了如何使用张量并行和完全分片数据并行,在数百到数千个 GPU 上训练大型 Transformer 类模型。
学习 DeviceMesh#
在本教程中,您将了解 DeviceMesh 以及它如何助力分布式训练。
学习 RPC#
本教程演示了如何开始使用基于 RPC 的分布式训练。
本教程通过一个简单的示例,引导您使用 PyTorch 的分布式 RPC 框架实现参数服务器。
在本教程中,您将使用 @rpc.functions.async_execution 装饰器构建批处理 RPC 应用程序。
在本教程中,您将学习如何将分布式数据并行与分布式模型并行相结合。
学习 Monarch#
学习如何使用 Monarch 的 Actor 框架
自定义扩展#
在本教程中,您将学习如何实现一个自定义的 ProcessGroup 后端,并使用 C++ 扩展将其插入到 PyTorch 分布式包中。