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