更新时间:2024-11-21 GMT+08:00
分享

ECS中构建新镜像

通过ECS获取和上传基础镜像获取基础镜像后,可通过ECS运行Dockerfile文件,在镜像的基础上构建新镜像。

Step1 构建新ModelArts Standard训练镜像

获取模型软件包,并上传到ECS的目录下(可自定义路径),获取地址参考表1

  1. 解压AscendCloud压缩包及该目录下的训练代码AscendCloud-LLM-6.3.910-xxx.zip,并直接进入到llm_train/AscendSpeed文件夹下面
    unzip AscendCloud-*.zip -d ./AscendCloud && unzip ./AscendCloud/AscendCloud-LLM-*.zip -d ./AscendCloud/AscendCloud-LLM && cd ./AscendCloud/AscendCloud-LLM/llm_train/AscendSpeed
  1. 编辑llm_train/AscendSpeed中的Dockerfile文件,修改git命令,填写自己的git账户信息。
    git config --global user.email "you@example.com" &&  \
    git config --global user.name "Your Name" &&  \

    若要对ChatCLMv3、GLMv4系列模型进行训练时,需要修改 Dockerfile 中的 transformers 的版本。

    由默认 transformers==4.45.0 修改为:transformers==4.44.2

  2. 执行以下命令制作训练镜像。安装过程需要连接互联网git clone,请确保ECS可以访问公网
    docker build -t <镜像名称>:<版本名称>  .

    如果无法访问公网,则可以配置代理,增加`--build-arg`参数指定代理地址,可访问公网。

    docker build --build-arg "https_proxy=http://xxx.xxx.xxx.xxx" --build-arg "http_proxy=http://xxx.xxx.xxx.xxx" --network=host -t <镜像名称>:<版本名称>  .
    • <镜像名称>:<版本名称>:定义镜像名称。示例:pytorch_2_1_ascend:20240606
    • 记住使用Dockerfile创建的新镜像名称, 后续使用 ${dockerfile_image_name} 进行表示。

Step2 在ECS中Docker登录

在SWR中单击右上角的“登录指令”,然后在跳出的登录指定窗口,单击复制临时登录指令。在创建的ECS中粘贴临时登录指令,即可完成登录。

图1 复制登录指令

Step3 修改并上传镜像

1. 在ECS服务器中输入登录指令后,使用下列示例命令将Standard镜像上传至SWR:

docker tag ${dockerfile_image_name} <镜像仓库地址>/<组织名称>/<镜像名称>:<版本名称>

参数说明:

  • ${dockerfile_image_name}:在step5中,使用Dockerfile创建的新镜像名称。
  • <镜像仓库地址>:可在SWR控制台上查询,容器镜像服务中登录指令末尾的域名即为镜像仓库地址。
  • <组织名称>:前面步骤中自己创建的组织名称。示例:ma-group
  • <镜像名称>:<版本名称>:定义镜像名称。示例:pytorch_2_1_ascend:20240606

示例:

docker tag {image_url} swr.cn-southwest-2.myhuaweicloud.com/ma-group/pytorch_2_1_ascend:20240606

2. 上传镜像至镜像仓库。

docker push <镜像仓库地址>/<组织名称>/<镜像名称>:<版本名称>

示例:

docker push swr.cn-southwest-2.myhuaweicloud.com/ma-group/pytorch_2_1_ascend:20240606

相关文档