分布式训练
通过分布式训练加速 AI 训练!了解如何减少训练时间、扩展模型以及优化复杂 ML 项目的资源。
分布式训练是 机器学习 (ML) 中使用的一种技术,它通过将计算工作负载分配到多个处理器来加速模型训练过程。这些处理器通常是图形处理单元 (GPU),可以位于单台机器上,也可以分布在网络中的多台机器上。随着数据集越来越大,深度学习模型变得越来越复杂,在单个处理器上进行训练可能需要大量时间。分布式训练解决了这个瓶颈,使得在合理的时间范围内开发最先进的 AI 模型成为可能。
分布式训练如何工作?
分布式训练策略主要分为两类,也可以组合使用:
- 数据并行:这是最常用的方法。在这种策略中,整个模型在每个worker(或GPU)上复制。主要的训练数据集被分成更小的块,并且每个worker被分配一个块。每个worker独立地计算其数据子集的前向和后向传递,以生成梯度。然后,这些梯度被聚合和平均,通常通过诸如All-Reduce之类的过程,并且合并的梯度用于更新所有worker上的模型参数。这确保了模型的每个副本保持同步。
- 模型并行: 当模型太大而无法放入单个GPU的内存中时,会使用此策略。 在这里,模型本身被分区,不同的层或部分放置在不同的worker上。 数据在worker之间传递,因为它流经神经网络的各层。 由于worker之间的高通信需求,这种方法实现起来更加复杂,但对于训练像基础模型这样的大规模模型至关重要。 像混合专家模型(MoE)这样的架构在很大程度上依赖于模型并行。
实际应用
分布式训练是许多现代人工智能突破的基础。
- 训练大规模视觉模型:开发高级计算机视觉模型的公司,例如 Ultralytics YOLO11,通常使用像 COCO 或 ImageNet 这样的大型数据集。使用数据并行性,他们可以将训练分布在 GPU 集群上。这大大缩短了训练时间,从几周缩短到几天甚至几小时,从而可以更快地迭代、更广泛地超参数调整,并最终获得具有更高准确性的模型。
- 开发大型语言模型(LLM): 如果没有分布式训练,像GPT系列中的LLM的创建是不可能的。这些模型包含数千亿个参数,无法在单个设备上进行训练。研究人员使用混合方法,结合模型并行性(将模型拆分到多个GPU上)和数据并行性(高效处理大量文本数据)。这是像NVIDIA的Megatron-LM这样的项目的核心组成部分。
分布式训练 vs. 相关概念
区分分布式训练和其他相关术语非常重要:
- 联邦学习:虽然两者都涉及多个设备,但它们的目标和约束条件不同。分布式训练通常在受控环境中执行,例如具有高速连接的数据中心,以加速单个实体的训练。相比之下,联邦学习 在去中心化的设备(例如,智能手机)上训练模型,而无需将私人数据移动到中央服务器。联邦学习的主要重点是数据隐私,而对于分布式训练,则是速度和规模。
- 边缘 AI:这些术语指的是机器学习生命周期的不同阶段。分布式训练是训练阶段的一部分。边缘 AI 涉及部署阶段,在该阶段,优化的模型直接在本地(通常是资源受限的)设备(如相机或汽车的板载计算机)上运行推理。使用分布式方法训练的模型可以为 边缘 AI 部署 做好准备。
工具与实现
各种工具和平台促进了分布式训练的实施: