Pipeline Parallelism
了解流水线并行(pipeline parallelism)如何跨 GPU 分割深度学习模型。学习如何预防内存不足错误并优化分布式训练。
流水线并行是一种高级的分布式训练技术,旨在通过沿模型深度方向切分,将大型神经网络 (NN) 划分到多个计算设备(如 GPU)上。当现代架构的模型权重和优化器状态超出单个加速器的内存限制时,工程师会把网络的顺序层拆分为“阶段”。例如,前 10 层可以放在 GPU 0 上,而随后的 10 层放在 GPU 1 上。在前向传播期间,数据从一个设备流向下一个设备。通过将这些设备串联起来,研究人员能够训练庞大的深度学习 (DL) 算法,而不会遇到硬件限制的内存溢出错误。
流水线并行是如何工作的#
在设备间简单划分层的朴素实现会导致被称为“流水线气泡”的严重低效问题。由于层是顺序处理的,当 GPU 0 处理初始层时,GPU 1 完全处于闲置状态。为了最大化硬件利用率,现代流水线调度程序将全局批次大小划分为更小的“微批次”。
GPU 0 不用等待整个批次完成,而是一旦将第一个微批次传递给 GPU 1,就会立即开始处理第二个微批次。Microsoft DeepSpeed 和 PyTorch Distributed Pipelining API 等工具通常使用 1F1B(一次前向,一次反向)调度策略。这种方法并发交替计算不同微批次的前向和反向传播,显著减少了流水线气泡和内存消耗。2024 年和 2025 年的最新进展甚至引入了零气泡流水线并行,这是一种感知优化器的权重预测策略,几乎消除了计算集群中的空闲时间。
区分相关并行技术#
流水线并行在更广泛的分布式计算策略生态系统中运行。了解它们之间的差异对于有效扩展 AI 模型至关重要:
- 模型并行: 这是跨设备拆分模型的总称。流水线并行是模型并行的一种高度具体形式,按深度顺序对架构进行分区。
- 张量并行: 与流水线并行的深度切分不同,张量并行在 GPU 之间水平分片单个矩阵运算。这两种技术经常结合使用以最大化吞吐量。
- 数据并行: 数据并行在每个 GPU 上复制整个模型并在它们之间分发训练数据。对于像 Ultralytics YOLO26 模型这样原生适合单个设备显存的紧凑、高度优化的目标检测和图像分割架构,通过 PyTorch 的 DistributedDataParallel (DDP) 进行数据并行是加速训练的首选方法。
AI 和 ML 中的实际应用#
扩展复杂的基础设施对于构建现代最先进的 AI 系统至关重要:
- 训练基础模型: 开发巨大的大型语言模型 (LLM) 和诸如 Meta 的 Llama 3 等基础模型需要结合张量、数据和流水线并行。NVIDIA Megatron-LM 等框架利用这些策略,在 AWS SageMaker 等云平台上的数千个 GPU 之间训练海量的混合专家模型 (MoE) 架构。
- 高分辨率医学诊断: 在医疗 AI 和科学建模中,3D 体积扫描通常会产生对于单个加速器而言过于庞大的激活值。跨节点对网络层进行流水线化处理使研究医院能够在巨大的 MRI 数据集上训练深度网络,而不会降低图像分辨率。
代码示例:层分区的概念#
从历史上看,跨设备分发层需要复杂、定制的代码。今天,基本逻辑将特定的层映射到不同的设备标识符。以下是网络阶段如何在 PyTorch 中跨设备拆分的直观表示,为流水线并行操作奠定了基础:
import torch.nn as nn
class SimplePipelineModel(nn.Module):
def __init__(self):
super().__init__()
# Stage 1 is assigned to the first GPU
self.stage1 = nn.Sequential(nn.Linear(1024, 1024), nn.ReLU()).to("cuda:0")
# Stage 2 is assigned to the second GPU
self.stage2 = nn.Sequential(nn.Linear(1024, 1024), nn.ReLU()).to("cuda:1")
def forward(self, x):
# The forward pass seamlessly crosses device boundaries
x_out = self.stage1(x.to("cuda:0"))
return self.stage2(x_out.to("cuda:1"))虽然创建基础模型需要复杂的编排,但部署快速且可扩展的计算机视觉 (CV) 项目通常更简单。为了实现简化的模型部署和自动的多 GPU 利用率,开发者信赖 Ultralytics Platform 来自动扩展工作负载。借助强大的模型训练技巧,该平台抽象掉了基础设施管理,使工程师能够完全专注于构建能够进行实时推理的准确 AI 解决方案。






