返回 Ultralytics 术语表
Distributed Training
探索分布式训练如何跨多个 GPU 扩展 AI 工作负载。了解如何使用 DDP 加速 Ultralytics YOLO26 训练,以更快获得准确结果。
分布式训练是机器学习中的一种方法,它将模型训练的工作负载拆分到多个处理器或机器上。这种方法对于处理大规模数据集和复杂神经网络架构至关重要,否则这些任务在单台设备上训练将耗费不切实际的时间。通过利用多个图形处理单元 (GPUs)或张量处理单元 (TPUs)的综合计算能力,分布式训练显著加快了开发周期,使研究人员和工程师能够更快地迭代,并提高模型的准确率。
分布式训练的工作原理#
分布式训练的核心思想是并行化。任务不再由单个芯片按顺序处理,而是被拆分成更小的块并同时处理。实现这一目标主要有两种策略:
- **数据并行:**这是目标检测等任务最常用的方法。在这种设置中,每台设备上都会放置一份完整模型的副本。全局训练数据被拆分成更小的批次,每台设备同时处理不同的批次。每完成一个步骤,所有设备之间都会同步梯度(对模型的更新),以确保模型权重保持一致。
- **模型并行:**当神经网络 (NN)过大,无法装入单个 GPU 的内存时,模型本身会被拆分到多个设备上。模型的不同层或组件位于不同芯片上,数据则在它们之间流动。训练大型基础模型和大语言模型 (LLMs)时,通常需要采用这种方法。
实际应用#
分布式训练改变了众多行业,使解决以往在计算上不可行的问题成为可能。
- **自动驾驶:**开发安全的自动驾驶车辆需要分析 PB 级的视频和传感器数据。汽车工程师使用大型分布式集群来训练视觉模型,以实现实时语义分割和车道检测。这种庞大的规模确保汽车领域的 AI系统能够可靠地应对多样化的道路状况。
- **医学影像:**在医疗领域,分析 MRI 等高分辨率 3D 扫描需要大量内存和处理能力。分布式训练使研究人员能够构建用于肿瘤检测及其他关键任务的高性能诊断工具。通过使用NVIDIA MONAI等框架,医院可以在多样化的数据集上训练模型,而不会遇到内存瓶颈,从而改善医疗领域的 AI效果。
使用 Ultralytics 进行分布式训练#
ultralytics库使实现分布式数据并行 (DDP) 训练变得简单。你只需在训练参数中指定设备索引,就可以将最先进的YOLO26模型训练扩展到多个 GPU。
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])相关概念与比较#
要理解机器学习生态系统中相似术语的具体作用,区分分布式训练与这些术语会很有帮助:
- **与联邦学习对比:**虽然两者都涉及多个设备,但目标不同。分布式训练通常将数据集中在高性能集群中,以最大限度地提高速度。相比之下,联邦学习将数据分散保存在用户设备(如智能手机)上,以优先保障数据隐私,并在原始数据始终不离开源设备的情况下更新全局模型。
- **与高性能计算 (HPC) 对比:**HPC 是一个广泛的领域,包括用于天气预报等科学模拟的超级计算。分布式训练则是 HPC 在深度学习优化算法中的具体应用。它通常依赖NVIDIA NCCL等专用通信库,以最大限度地降低 GPU 之间的延迟。
借助云平台进行扩展#
管理分布式训练的基础设施可能很复杂。现代平台通过提供托管环境来简化这一过程。例如,Ultralytics Platform允许用户管理数据集并启动训练运行,这些训练运行可以部署到云环境或本地集群中。这种集成简化了从数据标注到最终模型部署的工作流程,确保扩展到多个 GPU 尽可能顺畅。同样,Google Cloud Vertex AI和Amazon SageMaker等云服务提供商也为以企业级规模运行分布式训练作业提供了强大的基础设施。









