临终CKPT保存
尽管通过异步保存周期性CKPT能够降低周期性保存间隔,从而降低每次故障的损失,但是由于仍然具有保存开销,难以做到秒级的故障损失。因此,MindCluster集群调度组件提供临终保存CKPT能力,在故障时刻保存当前step初始的参数状态,从而将训练恢复的状态损失降低到一个“step”以内。
MindCluster MindIO Try To Persist(下文简称MindIO TTP)提供临终CKPT能力,帮助用户在故障时刻保存临终时刻CKPT。
了解临终CKPT保存的详细介绍,请参见故障恢复加速。
了解临终CKPT保存的配置步骤,请参见配置临终CKPT保存。
适配功能点
在临终CKPT中,框架首先初始化MindIO服务,启动服务后优化器更新时会上报对应状态到MindIO。随后,创建DP副本组和优化器副本,以保障模型参数的冗余备份。在异常发生时,通过异常捕获装饰器捕获故障模式,之后执行算子资源清理,基于副本完成临终CKPT保存。
对于非MindSpeed-LLM用户,需在框架侧完成表1的功能适配。
适配功能点 |
功能简述 |
参考链接 |
|---|---|---|
初始化拉起 |
训练框架初始化时拉起MindIO服务。 |
|
上报优化器更新状态 |
优化器更新前上报优化器更新的开始和结束状态。 |
|
创建DP副本组 |
新增dp_cp/dp_ep副本组及gloo组创建逻辑,在原生Megatron分布式并行组创建后创建相关副本组。 |
|
优化器副本 |
接管、继承相关Megatron原生优化器功能,嵌入MindIO优化器副本管理逻辑。 |
|
异常捕获装饰器 |
使用异常捕获装饰器装饰train函数捕获故障模式。 |
|
算子资源清理 |
通过回调函数完成算子清理、恢复算子下发能力。 |
|
临终CKPT |
通过新增回调函数、优化器副本dump方法完成临终CKPT保存。 |
父主题: 训练恢复