AI开发平台MODELARTS-使用自定义镜像创建训练作业(Ascend)

时间:2024-04-30 17:31:41

使用自定义镜像创建训练作业(Ascend)

如果Ascend-Powered-Engine预置镜像无法满足您的需求,您可以构建一个自定义镜像,通过自定义镜像创建训练作业。Ascend自定义镜像训练作业创建流程与CPU/GPU一致,但是需要额外关注:

  • Ascend HCCL RANK_TABLE_FILE文件说明

    Ascend HCCL RANK_TABLE_FILE文件提供Ascend分布式训练作业的集群信息,用于Ascend芯片分布式通信,可以被HCCL集合通信库解析。该文件格式有两个版本,分别为模板一、模板二。当前ModelArts提供的是模板二格式。完整的Ascend HCCL RANK_TABLE_FILE文件内容请参见昇腾AI处理器资源配置文件。

    ModelArts训练环境的Ascend HCCL RANK_TABLE_FILE文件名为jobstart_hccl.json。获取方式参考表1

    • ModelArts训练环境jobstart_hccl.json文件内容(模板二)示例
      {
      	"group_count": "1",
      	"group_list": [{
      		"device_count": "1",
      		"group_name": "job-trainjob",
      		"instance_count": "1",
      		"instance_list": [{
      			"devices": [{
      				"device_id": "4",
      				"device_ip": "192.1.10.254"
      			}],
      			"pod_name": "jobxxxxxxxx-job-trainjob-0",
      			"server_id": "192.168.0.25"
      		}]
      	}],
      	"status": "completed"
      }

      jobstart_hccl.json文件中的status字段的值在训练脚本启动时,并不一定为completed状态。因此需要训练脚本等待status字段的值等于completed之后,再去读取文件的剩余内容。

      如果算法开发者期望使用模板一格式的jobstart_hccl.json文件,可以使用训练脚本,在等待status字段的值等于completed之后,将模板二格式jobstart_hccl.json文件转换为模板一格式的jobstart_hccl.json文件。

    • 转换后的jobstart_hccl.json文件格式(模板一)示例
      {
      	"server_count": "1",
      	"server_list": [{
      		"device": [{
      			"device_id": "4",
      			"device_ip": "192.1.10.254",
      			"rank_id": "0"
      		}],
      		"server_id": "192.168.0.25"
      	}],
      	"status": "completed",
      	"version": "1.0"
      }

    转换功能的实现,可参考示例:从 0 到 1 制作自定义镜像并用于训练(MindSpore+Ascend)中所述的Ascend训练脚本的启动脚本。

  • RANK_TABLE_FILE环境变量
    表1 RANK_TABLE_FILE环境变量说明

    环境变量

    说明

    RANK_TABLE_FILE

    该环境变量指示Ascend HCCL RANK_TABLE_FILE文件所在目录,值为/user/config。

    算法开发者可通过 “${RANK_TABLE_FILE}/jobstart_hccl.json”,路径获取该文件。

support.huaweicloud.com/docker-modelarts/docker-modelarts-0092.html