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

时间:2023-11-01 16:20:04

使用 自定义镜像 创建训练作业(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/develop-modelarts-10092.html