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