更新时间:2022-12-08 GMT+08:00

训练作业进程异常退出

问题现象

训练作业运行失败,日志中出现如下类似报错:

[Modelarts Service Log]Training end with return code: 137

原因分析

日志显示训练进程的退出码为137。训练进程表示用户的代码启动后的进程,所以这里的退出码是用户的训练作业代码返回的。常见的错误码还包括247、139等。

  • 退出码137或者247

    可能是内存溢出造成的。请减少数据量、减少batch_size,优化代码,合理聚合、复制数据。

    请注意,数据文件大小不等于内存占用大小,需仔细评估内存使用情况。

  • 退出码139

    请排查安装包的版本,可能存在包冲突的问题。

排查办法

根据错误信息判断,报错原因来源于用户代码。

您可以通过以下两种方式排查:

  • 线上环境调试代码(仅适用于非分布式代码)
    1. 在开发环境(notebook)申请相同规格的开发环境实例。
    2. 在notebook调试用户代码,并找出问题的代码段。
    3. 通过关键代码段 + 退出码尝试去搜索引擎寻找解决办法。,
  • 通过训练日志排查问题
    1. 通过日志判断出问题的代码范围。
    2. 修改代码,在问题代码段添加打印,输出更详细的日志信息。
    3. 再次运行作业,判断出问题的代码段。