恢复时间优化(MindSpore)
断点续训特性在使用MindSpore框架场景时,可以使用以下功能,缩短断点续训整体恢复时间,包括故障检测时间优化、训练回滚及加载Checkpoint时间优化和编译缓存时间优化。
故障检测时间优化
由于集群中出现的参数面网络故障不一定会影响训练任务,因此集群调度组件不会强制中断任务;当参数面网络故障影响训练任务时,会触发集合通信的网络超时等待机制,在等待时间(通常默认为30分钟)后,集群调度组件才能感知到该故障,从而触发断点续训。针对该问题,MindSpore提供watchdog故障检测功能,可用于检测训练任务是否受到影响,缩短故障检测时间,该功能的详细说明请参考表1。
训练回滚及加载Checkpoint时间优化
- 异步保存Checkpoint:训练任务会定期保存Checkpoint文件,用于保存参数信息,故障恢复需要从上一次保存的Checkpoint回滚恢复训练。由于每次保存Checkpoint文件均会消耗一定的训练时间,为了保证训练效率,保存Checkpoint的时间间隔通常较大,而保存间隔越大,每次故障时训练回滚浪费的时间就会越长。针对该问题,集群调度组件支持通过MindIO ACP异步保存Checkpoint,详细说明请参考表2。
表2 异步保存Checkpoint功能说明 功能名称
MindIO ACP异步保存Checkpoint。
功能特点
从NPU中获取Checkpoint后,异步写入存储中,降低每次保存Checkpoint的训练损失和保存周期,从而降低训练回滚时间。
使用说明
仅支持6.0.RC2及以上版本的集群调度组件和MindIO组件。
关键操作
安装和使用MindIO组件,请参见Checkpoint保存与加载优化章节。
- 高效恢复Checkpoint:回滚恢复训练时,通常需要从存储中加载保存的Checkpoint,由于Checkpoint数据量较大,直接从存储读取加载Checkpoint的耗时较长。针对该问题,集群调度组件支持通过MindIO ACP进行Checkpoint高效恢复,详细说明请参考表3。
表3 Checkpoint高效恢复功能说明 功能名称
MindIO Checkpoint高效恢复。
功能特点
将最新的Checkpoint存储到内存中,故障恢复时可直接从内存中读取Checkpoint,降低Checkpoint读取时间。
使用说明
仅支持6.0.RC2及以上版本的集群调度组件和MindIO组件。
关键操作
安装和使用MindIO组件,请参见Checkpoint保存与加载优化章节。
编译缓存时间优化
断点续训过程中拉起训练时需要构建计算图。在大模型场景下,构建计算图并编译需要消耗大量时间。针对该问题,MindSpore支持在首次编译时将编译缓存文件进行存储,进行故障恢复时可以直接读取存储中的图编译缓存,降低图编译时间,详细说明请参考表4。
父主题: 配置集成时间优化方案