Ultralytics YOLO27: 加入候补名单。
获取 YOLO 许可
返回 Ultralytics 术语表

Distributed Training

分布式训练通过数据并行、分片并行、张量并行或流水线并行,将模型训练分布到多块 GPU 或多台机器上。涵盖 DDP、FSDP 和扩展训练。

分布式训练将一个模型的训练工作分配到多个处理器上,通常是在一台机器中使用多个 GPU或 TPU,也可以跨云端或本地集群进行,从而缩短训练时间,或让原本无法装入单个设备内存的模型得以训练。设备会使用 NVIDIA NCCL 等通信库,通过高速互连交换梯度、激活值或参数分片。现代基础模型和大型语言模型都采用这种方式训练,它也能缩短多 GPU 工作站上的日常目标检测训练时间。

分布式训练的工作原理#

数据并行是最常见的策略。每个 GPU 都保存一份完整的模型副本,处理各自分配的训练数据批次切片,并参与全归约操作来计算梯度平均值,使每个副本应用相同的梯度下降更新。PyTorch 的 DistributedDataParallel (DDP)会将通信与反向传播重叠进行。全局批次大小等于每个 GPU 的批次大小乘以 GPU 数量,因此学习率通常也需要相应缩放:Goyal 等人使用线性缩放规则和预热阶段,在 256 个 GPU 上以 8,192 张图像的批次大小,在一小时内完成了 ImageNet上的 ResNet-50 训练;从 8 个 GPU 扩展到 256 个 GPU 时,扩展效率约为 90%。

分片数据并行可降低这些模型副本的内存开销。ZeRO和 PyTorch 的 Fully Sharded Data Parallel (FSDP)会将参数、梯度和优化器状态分散到多个 GPU 上,并且只在某一层进行计算时才汇集该层的完整权重,因此随着 GPU 数量增加,每个 GPU 所需的内存会减少。

模型并行会拆分神经网络本身。张量并行将单个矩阵乘法分配到多个 GPU 上,流水线并行将连续层分配给不同 GPU,并让微批次依次流经这些 GPU;上下文并行拆分长序列;专家并行则将混合专家模型中的专家分配到不同 GPU 上。Megatron-LM等框架会将这些方式与数据并行结合起来,训练拥有数千亿参数的模型。

多 GPU 训练实践#

通信是主要开销:全归约流量会随模型规模增长,因此节点内通过 NVLink 连接的 GPU 比通过较慢网络连接的节点更容易扩展。除非将批归一化层转换为同步批归一化,否则统计量会按 GPU 分别计算;当每块 GPU 分到的批次较小时,这一点很重要。Ultralytics YOLO26 通过 DDP 运行多 GPU 训练:传入多个设备 ID 时,会通过 torch.distributed.run 为每块 GPU 启动一个进程;CUDA 上使用 NCCL 后端,并将 batch 值平均分配到各块 GPU。

from ultralytics import YOLO

# 加载预训练的 YOLO26 模型
model = YOLO("yolo26n.pt")

# 使用 DDP 在 GPU 0 和 1 上训练;batch=32 表示每个 GPU 每步处理 16 张图像
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=32, device=[0, 1])

实际应用#

  • 大型语言模型:Meta 使用最多 16K 个 H100 GPU 训练了 Llama 3 405B,并结合张量、流水线、上下文和数据并行;其作者将这种方式称为 4D 并行。
  • 自动驾驶汽车:感知团队会使用车辆车队采集的大量摄像头、激光雷达和雷达录制数据来训练检测与分割模型,而这只有大型 GPU 集群才能做到。
  • 医学图像分析:高分辨率 3D CT 和 MRI 影像会耗尽单个 GPU 的内存,将批次或模型分片分散到多个 GPU 上,就能训练更大的影像和模型。
  • 联邦学习:联邦学习也会跨多个设备训练,但为了保护隐私,数据保留在手机、医院或其他客户端上,只有模型更新会传到中央服务器。分布式训练则将数据集中在一个集群中,以最大限度提高速度。
  • 拆分学习:拆分学习会在客户端和服务器之间拆分模型,确保原始数据不会离开客户端,以额外的通信开销换取隐私保护。
  • 梯度累积:梯度累积会先对多个小批次的梯度求和,再执行一次更新,从而在单个 GPU 上实现与大批次相同的计算结果,但需要更多时间;数据并行则会在多个 GPU 上同时计算这些批次。

探索解决方案

体育领域的计算机视觉

体育领域的计算机视觉

了解 Ultralytics YOLO 如何通过球员和球追踪、表现分析、教练洞察及运动员康复,推动体育视觉技术的发展。
了解详情
航空影像计算机视觉

航空影像计算机视觉

使用 Ultralytics YOLO 将无人机和航空影像转化为农业、水产养殖、保护工作和地理空间分析的实时洞察。
了解详情
航空航天中的计算机视觉

航空航天中的计算机视觉

使用 Ultralytics YOLO 将计算机视觉应用于航空航天领域,包括飞机检查、跑道 FOD 检测、机场地面作业和复合材料缺陷检测。
了解详情
安防领域的计算机视觉

安防领域的计算机视觉

使用 Ultralytics YOLO 模型守护每个场所。视觉 AI 可用于周界监控、威胁检测、车牌识别和工作场所安全。
了解详情
机器人领域的计算机视觉

机器人领域的计算机视觉

使用 Ultralytics YOLO 模型提升智能机器的能力。机器人领域的视觉 AI 可用于自主导航、感知、目标跟踪和实时控制。
了解详情
物流中的计算机视觉

物流中的计算机视觉

借助 Ultralytics YOLO 模型优化物流流程。视觉 AI 可用于包裹检查、分拣、车辆跟踪和仓库安全实时监控。
了解详情
零售中的计算机视觉

零售中的计算机视觉

借助 Ultralytics YOLO 模型重新构想零售。视觉 AI 可用于库存跟踪、货架监控、排队管理和更深入的客户洞察。
了解详情
医疗领域的计算机视觉

医疗领域的计算机视觉

借助 Ultralytics YOLO 模型构建医疗解决方案。医疗领域的视觉 AI 可加快医学影像处理、优化诊断并监测患者。
了解详情
制造业中的计算机视觉

制造业中的计算机视觉

利用 Ultralytics YOLO 模型优化制造流程。视觉 AI 可用于质量控制、缺陷检测、个人防护装备合规检查和装配线自动化。
了解详情
汽车领域的计算机视觉

汽车领域的计算机视觉

利用 Ultralytics YOLO 模型在汽车领域应用计算机视觉。视觉 AI 可提升道路安全、驾驶辅助和车辆自动化水平,让道路更智能。
了解详情
农业中的计算机视觉

农业中的计算机视觉

借助 Ultralytics YOLO 模型,将视觉 AI 引入智慧农业。为作物监测、牲畜追踪和精准农业提供支持,从而提高产量并实现更智能的生产。
了解详情

让我们携手构建 AI 的未来!

开启你的旅程,迎接机器学习的未来