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

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

模型并行简介

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

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

什么是模型并行性?

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

  • 他们可以限制你训练的模型的大小。鉴于较大的模型往往实现更高的准确度,这直接转化为训练的模型准确度。

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

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

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

使用模型并行机制时,必须考虑以下几点:

  • 你如何在不同设备之间拆分模型:模型的计算图、模型参数和激活的大小以及资源限制(例如时间与内存)决定了最佳的分区策略。

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

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

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

要了解如何使用库在训练期间有效地在各种设备之间拆分模型并提高设备利用率,请参阅SageMaker 模型并行库的核心功能.