如果想用epl多机训练,如何指定是哪两台机器?[阿里云机器学习PAI]

想请教一下,如果想用epl多机训练,根据example使用 epl-launch –num_workers 2 –gpu_per_worker 1 scripts/train_split.sh 如何指定是哪两台机器?

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
3 条回复 A 作者 M 管理员
  1. 在阿里云机器学习平台(Machine Learning Platform for AI,简称PAI)中,使用 EAS(Elastic Algorithm Service)进行多机训练时,可以通过 epl.start() 函数的参数来指定使用哪两台机器进行训练。

    epl.start() 是 EAS 提供的启动多机训练的函数,其中可以通过 –worker_gpus 参数来指定使用的 GPU 设备。可以通过传递参数值来指定使用哪两台机器的 GPU 进行训练。

    具体而言,可以在训练代码中调用 epl.start() 函数时,通过 –worker_gpus 参数来指定使用的 GPU 设备,例如:

    import epl# 指定使用第一台和第三台机器的第一块和第二块 GPU 进行训练epl.start(worker_gpus="0,1;2,3")# 在训练过程中使用对应的 GPU 设备# ...

    其中,worker_gpus 参数的取值格式为 “,;,“,表示使用 号机器的 号 GPU 和 号机器的 号 GPU 进行训练。

    具体的使用方式和参数取值可能因实际的硬件环境、训练代码和数据分布而有所不同,需要根据实际情况进行调整。同时,还需要考虑到多机训练中的模型参数同步和更新方式,以确保在分布式训练中的模型一致性和收敛性。可以参考阿里云 PAI 的文档和示例代码,以及深度学习框架的官方文档和示例代码,进行详细的实现和调试。

  2. 可以通过machine_list和machine rank来指定, 此回答整理自钉群“EPL用户交流群”

    • 如果想用epl多机训练,需要在提交训练任务时指定使用的机器列表。可以在提交训练任务时添加以下参数:
    {  "multi_machine": {    "worker": [      "worker_1",      "worker_2"    ]  }}

    其中,worker_1worker_2是你要指定的机器名称,可以是云服务器ECS实例也可以是阿里云PAI训练集群的节点名称。在训练任务启动后,PAI会根据指定的机器列表自动创建Elastic Parameter Servers以及Worker节点,进行epl多机训练。

  3. 首先,确保每台机器上都已经安装了epl。

    其次,使用epl-launch命令进行多机训练时,可以使用–hosts参数来指定要使用的主机列表。

    epl-launch --num_workers 2 --gpu_per_worker 1 --hosts 192.168.1.2,192.168.1.3 scripts/train_split.sh

    其中,–hosts参数后面跟着要使用的主机列表,多个主机之间用逗号分隔。在这个例子中,epl将会在192.168.1.2和192.168.1.3上启动两个worker进程,并且每个worker将会使用一个GPU进行训练。