ai-infra-interview-305

第 165 题:多节点间的checkpoint同步?asynchronous checkpoint

题目

多节点间的checkpoint同步?asynchronous checkpoint


完整讲解

一、多节点 Checkpoint 的挑战

分布式训练时参数与优化器状态分片在各 rank,保存需把各分片写出(每 rank 写自己的或汇总到少数 rank);加载时需按相同分片方式读回并恢复通信组。若同步写:所有 rank 写完才继续,慢的 rank 拖累整体;若异步写:各 rank 独立写本地或共享存储,不互相等待,但需保证「恢复时能凑齐所有分片」且一致性(同一 step、同一全局状态)。

二、Asynchronous Checkpoint

异步 checkpoint:各 rank 独立、并行地把自己的分片写入存储(本地盘或共享存储),不阻塞其它 rank,也不做跨 rank 的「等大家都写完」。优点:写入阶段不因最慢 rank 而拉长,训练停顿时间短。要点:(1)命名与布局:约定分片文件名与目录(如 rank_0/, rank_1/),恢复时按 rank 读自己的分片;(2)元数据:在某一处(如 rank 0)写一份全局元数据(step、world_size、各分片 path),恢复时先读元数据再各 rank 读自己的分片;(3)一致性:异步下要保证「这次 checkpoint 对应同一 step」,通常在约定 step 同步一次后再各自写,避免写一半有 rank 已进入下一步。

三、与同步的取舍

同步 checkpoint 实现简单、语义清晰;异步牺牲一点实现复杂度换更短的 checkpoint 停顿,适合大规模、checkpoint 频繁的场景。恢复时仍需所有分片可用;存储可用性与故障处理需单独考虑。


面试要点


记忆要点

  1. 同步 = 等所有 rank 写完;异步 = 各写各的、不互相等,缩短停顿。
  2. 异步要点:分片命名、元数据(step、path)、恢复时按 rank 读。
  3. 约定 step 再写,保证同一 step 的全局一致。
返回模块 返回总览