根据API参考,优化分布式训练数据接收的一种方法是使用ShardedByS3Key
。
是否有在分布式训练中使用ShardedByS3Key
的代码示例?具体来说,需要对PT的DistributedSampler
(是否应该使用它?(或TF的tf.data
-管道进行哪些更改?
根据"Sharded Data Parallelism":
标准数据并行技术复制训练状态跨数据并行组中的GPU,并执行梯度基于AllReduce操作的聚合。
然后,只需在TrainingInput的分发参数中保留默认模式FullyReplicated
,因为并行性不会在上游实例的数据划分级别发生,而是稍后在gpu上发生。
参见";如何将Sharded数据并行性应用于您的培训工作;或者完整的示例笔记本";使用SageMaker Model Parallelism Library中的Sharded Data Parallelis技术以近似线性缩放来训练GPT-2";。在最后一个示例中,它只显式地逐步设置参数。
例如,您必须在PyTorch(或TensorFlow(估计器上至少设置distribution
dict参数,以启用SageMaker分布式数据并行性:
{ "smdistributed": { "dataparallel": { "enabled": True } } }