华为云AI开发平台ModelArts训练容错检查_云淘科技
用户在训练模型过程中,存在因硬件故障而产生的训练失败场景。针对硬件故障场景,ModelArts提供容错检查功能,帮助用户隔离故障节点,优化用户训练体验。
容错检查包括两个检查项:环境预检测与硬件周期性检查。当环境预检查或者硬件周期性检查任一检查项出现故障时,隔离故障硬件并重新下发训练作业。针对于分布式场景,容错检查会检查本次训练作业的全部计算节点。
下图中有四个场景,其中场景四为正常训练作业失败场景,其他三个场景下可开启容错功能进行训练作业自动恢复。
场景一:环境预检测失败、硬件检测出现故障,隔离所有故障节点并重新下发训练作业。
图1 预检失败&硬件故障
场景二:环境预检测失败、硬件无故障,隔离所有故障节点并重新下发训练作业。
图2 预检失败&硬件正常
场景三:环境预检测成功并进入用户业务阶段,硬件检测出现故障并且用户业务非正常退出,隔离所有故障节点并重新下发训练作业。
图3 业务失败&硬件故障
场景四:环境预检测成功并进入用户业务阶段,硬件无故障,当用户业务异常时以失败状态结束作业。
图4 业务失败&硬件正常
隔离故障节点后,系统会在新的计算节点上重新创建训练作业。如果资源池规格紧张,重新下发的训练作业会以第一优先级进行排队。如果排队时间超过30分钟,训练任务会自动退出。该现象表明资源池规格任务紧张,训练作业无法正常启动,推荐您购买专属资源池补充计算节点。
如果您使用专属资源池创建训练作业,容错检查识别的故障节点会被剔除。系统自动补充健康的计算节点至专属资源池。(该功能即将上线)
容错检查详细介绍请参考:
开启容错检查
检测项目与执行条件
触发容错环境检测达到的效果
环境预检查通过后,如果发生硬件故障会导致用户业务中断。您可以在训练中补充reload ckpt的代码逻辑,使能读取训练中断前保存的预训练模型。指导请参考断点续训练和增量训练。
开启容错检查
用户可以在创建训练作业时通过设置故障自动重启的方式开启容错检查。
使用ModelArts控制台的创建训练作业页面设置故障自动重启:
用户可以在控制台页面通过开关的方式开启故障自动重启。“故障自动重启”开关默认不开启,表示不做重新下发作业,也不会启用环境检测。打开开关后,允许设置重启次数为1~3次。
图5 故障自动重启设置
使用API接口设置容错检查:
用户可以通过API接口的方式开启故障自动重启。创建训练作业时,在“metadata”字段的“annotations”中传入“fault-tolerance/job-retry-num”字段。
添加“fault-tolerance/job-retry-num”字段,视为开启故障自动重启,value的范围可以设置为1~3的整数。value值表示最大允许重新下发作业的次数。如果不传入则默认为0,表示不做重新下发作业,也不会启用环境检测。
检测项目与执行条件
检测项目 |
item(日志关键字) |
执行条件 |
检测成功要求 |
---|---|---|---|
域名检测 |
dns |
无 |
volcano容器的域名都解析成功(/etc/volcano下的.host文件中的域名解析成功) |
磁盘空间-容器根目录 |
disk-size root |
无 |
大于32GB |
磁盘空间-/dev/shm目录 |
disk-size shm |
无 |
大于1GB |
磁盘空间-/cache目录 |
disk-size cache |
无 |
大于32GB |
ulimit检查 |
ulimit |
使用IB网络时 |
max locked memory > 16000 |
gpu检查 |
gpu-check |
使用gpu,且使用v2训练引擎时(北京四暂无) |
检测到gpu |
触发容错环境检测达到的效果
容错检查正常通过时,会打印检测项目的日志,表示具体涉及的检查项目成功。您可以通过在日志中搜索“item”关键字查看。当容错检查正常通过时,可以减少运行故障上报问题。
容错检查失败时,会打印检查失败的日志。您可以通过在日志中搜索“item”关键字查看失败信息。
如果作业重启次数没有达到设定的次数,则会自动做重新下发作业。您可以通过搜索“error,exiting”关键字查找作业重启失败结束的日志。
使用reload ckpt恢复中断的训练
在容错机制下,如果因为硬件问题导致训练作业重启,用户可以在代码中读取预训练模型,恢复至重启前的训练状态。用户需要在代码里加上reload ckpt的代码,使能读取训练中断前保存的预训练模型。具体请参见断点续训练和增量训练。
父主题: 训练故障自动恢复
同意关联代理商云淘科技,购买华为云产品更优惠(QQ 78315851)
内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家