更新时间:2025-08-07 GMT+08:00

准备模型训练镜像

ModelArts平台提供了Tensorflow,PyTorch,MindSpore等常用深度学习任务的基础镜像,镜像里已经安装好运行任务所需软件。当基础镜像里的软件无法满足您的程序运行需求时,您还可以基于这些基础镜像制作一个新的镜像并进行训练。

训练作业的预置框架介绍

ModelArts中预置的训练基础镜像如下表所示。

表1 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

构建自定义训练镜像

图1 训练作业的自定义镜像制作流程

场景一:预置镜像满足ModelArts训练平台约束,但不满足代码依赖的要求,需要额外安装软件包。

具体案例参考使用预置镜像制作自定义镜像用于训练模型

场景二:已有本地镜像满足代码依赖的要求,但是不满足ModelArts训练平台约束,需要适配。

具体案例参考已有镜像迁移至ModelArts用于训练模型

场景三: 当前无可使用的镜像,需要从0制作镜像(既需要安装代码依赖,又需要制作出的镜像满足ModelArts平台约束)。具体案例参考:

从0制作自定义镜像用于创建训练作业(Pytorch+Ascend)

从0制作自定义镜像用于创建训练作业(PyTorch+CPU)

从0制作自定义镜像用于创建训练作业(MPI+CPU)

从0制作自定义镜像用于创建训练作业(Tensorflow+GPU)

从0制作自定义镜像用于创建训练作业(MindSpore+Ascend)

在镜像中安装pip依赖

在创建分布式训练作业前,建议提前安装所有的pip依赖,否则,当节点数大于10时,系统会自动删除pip源配置,当训练过程中涉及pip install操作时可能会训练失败。

提前安装依赖,确保所有依赖包在训练前已安装完成,可以避免因节点数过多导致pip源配置被删除而引发训练失败,提升训练作业的稳定性和效率。

安装pip依赖的两种方式:

  • 方式一:在Notebook中提前安装依赖并保存镜像
    1. 在Notebook环境中运行目标镜像。
    2. 执行pip install命令安装所有依赖包。
    3. 保存镜像。
    4. 在镜像详情页获取SWR地址以便后续训练使用。
  • 方式二:在本地容器中安装依赖并导出镜像
    1. 在本地环境中运行容器,执行pip install命令安装所有依赖包。
    2. 使用以下命令将容器保存为镜像。
      docker commit <容器ID> <镜像名称>:<标签>

      示例:

      docker commit my_container my_image:v1
    3. 使用以下命令将镜像导出为tar文件。
      docker save -o <tar文件名>.tar <镜像名称>:<标签>

      示例:

      docker save -o my_image_v1.tar my_image:v1
    4. 将镜像上传至容器镜像服务SWR,用于后续训练作业。