本文为您介绍如何使用DLC提供的算力健康检测能力。
功能介绍
在执行DLC任务时,可能会遇到以下问题:
在任务花费一定时间加载模型Checkpoint或其他初始化操作后,由于申请的资源存在故障,无法顺利开始训练,需要调查定位故障问题并重新提交任务。该过程中会导致GPU资源的浪费。
在任务运行阶段,如果发现模型训练性能下降,可能是慢节点导致的,但缺少快捷有效的问题定位方法。此外,资源组内机器的GPU算力和通信性能测试也欠缺便捷且可靠的基准程序。
针对上述问题,DLC提供了算力健康检测(SanityCheck)功能,旨在对分布式训练任务的算力资源健康度与性能进行检查。在创建DLC训练任务时可以开启该功能,健康检测会对参与训练的资源进行全面检测,自动隔离故障节点,并触发后台自动化运维流程,有效减少任务训练初期遇到问题的可能性,提升训练成功率。此外,在检测完成后,会给出有关GPU算力以及通信性能的检测报告,可以帮助识别和定位可能导致任务训练性能下降的问题元素,整体提升问题诊断的效率。
使用限制
仅支持在华北6(乌兰察布)地域,使用灵骏智算资源提交的DLC训练任务,开启健康检测功能。
当前功能仅支持PyTorch类型的训练任务,且要求任务资源的GPU(卡数)大于0。
开启健康检测
通过控制台
在PAI控制台创建DLC训练任务时,您可以在容错与诊断区域,打开健康检测开关,并配置相关参数。具体操作,请参见创建训练任务。开启健康检测功能,并成功创建任务后,系统将占用一定的时间用于检测资源健康度和可用性,并给出检测结果。
其中健康检测的关键参数说明如下:
参数 | 描述 |
检测时机 |
|
最长检测时间(分钟) | 健康检测最长运行时间,默认为30分钟。在检测超时后,会触发预设的处理方法。 |
检测超时处理 | 当健康检测运行时间超过设定值时,您可以选择将任务转入以下状态:
|
其他检测配置 | 默认为空。 |
通过OpenAPI
调用CreateJob接口时,在Settings参数中新增2个参数开启健康检测功能。如下表所示:
参数 | 描述 | 示例 |
EnableSanityCheck | 任务是否打开算力健康检测。取值如下:
|
|
SanityCheckArgs | 算力健康检测的执行参数,取值如下:
|
|
查看检测结果
健康检测状态说明
DLC任务在健康检测中的相关状态项如下:
检测中:正在进行算力健康检测环节,期间的任务状态将显示为检测中。
检测未通过:在执行算力健康检测过程中,如果检测出问题,或检测时间超出设定的最大运行时间,状态将显示为检测未通过。
检测通过:算力健康检测全部通过后,任务将直接进入运行中的状态。
查看健康检测结果
通过控制台
在DLC任务详情页面下方的事件页签,单击健康检测,可以查看对应的检测结果。
通过OpenAPI
GetJobSanityCheckResult:获取DLC作业某次算力健康检测结果。
ListJobSanityCheckResults:获取某个DLC作业的多次算力健康检测结果。