断点续训特性在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保存及加载进行加速。
- 临终CheckPoint恢复:主要针对大模型训练中的故障恢复加速,通过临终CheckPoint数据恢复训练,减少故障造成的训练迭代损失。请参见《MindCluster 故障恢复加速》。
- 异步CheckPoint恢复:主要针对大模型训练中的CheckPoint保存及加载进行加速,将CheckPoint的数据先写入训练服务器的内存系统,再异步写入后端的可靠性存储设备,减少每次保存CheckPoint的训练损失。请参见《MindCluster CheckPoint保存与加载优化》。
重调度模式支持的产品和框架
表1 重调度支持的产品和框架产品类型
|
硬件形态
|
训练框架
|
Atlas 训练系列产品
|
- Atlas 800 训练服务器(型号 9000)
- Atlas 800 训练服务器(型号 9010)
|
- MindSpore
- TensorFlow
- PyTorch
|
Atlas A2 训练系列产品
|
- Atlas 800T A2 训练服务器
- Atlas 200T A2 Box16 异构子框
- Atlas 900 A2 PoD 集群基础单元
|
- MindSpore
- TensorFlow
- PyTorch
|
若Atlas 800 训练服务器的芯片工作模式为SMP模式,且每个Pod申请的NPU数量为1、2时,不支持使用重调度模式。查询和设置NPU芯片工作模式的详细介绍请参见《Atlas 800 训练服务器 iBMC用户指南(型号 9000)》中的“查询和设置NPU芯片工作模式(npuworkmode)”章节。
优雅容错功能支持的产品和框架
表2 优雅容错支持的产品和框架产品系列
|
产品名称
|
训练框架
|
Atlas 训练系列产品
|
- Atlas 800 训练服务器(型号 9000)(NPU满配)
- Atlas 800 训练服务器(型号 9010)(NPU满配)
- Atlas 800 训练服务器(型号 9000)(NPU半配)
- Atlas 800 训练服务器(型号 9010)(NPU半配)
|
|
Atlas A2 训练系列产品
|
- Atlas 800T A2 训练服务器
- Atlas 900 A2 PoD 集群基础单元
|
|
- 优雅容错模式支持Atlas 800 训练服务器的芯片工作模式为SMP模式,训练任务规模为4N及8N,N为训练节点数。查询和设置NPU芯片工作模式的详细介绍请参见《Atlas 800 训练服务器 iBMC用户指南(型号 9000)》中的“查询和设置NPU芯片工作模式(npuworkmode)”章节。
- 优雅容错模式支持Atlas 800T A2 训练服务器和Atlas 900 A2 PoD 集群基础单元的训练任务规模为8N,N为训练节点数。
进程级在线恢复模式支持的产品和框架
表3 进程级在线恢复支持的产品和框架产品系列
|
产品名称
|
训练框架
|
Atlas A2 训练系列产品
|
- Atlas 800T A2 训练服务器
- Atlas 900 A2 PoD 集群基础单元
|
PyTorch
|