模型并行性介绍 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

模型并行性介绍

并行模型是在多个设备或节点(如配备 GPU 的实例)之间拆分模型,并创建一个高效的管道来跨这些设备训练模型以最大限度地提高 GPU 利用率的过程。

使用本页上的各节可以了解有关模型并行性的详细信息,包括如何使用它来克服训练大型 ML 模型时出现的问题,以及将其集成到 ML 训练脚本中时的重要注意事项。

什么是模型并行性?

增加深度学习模型大小(图层和参数)可以提高准确度,但对于可以在单个 GPU 中适合的最大模型大小有限制。在训练深度学习模型时,GPU 内存限制可能在以下方面成为瓶颈:

  • 它们可以限制您训练的模型的大小。鉴于较大的模型倾向于获得更高的精度,这直接转化为训练有素的模型精度。

  • 它们可以限制您训练的批量大小,从而降低 GPU 利用率和减慢训练速度。

要克服与在单个 GPU 上训练模型相关的限制,可以使用模型并行机制在多个计算设备上分发和训练模型。

使用模型并行度时的重要注意事项

使用模型并行度时,必须考虑以下事项:

  • 如何跨设备拆分模型:模型的计算图、模型参数和激活的大小以及资源约束(例如,时间与内存)决定了最佳分区策略。

    为了减少高效拆分模型所需的时间和精力,您可以使用 Amazon SageMaker 的分布式模型并行库提供的自动模型拆分功能。

  • 实现并行化:模型训练(即正向计算和向后传播)本质上是顺序的,其中每个操作必须等待其输入由另一个操作计算。因此,深度学习训练的前向和后向传递阶段并不容易并行,天真地将模型分割到多个 GPU 可能会导致设备利用率低下。例如,GPU 上的图层i+1必须等待 GPU 上的图层的输出i,因此 GPUi+1在此等待期间仍处于空闲状态。

    模型并行库通过构建一个高效的计算计划来实现真正的并行化,不同的设备可以同时对不同的数据采样进行正向和向后传递。

要了解如何在培训期间使用库高效地分割模型并提高设备利用率,请参阅SageMaker 分布式并行模型的核心特征.