Distributed Training
探索分布式训练如何跨多个 GPU 扩展 AI 工作负载。学习使用 DDP 加速 Ultralytics YOLO26 训练,以更快、更准确地获得结果。
分布式训练是机器学习中的一种方法,将训练模型的工作负载分摊到多个处理器或机器上。这种方法对于处理大规模数据集和复杂的神经网络架构至关重要,否则在单台设备上训练这些数据集和架构将花费不切实际的时间。通过利用多个Graphics Processing Units (GPUs)或 Tensor Processing Units (TPUs) 的组合计算能力,分布式训练显著加速了开发周期,使研究人员和工程师能够更快地迭代,并在模型中实现更高的accuracy。
分布式训练的工作原理#
分布式训练的核心思想是并行化。任务不再是在单个芯片上按顺序处理数据,而是被分成更小的块同时进行处理。实现这一目标主要有两种策略:
- **Data Parallelism:**这是object detection等任务中最常见的方法。在此设置中,整个模型的副本放置在每个设备上。全局training data被拆分为较小的批次,每个设备同时处理不同的批次。在每一步之后,梯度(对模型的更新)会在所有设备之间同步,以确保model weights保持一致。
- **Model Parallelism:**当neural network (NN)太大而无法放入单个 GPU 的内存中时,模型本身会被拆分到多个设备上。模型不同的层或组件驻留在不同的芯片上,数据在它们之间流动。这对于训练海量的foundation models和Large Language Models (LLMs)通常是必要的。
实际应用#
分布式训练通过使解决以前在计算上不可行的问题成为可能,从而改变了各个行业。
- **自动驾驶:**开发安全的autonomous vehicles需要分析 PB 级的视频和传感器数据。汽车工程师使用大型分布式集群来训练视觉模型,用于实时semantic segmentation和车道检测。这种庞大的规模确保了AI in automotive系统能够可靠地对各种道路状况做出反应。
- **医学影像:**在医疗保健领域,分析 MRI 等高分辨率 3D 扫描需要大量的内存和处理能力。分布式训练使研究人员能够构建高性能的诊断工具,用于tumor detection和其他关键任务。通过使用诸如NVIDIA MONAI之类的框架,医院可以在多样化的数据集上训练模型而不会遇到内存瓶颈,从而改善AI in healthcare的结果。
利用 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])相关概念与比较#
将分布式训练与机器学习生态系统中的类似术语区分开来,有助于理解它们各自的作用:
- **与联邦学习的对比:**虽然两者都涉及多个设备,但它们的目标不同。分布式训练通常将数据集中在高性能集群中以最大化速度。相比之下,federated learning将数据分散保存在用户设备(如智能手机)上,以优先考虑data privacy,在不让原始数据离开源头的情况下更新全局模型。
- **与高性能计算 (HPC) 的对比:**HPC 是一个广阔的领域,包括用于天气预报等科学模拟的超级计算。分布式训练是 HPC 在深度学习中的optimization algorithms上应用的一个具体实例。它通常依赖于专门的通信库(如NVIDIA NCCL)来最小化 GPU 之间的延迟。
利用云平台进行扩展#
管理分布式训练的基础设施可能很复杂。现代平台通过提供托管环境简化了这一点。例如,Ultralytics Platform允许用户管理数据集并启动可以部署到云环境或本地集群的训练运行。这种集成简化了从data annotation到最终model deployment的工作流,确保扩展到多个 GPU 尽可能无缝。同样,像Google Cloud Vertex AI和Amazon SageMaker这样的云服务提供商为在企业规模下运行分布式训练作业提供了强大的基础设施。






