更新时间:2022-11-19 GMT+08:00
分享

自定义镜像训练作业失败定位思路

问题现象

使用自定义镜像训练作业时,训练失败。

定位思路

  1. 确定镜像来源

    a. 确认该自定义镜像的基础镜像是否来源于ModelArts提供的基础镜像,推荐用户使用ModelArts的基础镜像构建自定义镜像,具体请参见使用ModelArts的基础镜像构建新的训练镜像

    b. 确认该镜像是否是新版训练的基础镜像,原旧版训练的镜像无法直接在新版训练上使用。

    c. 如镜像来源于第三方,设法找到自定义镜像的制作者咨询,制作者一般对镜像如何使用更加了解。

  2. 确定自定义镜像大小

    推荐自定义镜像小于30GB,过大的镜像会导致作业创建过慢或者创建失败。

  3. 确定错误类型
    1. 提示找不到文件等错误,请参见训练作业日志中提示“No such file or directory”
    2. 提示找不到包等错误,请参见训练作业日志中提示“No module named .*”
    3. Ascend启动脚本和初始化脚本问题。

      确认相关脚本是否来源于官方文档并且是否严格按照官方文档使用。比如确认脚本名称是否正常、脚本路径是否正常。具体请参见示例:从 0 到 1 制作自定义镜像并用于训练(MindSpore+Ascend)

    4. 驱动版本与底层驱动不兼容

      当对自定义镜像的驱动进行升级时,请确定底层驱动是否兼容。当前支持哪种驱动版本,请从基础镜像中获取。

    5. 文件权限不足

      该问题可能为自定义镜像的用户与作业容器的用户不同导致的。请修改dockerfile文件:

      RUN if id -u ma-user > /dev/null 2>&1 ; \
      then echo 'MA 用户已存在' ; \
      else echo 'MA 用户不存在' && \
      groupadd ma-group -g 1000 && \
      useradd -d /home/ma-user -m -u 1000 -g 1000 -s /bin/bash ma-user ; fi && \
      chmod 770 /home/ma-user && \
      chmod 770 /root && \
      usermod -a -G root ma-user
    6. 其他现象,可以在已有的训练故障案例查找。

建议与总结

用户使用自定义镜像训练作业时,建议按照训练作业自定义镜像规范制作镜像。文档中同时提供了端到端的示例供用户参考。

分享:

    相关文档

    相关产品