华为云AI开发平台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)。

父主题: 准备训练镜像

同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家