准备模型训练镜像
ModelArts平台提供了Tensorflow,PyTorch,MindSpore等常用深度学习任务的基础镜像,镜像里已经安装好运行任务所需软件。当基础镜像里的软件无法满足您的程序运行需求时,您还可以基于这些基础镜像制作一个新的镜像并进行训练。
训练作业的预置框架介绍
ModelArts中预置的训练基础镜像如下表所示。
引擎类型 |
版本名称 |
---|---|
PyTorch |
pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 |
pytorch_2.1.0-cuda_12.1-py_3.10.6-ubuntu_22.04-x86_64 |
|
TensorFlow |
tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 |
Horovod |
horovod_0.20.0-tensorflow_2.1.0-cuda_10.1-py_3.7-ubuntu_18.04-x86_64 |
horovod_0.22.1-pytorch_1.8.0-cuda_10.2-py_3.7-ubuntu_18.04-x86_64 |
|
MPI |
mindspore_1.3.0-cuda_10.1-py_3.7-ubuntu_1804-x86_64 |
Ascend-Powered-Engine |
tensorflow_1.15-cann_5.1.0-py_3.7-euler_2.8.3-aarch64 |
mindspore_1.7.0-cann_5.1.0-py_3.7-euler_2.8.3-aarch64 |
|
pytorch_2.1.0-cann_7.0.1.1-py_3.9-euler_2.10.7-aarch64-snt3p |
|
mindspore_2.2.12-cann_7.0.1.1-py_3.9-euler_2.10.7-aarch64-snt3p |
构建自定义训练镜像

场景一:预置镜像满足ModelArts训练平台约束,但不满足代码依赖的要求,需要额外安装软件包。
具体案例参考使用预置镜像制作自定义镜像用于训练模型。
场景二:已有本地镜像满足代码依赖的要求,但是不满足ModelArts训练平台约束,需要适配。
具体案例参考已有镜像迁移至ModelArts用于训练模型。
场景三: 当前无可使用的镜像,需要从0制作镜像(既需要安装代码依赖,又需要制作出的镜像满足ModelArts平台约束)。具体案例参考:
从0制作自定义镜像用于创建训练作业(Pytorch+Ascend)
从0制作自定义镜像用于创建训练作业(PyTorch+CPU)
在镜像中安装pip依赖
在创建分布式训练作业前,建议提前安装所有的pip依赖,否则,当节点数大于10时,系统会自动删除pip源配置,当训练过程中涉及pip install操作时可能会训练失败。
提前安装依赖,确保所有依赖包在训练前已安装完成,可以避免因节点数过多导致pip源配置被删除而引发训练失败,提升训练作业的稳定性和效率。
安装pip依赖的两种方式:
- 方式一:在Notebook中提前安装依赖并保存镜像
- 在Notebook环境中运行目标镜像。
- 执行pip install命令安装所有依赖包。
- 保存镜像。
- 在镜像详情页获取SWR地址以便后续训练使用。
- 方式二:在本地容器中安装依赖并导出镜像
- 在本地环境中运行容器,执行pip install命令安装所有依赖包。
- 使用以下命令将容器保存为镜像。
docker commit <容器ID> <镜像名称>:<标签>
示例:
docker commit my_container my_image:v1
- 使用以下命令将镜像导出为tar文件。
docker save -o <tar文件名>.tar <镜像名称>:<标签>
示例:
docker save -o my_image_v1.tar my_image:v1
- 将镜像上传至容器镜像服务SWR,用于后续训练作业。