数据并行库常见问题 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

数据并行库常见问题

使用以下内容可查找有关 SageMaker 数据并行机制库的常见问题的答案。

Q: 使用库时,allreduce-支持 CPU 实例管理? 我是否必须创建异构 CPU-GPU 群集,或者 SageMaker 服务是否为使用该库的作业创建额外的 C5?

库使用可用于 GPU 实例的 CPU。不会启动额外的 C5 或 CPU 实例;如果您的 SageMaker 培训作业是 8 节点ml.p3dn.24xlarge群集,只有 8ml.p3dn.24xlarge实例。没有预配置其他实例。 

Q: 我有一个培训工作需要 5 天在一个ml.p3.24xlarge实例,具有一组超参数 H1(学习速率,批处理大小,优化程序等)。启用 SDP 并使用 5 倍大的集群是否足以实现大约 5 倍的加速? 或者在启用 SDP 后,我必须重新访问其培训超参数?

启用库将更改整个批处理大小。新的整体批次大小将根据所使用的训练实例数线性缩放。因此,必须更改学习率等超参数,以确保收敛。

Q: 图书馆是否支持竞价?

是。您可以使用托管的 Spot 训练。您可以在 SageMaker 培训作业中指定检查点文件的路径。您可以在其训练脚本中启用保存和恢复检查点,如脚本修改概述.

Q: 库的平衡融合缓冲区和 PyTorch 分布式数据并行(DDP)“渐变桶” 之间有什么区别?

主要区别在于 DDP 的融合缓冲区用于AllReduce,库的平衡融合缓冲区用于参数服务器样式同步。该库是在基于参数服务器的梯度同步中对融合缓冲区进行分片的第一个框架。 

PyTorch DDP 文档:“为了提高沟通效率,Reducer将参数渐变组织到存储桶中,并一次减少一个存储桶。存储桶大小可以通过设置bucket_cap_mb参数中的 DDP 构造函数。从参数梯度到存储桶的映射是在施工时根据桶大小限制和参数大小确定的。模型参数被分配到桶中(大致)Model.parameters()从给定的模型。之所以使用相反顺序是因为 DDP 希望在向后传递期间以大约该顺序就绪渐变。”

Q: 库是否适用于单主机、多设备设置?

该库可以与单主机、多设备配合使用。但是,在两个或多个节点中,库的AllReduce操作可显著提高性能。此外,在单个主机上,NVLink 已经有助于节点内AllReduce效率。

Q: 库可以与 PyTorch 闪电一起使用吗?

否。 但是,使用该库的 PyTorch DDP,您可以编写自定义 DDP 来实现功能。

Q: 训练数据集应存储在何处?

训练数据集可存储在 Amazon S3 存储桶或 Amazon FSX 驱动器上。请参阅此文档,用于培训作业的各种支持输入文件系统.

Q: 当使用库时,是否必须在 FSx for Lustre 中拥有训练数据? 是否可以使用亚马逊 EFS 和 Amazon S3?

我们建议您使用 Amazon FSX 来缩短开始培训的时间。这不是强制性的。

Q: 库可以与 CPU 节点一起使用吗?

否。 该库支持ml.p3.16xlargeml.p3dn.24xlarge, 和ml.p4d.24xlarge实例。

Q: 库在启动时当前支持哪些框架和框架版本?

库目前支持 PyTorch v1.6.0 或更高版本和张量流 v2.3.0 或更高版本。它不支持张量流 1.x。有关哪个版本的库被打包在Amazon深度学习容器,请参阅Deep Learning Containers 的发行说明.

Q: 库是否支持 AMP?

是的,SageMaker 的分布式数据并行机制库支持开箱即用的自动混合精度 (AMP)。除了对训练脚本进行框架级修改之外,无需额外操作即可启用 AMP。如果渐变位于 FP16 中,则 SageMaker 数据并行度库会运行其AllReduce在 FP16 中的操作。有关将 AMP API 实施到训练脚本的更多信息,请参阅以下资源:

Q: 如何确定我的分布式培训作业是否因 I/O 瓶颈而减慢?

对于较大的集群,训练作业需要更多的 I/O 吞吐量,因此训练吞吐量可能需要更长的时间(更长的时间)才能提升到最佳性能。这表明随着节点的扩展(吞吐量要求越高,网络拓扑越复杂),I/O 正处于瓶颈状态,缓存更难建立起来。有关在 CloudWatch 上监控 Amazon FSx 吞吐量的更多信息,请参阅监控 FSx for Lustre中的适用 FSx for Lustre 用户指南.

Q: 如何解决运行具有数据并行性的分布式培训作业时的 I/O 瓶颈?

如果您使用 Amazon S3,强烈建议您使用 Amazon FSX 作为数据通道。如果您已在使用 Amazon FSX,但仍然存在 I/O 瓶颈问题,您可能已将 Amazon FSX 文件系统设置为具有较低的 I/O 吞吐量和较小的存储容量。有关如何估算和选择正确的 I/O 吞吐容量大小的更多信息,请参阅使用 Amazon FSX 并设置最佳存储容量和吞吐量容量.