跨资源池训练作业配置下发
操作场景
本章节的操作均在本地云进行。跨资源池训练需要基于资源池联邦下发跨资源池训练作业,端到端操作流程和单资源池训练作业类似,支持在资源池联邦下选择一个或多个资源池配置训练任务,同一个资源池仅支持配置一个训练任务。
前提条件
- 在创建跨资源池训练作业前,需要确认资源池联邦状态处于运行中,且至少成功纳管一个物理资源池。
- 资源池联邦纳管的资源池对应的CCE集群已完成环境准备工作。
操作步骤
- 使用租户账号登录ModelArts管理控制台。在左侧导航栏选择“模型训练 > 训练作业”,进入训练作业界面。
- 在右上角单击“创建训练作业”,选择“跨资源池训练”,进入创建跨资源池训练作业界面。 图1 跨资源池训练
- 在创建跨资源池训练作业界面,填写基本信息并选择资源池联邦。可参照下发参数说明进行填写。 图2 信息填写
图3 选择实例规格
表1 表1 基本信息 参数名称
参数说明
作业名称
设置作业名称。
描述(可选)
作业描述。
选择资源池联邦
选择已创建的资源池联邦。
实例规格
规格中描述了服务器类型、型号等信息。创建作业的节点需要预先安装ModelArts插件,因此实际分配的资源会低于申请的资源量,具体的资源数值会根据节点的实际情况动态调整。
实例数
必填,根据需要选择实例数的个数。默认值为“1”。
选择自定义镜像
当平台预置的基础镜像中的软件无法满足实际程序运行需求时,支持自定义镜像进行训练,所需镜像需提前上传到SWR容器镜像服务上。说明:- 本地云:可通过下拉框选择。
- 协同云:需要手动输入。
代码目录
可选,运行用户ID不填写时默认为1000。说明:- 本地云:可通过下拉框选择。
- 协同云:需要手动输入。
代码会被下载到/home/ma-user/modelarts/user-job-dir目录下。
启动命令
必填,镜像的启动命令。具体说明请参见下方“Pytorch训练插件支持”内容。
运行用户ID
容器运行时的用户ID,该参数为选填参数,建议使用默认值1000。
如果运行用户ID配置为0,则训练容器中的运行用户是root。
日志路径
建议选择一个空的OBS文件目录存放运行中产生的日志文件,同时需要OBS文件目录的读写权限。说明:- 本地云:可通过下拉框选择。
- 协同云:需要手动输入。
Pytorch训练插件支持
训练平台根据PyTorch训练的业务特点,结合联邦作业的资源调度模型,汇总所有联邦作业实例的信息后,为PyTorch DDP训练注入了相应的环境变量,使训练进程可以直接使用这些参数。
使用示例:假设启动命令bash start_train.sh,其中start_train.sh中拉起torchrun进程,训练脚本为train.py,则torchrun启动命令为:
torchrun --nproc_per_node $NPROC_PER_NODE \ --nnodes $NNODES \ --node_rank $NODE_RANK \ --master_addr $MASTER_ADDR \ --master_port $MASTER_PORT train.py ...
表2 表2 Pytorch插件注入的ENV key
解释
MASTER_ADDR
pytorch master节点通信地址
NNODES
参与训练的节点(POD)数
NPROC_PER_NODE
每个训练节点需要拉起的进程数(对应节点上的卡数)
MASTER_PORT
pytorch master节点监听端口,默认29500
NODE_RANK
当前节点(POD)在全局中的顺序
- 配置环境变量。
- PSM路由优化功能需要的参数信息需要通过环境变量进行配置。 图4 环境变量
- 环境变量名称:MA_PSM_STRATEGY
- 环境变量值:PSM相关参数。
- Moxing版本指定。在跨云训练作业场景下,需要通过环境变量MA_MOXING_FWVER指定moxing版本,用于下载训练代码。
- 环境变量名称:MA_MOXING_FWVER
- 环境变量值:2.4.0rc11
- 平台镜像版本指定。跨云训练作业需要通过环境变量MA_CUSTOM_TOOL_IMAGE_VERSION指定平台工具容器的镜像版本,用于下载训练代码(为moxing提供容器环境执行下载)、上传训练日志等。
- 环境变量名称:MA_CUSTOM_TOOL_IMAGE_VERSION
- 环境变量值:1.0.0-7.2.0-b065.3
- PSM路由优化功能需要的参数信息需要通过环境变量进行配置。
- 增加训练任务并提交作业。 图5 增加和提交作业