Distributed Training
探索分布式训练如何跨多个 GPU 扩展 AI 工作负载。学习使用 DDP 加速 Ultralytics YOLO26 训练,以更快、更准确地获得结果。
分布式训练是一种机器学习方法,它将训练模型的工作负载分配到多个处理器或机器上。这种方法对于处理大规模数据集和复杂的神经网络架构至关重要,否则在单台设备上训练这些模型将耗费不可行的时间。通过利用多个 GPU (Graphics Processing Units) 或 TPU 的协同计算能力,分布式训练显著加速了开发周期,使研究人员和工程师能够更快地进行迭代,并使模型获得更高的 精度 (accuracy)。
Link to this section分布式训练的工作原理#
分布式训练的核心思想是并行化。任务不再是在单个芯片上按顺序处理数据,而是被分成更小的块同时进行处理。实现这一目标主要有两种策略:
- 数据并行 (Data Parallelism): 这是处理 目标检测 (object detection) 等任务时最常用的方法。在这种设置中,每个设备上都放置一个完整模型的副本。全局 训练数据 (training data) 被拆分成较小的批次,每个设备同时处理不同的批次。在每一步之后,梯度(对模型的更新)会在所有设备之间进行同步,以确保 模型权重 (model weights) 保持一致。
- 模型并行 (Model Parallelism): 当 神经网络 (NN) 过大而无法装入单个 GPU 的内存时,模型本身会被拆分到多个设备上。模型的不同层或组件驻留在不同的芯片上,数据在它们之间流动。这对于训练大型 基础模型 (foundation model) 和 大语言模型 (LLMs) 通常是必需的。
Link to this section实际应用#
分布式训练通过使解决以前在计算上不可行的问题成为可能,从而改变了各个行业。
- 自动驾驶: 开发安全的 自动驾驶车辆 (autonomous vehicles) 需要分析 PB 级的视频和传感器数据。汽车工程师使用大型分布式集群来训练视觉模型,以实现实时 语义分割 (semantic segmentation) 和车道检测。这种大规模扩展确保了 汽车 AI (AI in automotive) 系统能够可靠地应对各种路况。
- 医学影像: 在医疗领域,分析如 MRI 等高分辨率 3D 扫描需要巨大的内存和处理能力。分布式训练使研究人员能够构建用于 肿瘤检测 (tumor detection) 及其他关键任务的高性能诊断工具。通过使用 NVIDIA MONAI 等框架,医院可以在不触及内存瓶颈的情况下对多样化的数据集进行模型训练,从而改善 医疗 AI (AI in healthcare) 的成果。
Link to this section利用 Ultralytics 进行分布式训练#
ultralytics 库使得实现分布式数据并行 (DDP) 训练变得简单直观。你可以通过在训练参数中指定设备索引,轻松地在多个 GPU 上扩展先进的 YOLO26 模型训练。
from ultralytics import YOLO
# Load a pre-trained YOLO26 model
model = YOLO("yolo26n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles the DDP communication backend
results = model.train(data="coco8.yaml", epochs=100, device=[0, 1])Link to this section相关概念与比较#
将分布式训练与机器学习生态系统中的类似术语区分开来,有助于理解它们各自的作用:
- 与联邦学习 (Federated Learning) 的区别: 虽然两者都涉及多台设备,但其目标不同。分布式训练通常将数据集中在高性能集群中,以最大限度地提高速度。相比之下,联邦学习 (federated learning) 将数据保持在用户设备(如智能手机)上分散存储,以优先考虑 数据隐私 (data privacy),在原始数据不离开源端的情况下更新全局模型。
- 与高性能计算 (HPC) 的区别: HPC 是一个广泛的领域,包括用于天气预报等科学模拟的超级计算。分布式训练是 HPC 应用于深度学习中 优化算法 (optimization algorithms) 的一个特定应用。它通常依赖于 NVIDIA NCCL 等专门的通信库,以尽量减少 GPU 之间的延迟。
Link to this section利用云平台进行扩展#
管理分布式训练的基础设施可能很复杂。现代平台通过提供托管环境简化了这一过程。例如,Ultralytics Platform 允许用户管理数据集并启动可以部署到云环境或本地集群的训练任务。这种集成简化了从 数据标注 (data annotation) 到最终 模型部署 (model deployment) 的工作流程,确保了扩展到多个 GPU 的过程尽可能无缝。同样,Google Cloud Vertex AI 和 Amazon SageMaker 等云提供商也为在企业规模下运行分布式训练作业提供了强大的基础设施。






