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

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

如果您已经在本地完成模型开发或训练脚本的开发,且您使用的AI引擎是ModelArts不支持的框架。您可以制作自定义镜像,并上传至SWR服务。您可以在ModelArts使用此自定义镜像创建训练作业,使用ModelArts提供的资源训练模型。

制作流程

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

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

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

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

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

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

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

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

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

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

训练框架的自定义镜像约束

  • 推荐自定义镜像使用ubuntu-18.04的操作系统,避免出现版本不兼容的问题。
  • 自定义镜像的大小推荐15GB以内,最大不要超过资源池的容器引擎空间大小的一半。镜像过大会直接影响训练作业的启动时间。

    ModelArts公共资源池的容器引擎空间为50G,专属资源池的容器引擎空间的默认为50G,支持在创建专属资源池时自定义容器引擎空间。

  • 自定义镜像的默认用户必须为“uid”“1000”的用户。
  • 自定义镜像中不能安装GPU或Ascend驱动程序。当用户选择GPU资源运行训练作业时,ModelArts后台自动将GPU驱动程序放置在训练环境中的 /usr/local/nvidia目录;当用户选择Ascend资源运行训练作业时,ModelArts后台自动将Ascend驱动程序放置在/usr/local/Ascend/driver目录。
  • X86 CPU架构和ARM CPU架构的自定义镜像分别只能运行于对应CPU架构的规格中。
    执行如下命令,查看自定义镜像的CPU架构。
    docker inspect {自定义镜像地址} | grep Architecture
    ARM CPU架构的自定义镜像,上述命令回显如下。
    "Architecture": "arm64"
    • 规格中带有ARM字样的显示,为ARM CPU架构。
    • 规格中未带有ARM字样的显示,为X86 CPU架构。
  • ModelArts后台暂不支持下载开源安装包,建议用户在自定义镜像中安装训练所需的依赖包。
  • 自定义镜像需上传至容器镜像服务(SWR)才能在ModelArts上用于训练。

相关文档