分布式和并行训练教程¶
创建于:2022 年 10 月 04 日 | 最后更新:2024 年 10 月 31 日 | 最后验证:2024 年 11 月 05 日
分布式训练是一种模型训练范例,涉及将训练工作负载分散到多个工作节点上,从而显着提高训练速度和模型准确性。虽然分布式训练可用于任何类型的 ML 模型训练,但对于大型模型和计算密集型任务(如深度学习)使用它最有益。
您可以通过几种方式在 PyTorch 中执行分布式训练,每种方法在某些用例中都有其优势
在分布式概述中阅读有关这些选项的更多信息。
学习 DDP¶
关于如何开始使用 DistributedDataParallel 并深入到更复杂主题的逐步视频系列
本教程提供 PyTorch DistributedDataParallel 的简短而温和的介绍。
本教程介绍了 Join 上下文管理器,并演示了其在 DistributedDataParallel 中的用法。
学习 FSDP¶
本教程演示了如何在 MNIST 数据集上使用 FSDP 执行分布式训练。
在本教程中,您将学习如何使用 FSDP 微调 HuggingFace (HF) T5 模型以进行文本摘要。
学习张量并行 (TP)¶
本教程演示了如何使用张量并行和全分片数据并行在数百到数千个 GPU 上训练大型 Transformer 类模型。
学习 DeviceMesh¶
在本教程中,您将了解 DeviceMesh 及其如何帮助进行分布式训练。
学习 RPC¶
本教程演示了如何开始使用基于 RPC 的分布式训练。
本教程将引导您完成一个使用 PyTorch 的分布式 RPC 框架实现参数服务器的简单示例。
在本教程中,您将使用 @rpc.functions.async_execution 装饰器构建批量处理 RPC 应用程序。
在本教程中,您将学习如何将分布式数据并行与分布式模型并行相结合。
自定义扩展¶
在本教程中,您将学习如何实现自定义 ProcessGroup 后端,并使用 cpp 扩展将其插入到 PyTorch 分布式包中。