云服务器内容精选

  • 规范要求 推荐 自定义镜像 使用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后台暂不支持下载开源安装包,建议用户在自定义镜像中安装训练所需的依赖包。
  • 已有镜像如何适配迁移至ModelArts训练平台 已有镜像迁移至训练管理需要关注如下步骤。 为镜像增加训练管理的默认用户组ma-group,“gid = 100”。 如果已存在“gid = 100”用户组,可能会报错“groupadd: GID '100' already exists”。可通过命令“cat /etc/group | grep 100”查询是否已存在gid = 100用户组。 如果已存在“gid = 100”用户组,则该步骤跳过,下文Dockerfile中删除“RUN groupadd ma-group -g 100”命令。 为镜像增加训练管理的默认用户ma-user,“uid = 1000”。 如果已存在“uid = 1000”用户,可能会报错“useradd: UID 1000 is not unique”。可通过命令“cat /etc/passwd | grep 1000”查询是否已存在uid = 1000用户。 如果已存在“uid = 1000”用户,则该步骤跳过,下文Dockerfile中删除“RUN useradd -d /home/ma-user -m -u 1000 -g 100 -s /bin/bash ma-user”命令。 修改镜像中相关文件权限,使得ma-user,“uid = 1000”用户可读写。 您可以参考如下Dockerfile,修改已有镜像,使其符合新版训练管理自定义镜像的规范。 FROM {已有镜像} USER root # 如果已存在 gid = 100 用户组,则删除 groupadd 命令。 RUN groupadd ma-group -g 100 # 如果已存在 uid = 1000 用户,则删除 useradd 命令。 RUN useradd -m -d /home/ma-user -s /bin/bash -g 100 -u 1000 ma-user # 修改镜像中相关文件权限,使得 ma-user, uid = 1000 用户可读写。 RUN chown -R ma-user:100 {Python软件包路径} # 设置容器镜像预置环境变量。 # 请务必设置 PYTHONUNBUFFERED=1, 以免日志丢失。 ENV PYTHONUNBUFFERED=1 # 设置容器镜像默认用户与工作目录。 USER ma-user WORKDIR /home/ma-user 编写好Dockerfile后,通过执行如下所示命令进行新镜像构建。 docker build -f Dockerfile . -t {新镜像} 构建成功后将新镜像上传至SWR(参考如何登录并上传镜像到SWR)。 上述内容为关键代码样例,为了方便理解迁移过程,推荐您体验完整迁移案例:示例:从0到1制作自定义镜像并用于训练(PyTorch+CPU/GPU)。 父主题: 准备训练镜像