华为云AI开发平台ModelArts使用自定义镜像创建训练作业(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”,路径获取该文件。

父主题: 使用自定义镜像训练模型(新版训练)

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家