分布式和并行训练教程¶
Created On: Oct 04, 2022 | Last Updated: Oct 31, 2024 | Last Verified: Nov 05, 2024
分布式训练是一种模型训练模式,通过将训练工作负载分散到多个工作节点上,从而显著提高训练速度和模型精度。虽然分布式训练可以用于任何类型的机器学习模型训练,但对于大模型和计算密集型任务(如深度学习)最为有效。
在 PyTorch 中有几种方法可以进行分布式训练,每种方法在特定使用场景都有其优势:
在 分布式概览 中了解更多关于这些选项的内容。
学习 DDP¶
逐步视频系列,教你如何从 分布式数据并行 (DistributedDataParallel) 入门并深入到更复杂的主题
本教程为 PyTorch 分布式数据并行 (DistributedDataParallel) 提供简短且易懂的入门介绍。
本教程描述了 Join 上下文管理器的功能并展示了其在分布式数据并行中的应用。
学习 FSDP¶
本教程展示了如何在 MNIST 数据集上使用 FSDP 进行分布式训练。
在本教程中,你将学习如何使用 FSDP 微调一个用于文本摘要的 HuggingFace (HF) T5 模型。
学习张量并行 (TP)¶
本教程展示了如何在数百到数千个 GPU 上使用张量并行和完全分片数据并行 (FSDP) 训练一个大型类似 Transformer 的模型。
学习设备网格 (DeviceMesh)¶
在本教程中,你将学习关于 设备网格 (DeviceMesh) 的知识以及它如何帮助进行分布式训练。
学习 RPC¶
本教程演示了如何使用基于 RPC 的分布式训练入门。
本教程通过一个简单的示例介绍了如何使用 PyTorch 的分布式 RPC 框架实现一个参数服务器。
在本教程中,您将通过 @rpc.functions.async_execution 装饰器构建批量处理 RPC 应用程序。
在本教程中,您将学习如何将分布式数据并行与分布式模型并行相结合。
自定义扩展¶
在本教程中,您将学习实现一个自定义的 ProcessGroup 后端,并将其通过 cpp 扩展集成到 PyTorch 分布式包中。