Pipeline Parallelism
了解流水线并行如何将深度学习模型分布到多个 GPU 上。学习如何避免内存不足错误并优化分布式训练。
流水线并行是一种先进的分布式训练技术,旨在通过按深度拆分模型,将大型神经网络(NN)划分到多个计算设备(例如GPU)上。当现代架构的模型权重和优化器状态超出单个加速器的内存限制时,工程师会将网络的顺序层拆分为多个“阶段”。例如,前 10 层可以位于 GPU 0 上,后续 10 层位于 GPU 1 上。在前向传播期间,数据会从一个设备流向下一个设备。通过将这些设备串联起来,研究人员可以训练大规模深度学习(DL)算法,同时避免遇到受硬件限制的内存不足错误。
流水线并行的工作原理#
将层划分到不同设备上的朴素实现会导致严重的低效问题,这种问题称为“流水线气泡”。由于各层按顺序处理,GPU 0 处理初始层时,GPU 1 会完全处于空闲状态。为了最大限度地提高硬件利用率,现代流水线调度器会将全局批次大小划分为更小的“微批次”。
GPU 0 无需等待整个批次完成,而是在将第一个微批次传递给 GPU 1 后,立即开始处理第二个微批次。Microsoft DeepSpeed和PyTorch 分布式流水线 API等工具通常使用1F1B(一次前向传播,一次反向传播)调度策略。这种方法会并发地交替计算不同微批次的前向传播和反向传播,从而显著减少流水线气泡和内存占用。2024 年和 2025 年的最新进展甚至引入了零气泡流水线并行,这是一种感知优化器的权重预测策略,几乎可以消除计算集群中的空闲时间。
区分相关的并行技术#
流水线并行属于分布式计算策略的更大生态系统。了解它们之间的差异对于有效扩展 AI 模型至关重要:
- **模型并行:**这是将模型拆分到多个设备上的统称。流水线并行是模型并行的一种高度特化形式,按架构深度以顺序方式进行划分。
- **张量并行:**与流水线并行按深度进行拆分不同,张量并行会将单个矩阵运算沿水平方向分片到多个 GPU 上。这两种技术经常结合使用,以最大限度地提高吞吐量。
- **数据并行:**数据并行会在每个 GPU 上复制完整模型,并在各个 GPU 之间分配训练数据。对于像Ultralytics YOLO26这样的紧凑型、高度优化的目标检测和图像分割架构(其原生即可装入单个设备的 VRAM),通过 PyTorch 的 DistributedDataParallel(DDP)实现的数据并行是加速训练的首选方法。
AI 和 ML 的实际应用#
扩展复杂的基础设施对于构建现代最先进的 AI 系统至关重要:
- **训练基础模型:**开发大型大语言模型(LLMs)和 Meta 的 Llama 3 等基础模型,需要结合张量并行、数据并行和流水线并行。NVIDIA Megatron-LM等框架利用这些策略,在AWS SageMaker等云平台上跨数千个 GPU 训练大规模混合专家(MoE)架构。
- **高分辨率医学诊断:**在医疗领域的 AI和科学建模中,三维体积扫描通常会产生对单个加速器而言过于庞大的激活值。将网络层通过流水线分布到多个节点上,可以让研究型医院在不牺牲图像分辨率的情况下,使用海量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 解决方案,实现实时推理。









