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

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

模型并行度简介

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

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

什么是模型并行度?

增加深度学习模型大小(层和参数)可以提高准确性,但您可以放入单个 GPU 的最大模型大小存在限制。在训练深度学习模型时,GPU 内存限制可能是以下瓶颈:

  • 它们可以限制您训练的模型的大小。假定较大的模型往往实现更高的准确性,这会直接转换为训练后的模型准确性。

  • 它们可以限制您训练的批处理大小,从而降低 GPU 使用率并降低训练速度。

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

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

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

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

    要减少高效拆分模型所需的时间和工作量,您可以使用由 Amazon SageMaker的分布式模型并行库提供的自动模型拆分功能。

  • 实现并行化:模型训练 (即,正向计算和向后传播) 本身是顺序的,其中每个操作必须等待另一个操作计算其输入。因此,深度学习训练的前向和后向传递阶段不可轻松并行,而且将模型拆分到多个 GPUs 可能会导致设备利用率下降。例如,GPU 上的某个层i+1必须等待 GPU 上的某个层的输出i,因此 GPU 在此等待期内i+1保持空闲状态。

    模型并行库可以通过实施管道执行来实现真正的并行化,方法是构建一个高效的计算计划,其中,不同的设备可以同时处理不同数据样本的向前和向后传递。

要了解如何使用 库跨设备高效拆分模型并提高训练期间的设备利用率,请参阅SageMaker 分布式模型的核心功能并行