功能特点
断点续训特性在Kubernetes(以下简称K8s)集群中训练任务出现故障时,使系统能够感知故障,将故障资源进行处理或隔离,并根据训练任务需要重新分配资源,通过之前保存的周期性的ckpt重新拉起训练任务继续训练,缩短损失时间。
断点续训主要分为故障发现、故障处理和训练重启三个阶段,每个阶段的说明如下。
- 故障发现:通过Ascend Device Plugin、Volcano、ClusterD和NodeD四个组件提供的能力检查节点、芯片、参数面网络或业务面的健康状态和故障类型。
- 故障处理:故障发生后,根据上报的故障信息进行故障处理。
- 故障重调度模式存在以下级别。
- Job级别重调度:每次故障会停止所有的Pod,重新创建并重调度所有Pod,重启训练任务。
- Pod级别重调度:每次故障只停止故障相关的Pod,重新创建并重调度故障相关的Pod后,重启训练任务。不能恢复则回退至Job级重调度模式。
- 进程级别重调度:每次故障只停止故障相关节点的进程,将故障节点的容器迁移到健康节点,恢复训练任务。不能恢复则回退至Job级或Pod级重调度模式。
- 进程级在线恢复(Step级别重计算恢复):仅针对片上内存上出现的不可纠正错误(故障码0x80E01801),对训练进程进行Step重试,并隔离故障片上内存空间,实现进程不退出的故障快速恢复。不能恢复则回退至重调度模式。该故障处理模式默认关闭,若要开启请参考(可选)配置组件。
- 优雅容错功能:当用户训练时没有备用资源或者期望设备自动恢复时,可以选择使用优雅容错功能。即当训练时芯片设备出现故障后,系统将尝试对故障芯片进行自动恢复,如果可以恢复则在保持Pod运行状态下,将任务原地拉起继续训练,不能恢复则回退至重调度模式。
- 故障重调度模式存在以下级别。
- 训练重启:在任务重新调度之后,训练任务使用故障前自动保存的CheckPoint,重新拉起训练任务继续训练,缩短训练损失时间。
- 由框架实现保存和加载CheckPoint。
- 通过MindIO组件提供的能力,可以针对大模型训练中的故障恢复和checkPoint保存及加载进行加速。
重调度模式支持的产品和框架
产品类型 |
硬件形态 |
训练框架 |
---|---|---|
Atlas 训练系列产品 |
|
|
Atlas A2 训练系列产品 |
|
|
优雅容错功能支持的产品和框架
产品系列 |
产品名称 |
训练框架 |
---|---|---|
Atlas 训练系列产品 |
|
|
Atlas A2 训练系列产品 |
|
|
进程级在线恢复模式支持的产品和框架
产品系列 |
产品名称 |
训练框架 |
---|---|---|
Atlas A2 训练系列产品 |
|
PyTorch |
父主题: 特性说明