训练作业卡死重启
当长稳的训练作业正常运行一段时间后,如果训练作业没有硬件故障,出现卡死时,重启训练作业即可恢复正常。但是,由于训练作业卡死时无法自动结束容器,因此无法使用自动重启功能,只能设置作业卡死重启。当训练作业设置为作业卡死重启时,ModelArts会在作业运行过程中检测到卡死状态时,强制停止容器中的用户进程,并在进程停止后重新运行训练作业启动命令。作业卡死重启的过程中不涉及资源调度,仅在原容器中重启训练作业。
卡死检测的规则请参见训练作业卡死检测。
为了避免丢失训练进度、浪费算力,开启此功能前请确认代码已适配断点续训,操作指导请参见设置断点续训练。
当训练过程中触发了自动重启,系统会记录重启信息,在训练作业详情页可以查看故障恢复详情,具体请参见训练作业容错检查。
约束限制
为了避免无效重启训练作业,造成算力资源浪费,作业卡死重启最多支持连续重启3次。
开启作业卡死重启
开启作业卡死重启有2种方式:控制台设置或API接口设置。
- 控制台设置
在创建训练作业页面,开启“自动重启”开关,并同时开启“作业卡死重启”。开启作业卡死重启后,只要系统检测到训练卡死,就在容器中重启训练作业,卡死重启不涉及资源调度,因此不会占用“重启次数”。
图1 开启作业卡死重启 - API接口设置
通过API接口创建训练作业时,在“metadata”字段的“annotations”中传入“fault-tolerance/job-retry-num”和“fault-tolerance/hang-retry”字段。“fault-tolerance/job-retry-num”赋值为1~128之间的任意整数,表示开启自动重启并设置自动重启次数;“fault-tolerance/hang-retry”赋值为“true”表示启用了卡死重启。
表1 参数说明 参数
是否必选
参数类型
描述
kind
是
String
参数解释:训练作业类型。
约束限制:不涉及。
取值范围:
默认取值:job。
annotations
否
Map<String,String>
参数解释:训练作业高级功能配置。
约束限制:可选取值如下:
{ "kind": "job", "metadata": { "annotations": { "fault-tolerance/job-retry-num": "3", "fault-tolerance/hang-retry": "true" } } }