想请教一下,如果想用epl多机训练,根据example使用 epl-launch --num_workers 2 --gpu_per_worker 1 scripts/train_split.sh 如何指定是哪两台机器?
在阿里云机器学习平台(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 参数的取值格式为 "<worker_index1>,<gpu_index1>;<worker_index2>,<gpu_index2>",表示使用 <worker_index1> 号机器的 <gpu_index1> 号 GPU 和 <worker_index2> 号机器的 <gpu_index2> 号 GPU 进行训练。
具体的使用方式和参数取值可能因实际的硬件环境、训练代码和数据分布而有所不同,需要根据实际情况进行调整。同时,还需要考虑到多机训练中的模型参数同步和更新方式,以确保在分布式训练中的模型一致性和收敛性。可以参考阿里云 PAI 的文档和示例代码,以及深度学习框架的官方文档和示例代码,进行详细的实现和调试。
{
"multi_machine": {
"worker": [
"worker_1",
"worker_2"
]
}
}
其中,
worker_1
和worker_2
是你要指定的机器名称,可以是云服务器ECS实例也可以是阿里云PAI训练集群的节点名称。在训练任务启动后,PAI会根据指定的机器列表自动创建Elastic Parameter Servers以及Worker节点,进行epl多机训练。
首先,确保每台机器上都已经安装了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进行训练。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
人工智能平台 PAI(Platform for AI,原机器学习平台PAI)是面向开发者和企业的机器学习/深度学习工程平台,提供包含数据标注、模型构建、模型训练、模型部署、推理优化在内的AI开发全链路服务,内置140+种优化算法,具备丰富的行业场景插件,为用户提供低门槛、高性能的云原生AI工程化能力。