ECS中构建新镜像
通过ECS获取和上传基础镜像获取基础镜像后,可通过ECS运行Dockerfile文件,在镜像的基础上构建新镜像。
Step1 构建新ModelArts Standard训练镜像
获取模型软件包,并上传到ECS的目录下(可自定义路径),获取地址参考表1。
- 解压AscendCloud压缩包及该目录下的训练代码AscendCloud-LLM-xxx.zip,并直接进入到llm_train/AscendSpeed文件夹下面
cd ./llm_train/AscendSpeed
- 编辑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
- 执行以下命令制作训练镜像。安装过程需要连接互联网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中粘贴临时登录指令,即可完成登录。
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