SanityCheck:算力健康检测

本文为您介绍如何使用DLC提供的算力健康检测能力。

功能介绍

在执行DLC任务时,可能会遇到以下问题:

  • 在任务花费一定时间加载模型Checkpoint或其他初始化操作后,由于申请的资源存在故障,无法顺利开始训练,需要调查定位故障问题并重新提交任务。该过程中会导致GPU资源的浪费。

  • 在任务运行阶段,如果发现模型训练性能下降,可能是慢节点导致的,但缺少快捷有效的问题定位方法。此外,资源组内机器的GPU算力和通信性能测试也欠缺便捷且可靠的基准程序。

针对上述问题,DLC提供了算力健康检测(SanityCheck)功能,旨在对分布式训练任务的算力资源健康度与性能进行检查。在创建DLC训练任务时可以开启该功能,健康检测会对参与训练的资源进行全面检测,自动隔离故障节点,并触发后台自动化运维流程,有效减少任务训练初期遇到问题的可能性,提升训练成功率。此外,在检测完成后,会给出有关GPU算力以及通信性能的检测报告,可以帮助识别和定位可能导致任务训练性能下降的问题元素,整体提升问题诊断的效率。

使用限制

  • 仅支持在华北6(乌兰察布)地域,使用灵骏智算资源提交的DLC训练任务,开启健康检测功能。

  • 当前功能仅支持PyTorch类型的训练任务,且要求任务资源的GPU(卡数)大于0。

开启健康检测

通过控制台

PAI控制台创建DLC训练任务时,您可以在容错与诊断区域,打开健康检测开关,并配置相关参数。具体操作,请参见创建训练任务。开启健康检测功能,并成功创建任务后,系统将占用一定的时间用于检测资源健康度和可用性,并给出检测结果。

image.png

其中健康检测的关键参数说明如下:

参数

描述

检测时机

  • 在任务运行前(默认):即任务获取到资源后,先基于该训练任务的算力节点进行预先检测,再执行用户代码。

  • 在容错发生后:即当任务运行异常,AIMaster自动容错将任务重启后,进行算力健康检测。

    说明

    选择该配置项时,必须打开自动容错功能。更多内容介绍,请参见AIMaster:弹性自动容错引擎

最长检测时间(分钟)

健康检测最长运行时间,默认为30分钟。在检测超时后,会触发预设的处理方法。

检测超时处理

当健康检测运行时间超过设定值时,您可以选择将任务转入以下状态:

  • 结束任务(默认):任务结束,状态将变为检测未通过

  • 挂起任务:将任务挂起,任务状态还是检测中,等待进一步的人工干预或系统指导进行下一步操作。

其他检测配置

默认为空。

通过OpenAPI

调用CreateJob接口时,在Settings参数中新增2个参数开启健康检测功能。如下表所示:

参数

描述

示例

EnableSanityCheck

任务是否打开算力健康检测。取值如下:

  • true:打开算力健康检测。

  • false:不打开算力健康检测。

"EnableSanityCheck" : "true"

SanityCheckArgs

算力健康检测的执行参数,取值如下:

  • --sanity-check-timing:检测时机,可选值如下:

    • BeforeJobRunning(默认值):任务在每次运行前进行检测(包括任务重启后)。

    • AfterJobFaultTolerant:在任务容错发生后进行检测。

  • --sanity-check-max-time:最长检测时间,单位为分钟。

  • --sanity-check-timeout-ops:检测超时处理,可选值如下:

    • MarkJobFail(默认值):以失败状态结束任务。

    • KeepJobHang:挂起任务。

  • --sanity-check-envs:设置检测的环境变量,默认为空。格式为key=value,多个变量之间用半角逗号(,)分隔。例如key1=value1,key2=value2

  • --sanity-check-timeout-per-test:每个测试超时时间,单位为分钟,默认为6min。

"SanityCheckArgs" : "--sanity-check-timing=AfterJobFaultTolerant --sanity-check-timeout-ops=MarkJobFail"

查看检测结果

健康检测状态说明

DLC任务在健康检测中的相关状态项如下:

  • 检测中:正在进行算力健康检测环节,期间的任务状态将显示为检测中。

  • 检测未通过:在执行算力健康检测过程中,如果检测出问题,或检测时间超出设定的最大运行时间,状态将显示为检测未通过。

  • 检测通过:算力健康检测全部通过后,任务将直接进入运行中的状态。

查看健康检测结果

通过控制台

DLC任务详情页面下方的事件页签,单击健康检测,可以查看对应的检测结果。

image

通过OpenAPI

配置消息通知

您可以在PAI工作空间的事件中心中创建消息通知规则,其中事件类型选择DLC任务>任务自动容错,其他参数配置详情,请参见消息通知。当算力健康检测未通过时,会发送消息通知。

说明

工作空间创建消息通知使用说明: 工作空间事件中心

image.png