文档首页/
AI开发平台ModelArts/
ModelArts用户指南(Standard)/
使用ModelArts Standard训练模型/
准备模型训练代码/
自定义镜像训练作业配置节点间SSH免密互信
更新时间:2024-11-21 GMT+08:00
自定义镜像训练作业配置节点间SSH免密互信
当用户使用基于MPI和Horovod框架的自定义镜像进行分布式训练时,需配置训练作业节点间SSH免密互信,否则训练会失败。
配置节点间SSH免密互信涉及代码适配和训练作业参数配置,本文提供了一个操作示例。
- 准备一个预装OpenSSH的自定义镜像,使用的训练框架是MPI或Horovod。
- 准备一个sshd启动脚本文件“start_sshd.sh”。
MY_SSHD_PORT=${MY_SSHD_PORT:-"38888"} mkdir -p /home/ma-user/etc ssh-keygen -f /home/ma-user/etc/ssh_host_rsa_key0 -N '' -t rsa > /dev/null /usr/sbin/sshd -p $MY_SSHD_PORT -h /home/ma-user/etc/ssh_host_rsa_key0
- 将准备好的sshd启动脚本文件上传至OBS的训练代码目录下。
- 创建自定义镜像训练作业。
- “代码目录”选择存有sshd启动脚本文件的OBS地址。
- “启动命令”需要适配sshd启动脚本,如下所示:
bash ${MA_JOB_DIR}/demo-code/start_sshd.sh && your custom command
命令中的“your custom command”表示训练作业中需要执行的其他自定义命令。
- “环境变量”增加“MY_SSHD_PORT = 38888”。
- “配置节点间SSH免密互信”开关打开,并设置“SSH密钥目录”,一般保持默认值。该配置会在下发训练作业后,自动在训练容器的“/home/ma-user/.ssh”目录下生成SSH密钥文件和配置文件“authorized_keys config id_rsa id_rsa.pub”。
- 提交创建训练作业后,训练过程中,训练作业的节点可通过域名+端口的方式SSH连接到其他节点,示例代码如下所示:
ssh modelarts-job-a0978141-1712-4f9b-8a83-000000000000-worker-1 -p $MY_SSHD_PORT
父主题: 准备模型训练代码