VeRL Checkpoint
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
需要回答:
- 如何开关:环境变量、配置项还是插件方式。
- 代码位置: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 分片缺失。
- 权限或文件系统异常导致长时间阻塞。