跳转至

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 分片缺失。
  • 权限或文件系统异常导致长时间阻塞。

评论