VeRL Checkpoint
导言
RL checkpoint 比普通 SFT checkpoint 更复杂,因为它不仅要保存模型参数,还要保存 optimizer、scheduler、global step、采样状态,以及在异步模式下可能存在的队列和策略版本状态。
1. 主问题¶
- checkpoint 到底保存哪些 state。
- 保存时是否阻塞训练主流程。
- 恢复后能否保证数据、权重、优化器和 step 一致。
- mooncake checkpoint 相比 baseline 解决了什么问题。
2. Baseline Checkpoint Flow¶
2.1 需要保存的对象¶
- actor model weights
- optimizer state
- scheduler state
- global step / epoch
- dataloader state
- RNG state
- tokenizer / config / metadata
- 如果存在 critic / reward model,也要确认是否保存
2.2 恢复语义¶
- 恢复后 step 是否连续。
- optimizer state 是否完整。
- LR scheduler 是否从正确位置继续。
- 如果中断发生在 step 中间,恢复到 step 前还是 step 后。
3. Mooncake Checkpoint¶
待验证
mooncake checkpoint 的准确开关、依赖、存储后端、分片格式、异步保存语义,都需要回到代码和部署文档确认。
需要回答:
- 如何开关:环境变量、配置项还是插件方式。
- 代码位置:checkpoint manager、worker、storage adapter 还是 Ascend 平台层。
- 保存格式:单文件、多分片、对象存储、分布式文件系统。
- 一致性:异步保存是否需要 barrier,失败时如何回滚。
- 恢复速度:相对 baseline 是否显著降低 restore time。
4. 为什么默认不开¶
- 依赖外部存储或平台能力。
- 不同集群的权限、网络和文件系统差异大。
- 小模型或低频保存时收益不明显。
- 恢复语义和失败恢复需要更严格验证。
5. 对 MFU / SMA 的作用¶
- checkpoint 不直接提升 kernel 算力利用率。
- 它通过减少保存时的阻塞时间,提高长跑任务的有效训练时间占比。
- 对客户视角,重点不是单步 MFU,而是 长时间训练可用吞吐 和 失败恢复成本。
6. DFX 指标¶
- checkpoint duration
- blocked time
- save bandwidth
- restore duration
- checkpoint size
- save failure count
- restore success rate
- checkpoint interval 与训练吞吐的关系
7. 常见失败模式¶
- 保存不完整但元数据标记成功。
- actor 和 optimizer state 不一致。
- 异步 checkpoint 与训练 step 交错导致恢复错位。
- 多 rank 分片缺失。
- 权限或文件系统异常导致长时间阻塞。