深圳Yolo 视觉
深圳
立即加入
词汇表

分布式训练

探索分布式训练如何在多个GPU上扩展AI工作负载。学习如何使用DDP加速Ultralytics YOLO26训练,以获得更快、更准确的结果。

分布式训练是机器学习中的一种方法,它将模型训练的工作负载分配到多个处理器或机器上。这种方法对于处理大规模数据集和复杂的神经网络架构至关重要,否则在单个设备上训练将耗费不切实际的时间。通过利用多个图形处理单元 (GPU)TPU的组合计算能力,分布式训练显著加速了开发周期,使研究人员和工程师能够更快地迭代并实现模型更高的准确性

分布式训练的工作原理

分布式训练的核心思想是并行化。任务不是在单个芯片上顺序处理数据,而是被分成更小的块,同时进行处理。实现这一目标主要有两种策略:

  • 数据并行这是目标检测等任务最常见的方法。在此设置中,整个模型的副本放置在每个设备上。全局训练数据被分割成更小的批次,每个设备同时处理不同的批次。在每一步之后,梯度(模型更新)在所有设备之间同步,以确保模型权重保持一致。
  • 模型并行:神经网络 (NN) 过大而无法放入单个 GPU 的内存中时,模型本身会被拆分到多个设备上。模型的不同层或组件驻留在不同的芯片上,数据在它们之间流动。这对于训练大型 基础模型大型语言模型 (LLM) 通常是必要的。

实际应用

分布式训练通过解决以前计算上不可行的问题,改变了各个行业。

  • 自动驾驶:开发安全的自动驾驶汽车需要分析PB级的视频和传感器数据。汽车工程师使用大型分布式集群来训练视觉模型,以实现实时semantic segmentation和车道检测。这种大规模确保了汽车AI系统能够可靠地应对各种路况。
  • 医学影像:在医疗保健领域,分析高分辨率3D扫描(如MRI)需要大量的内存和处理能力。分布式训练使研究人员能够构建高性能诊断工具,用于 肿瘤 detect 和其他关键任务。通过使用 NVIDIA MONAI 等框架,医院可以在多样化数据集上训练模型,而不会遇到内存瓶颈,从而改善 医疗保健中的人工智能 成果。

利用 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 AIAmazon SageMaker等云服务提供商为运行企业级分布式训练任务提供了强大的基础设施。

让我们一起共建AI的未来!

开启您的机器学习未来之旅