分布式训练
通过分布式训练加速 AI 训练!了解如何减少训练时间、扩展模型以及优化复杂 ML 项目的资源。
分布式训练是机器学习(ML
分布式训练是机器学习(ML)中一种强大的技术,它通过将计算工作量分
模型创建过程。
图形处理器(GPU)或
Tensor 处理单元(TPU)。通过利用并发设备的综合能力--无论是位于单个工作站上的
开发人员可以大幅缩短训练复杂的
深度学习(DL)架构所需的时间。这种方法
这种方法对于处理海量数据集和开发最先进的
人工智能(AI)系统至关重要、
实现更快的迭代周期和更广泛的实验。
并行化核心战略
为有效分配工作量,工程师通常会采用两种主要策略之一或混合方法
以最大限度地提高效率:
-
数据并行:这是最常见的方法,适用于
对象检测。在这种设置中,每个设备上都有一份完整的
模型的完整副本。训练数据
训练数据被分成小块,每个设备同时处理不同的子集。
每个设备同时处理不同的子集。在
反向传播阶段,梯度是独立计算的
然后通过通信协议(如
消息传递接口 (MPI)等通信协议在所有设备上同步计算梯度,以一致地更新模型权重。
模型权重。
-
模型并行:当一个
神经网络 (NN)过大,无法容纳在单个 GPU 的内存中时
时,就需要模型并行GPU。模型的层或组件被划分到不同的设备上。
在不同的设备上。当数据通过网络时,会在不同设备间顺序或并发地流动。
这种技术对于训练大规模
基础模型和
大型语言模型 (LLM),在这些模型中
在这些模型中,参数数量可达数万亿,需要专门的工具(如
Microsoft DeepSpeed等专业工具来管理内存。
实际应用
分布式培训使各行业能够解决以前由于时间或内存限制而无法计算的问题。
或内存限制而无法计算的问题。
-
自动驾驶:开发可靠的自动驾驶汽车需要处理 PB 级的视频
和传感器数据。汽车公司使用大规模分布式集群来训练视觉模型,以进行实时
语义分割和物体跟踪。
通过在汽车工作流程中使用人工智能、
工程师可以快速迭代安全关键模型,从而提高性能。
-
医学影像:在
在医疗保健领域的人工智能中,分析高分辨率 3D
扫描(如 MRI 或 CT)需要大量计算资源。分布式训练允许研究人员
在各种符合隐私要求的数据集上训练高精度诊断模型、
符合隐私要求的数据集上训练高精度诊断模型。像
等框架通常依赖分布式技术
来高效处理这些复杂的医学图像。
利用YOLO实施分布式培训
"(《世界人权宣言》) ultralytics 库简化了分布式数据并行 (DDP) 训练的实施。您
可以轻松地扩展 YOLO11 模型跨
只需指定设备索引,就能在多个 GPU 上运行模型。
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Train the model using two GPUs (device 0 and 1)
# The library automatically handles DDP setup for parallel processing
results = model.train(data="coco8.yaml", epochs=5, device=[0, 1])
分布式训练 vs. 相关概念
必须将分布式训练与人工智能生态系统中的其他相关术语区分开来:
-
与联合学习:虽然两者都涉及多个设备,但其主要目标不同。
分布式训练通常将数据集中在高性能集群中,以最大限度地提高速度和吞吐量。相比之下
相反,联合学习将数据
分散在用户设备(如智能手机)上,以优先保护数据隐私。
数据隐私,聚合模型更新,而
原始数据永远不会离开源设备。
-
高性能计算(HPC):高性能计算(HPC)是一个广泛的领域,包括用于科学模拟(如天气预报)的超级计算。
科学模拟,如天气预报。分布式训练是高性能计算的一个具体应用,适用于
神经网络中的优化算法。
通常利用专门的通信库,如
NVIDIA ®)NCCL 等专业通信库,以减少 GPU 之间的延迟。
工具和生态系统
强大的开源工具和平台生态系统支持分布式培训的实施: