繁体   English   中英

Sagemaker - 分布式训练

[英]Sagemaker - Distributed training

当未明确指定分布式训练时,我找不到有关 Sagemaker 行为的文档。

具体来说,

  1. 当通过 distribution='dataparallel' 使用 SageMaker 分布式数据并行时,记录 state 每个实例处理不同批次的数据。
from sagemaker.tensorflow import TensorFlow

estimator = TensorFlow(
    role=role,
    py_version="py37",
    framework_version="2.4.1",
    # For training with multinode distributed training, set this count. Example: 2
    instance_count=4,
    instance_type="ml.p3.16xlarge",
    sagemaker_session=sagemaker_session,
    # Training using SMDataParallel Distributed Training Framework
    distribution={"smdistributed": {"dataparallel": {"enabled": True}}},
)
  1. 我不确定当未指定分布参数但 instance_count > 1 时会发生什么,如下所示
estimator = TensorFlow(
    py_version="py3",
    entry_point="mnist.py",
    role=role,
    framework_version="1.12.0",
    instance_count=4,
    instance_type="ml.m4.xlarge",
)

谢谢!

训练代码中,初始化 smdataparallel 时会出现运行时错误 - RuntimeError: smdistributed.dataparallel cannot be used outside smddprun for distributed training launch。

您在估算器 select 中传递的分布参数是合适的跑步者

“我不确定当未指定分布参数但 instance_count > 1 时会发生什么,如下所示” -> SageMaker 将在 4 台机器上运行您的代码。 除非您有专门为分布式计算构建的代码,否则这是无用的(简单复制)。

它在以下情况下变得非常有趣:

  • 您解析资源配置(resourceconfig.json 或通过 env 变量),以便每台机器都知道它在集群中的排名,并且您可以编写自定义的任意分布式事物
  • 如果您在ShardedByS3Key的输入上运行相同的代码,您的代码将在均匀分布在机器上的 S3 数据的不同部分上运行。 这使得 SageMaker Training/Estimators 成为运行任意无共享分布式任务(例如文件转换和批量推理)的好地方。

将机器集群在一起还允许您启动开源分布式培训软件,如 PyTorch DDP

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM