使用Dockerfile构建ModelArts断点续训容器镜像(MindSpore)

前提条件

请按照表所需软件所示,获取对应操作系统的软件包与打包镜像所需Dockerfile文件。名称中{version}表示版本号,{arch}表示架构。当前ModelArts平台昇腾芯片环境只支持aarch64架构的镜像。

表1 软件包获取

软件包

说明

获取方法

mindspore_ascend-{version}-cp37-cp37m-linux_{arch}.whl

MindSpore框架whl包,选择aarch64架构。

获取链接

Ascend-cann-toolkit_{version}_linux-{arch}.run

CANN开发套件包,选择aarch64架构。

获取链接

Dockerfile

制作镜像需要。

参考下方示例。

mindx_elastic-{version}-py37-none-linux_{arch}.whl

集群调度组件断点续训whl包,提供临终遗言功能。选择aarch64架构。

获取链接

操作步骤

  1. 将上述软件包上传到服务器任意目录。
  2. 以root用户登录服务器。
  3. Dockerfile内容参见下方编写示例:

    # ModelArts基础镜像,参考modelarts平台文档获取基础镜像地址,基础镜像需要为V2版本。
    ARG base
    FROM ${base}
     
    USER root
     
    COPY ./* ./tmp/
    # 安装mindspore和mindx elastic
    RUN cd ./tmp \
             && /home/ma-user/anaconda3/envs/MindSpore/bin/pip3.7 install mindspore*.whl \
             && /home/ma-user/anaconda3/envs/MindSpore/bin/pip3.7 install mindx_elastic*.whl \
             && chmod +x ./*.run \
             && ./*toolkit*.run --upgrade \
             && cd ../ ; rm -rf ./tmp; exit 0
     
    USER ma-user
    WORKDIR /home/ma-user

  4. 在软件包所在目录,执行以下命令,构建容器镜像,注意不要遗漏命令结尾的“.”。

    docker build --build-arg base=基础镜像地址 -t  [OPTIONS] 镜像名_系统架构:镜像tag .

    命令示例如下:

    docker build --build-arg base=swr.cn-north-4.myhuaweicloud.com/modelarts-job-dev-image/mindspore-ascend910-cp37-euleros2.8-aarch64-training:1.3.0-3.3.0-roma -t test_train_arm64:v1.0 .

    命令解释如下表所示:

    参数

    说明

    --build-arg

    为Dockerfile中定义的参数进行传参。

    -t

    指定镜像名称。

    OPTIONS

    “--disable-content-trust” 选项:忽略校验,默认开启。出于安全考虑,这里推荐设置关闭。

    镜像名_系统架构:镜像tag

    镜像名称与标签,请用户根据实际情况写入。

    当出现“Successfully built xxx”表示镜像构建成功。

  5. 构建完成后,执行以下命令查看镜像信息。

    docker images
    回显示例如下:
    REPOSITORY          TAG    IMAGE_ID  CREATED         SIZE
    test_train_arm64    V1.0   xxxxxxx   XX minutes ago  XXMB