模型层 开放阅读

异步 Checkpoint

Asynchronous Checkpointing

概念 ID
asynchronous-checkpointing
更新时间
2026-05-29
来源数量
待补

异步 Checkpoint(Asynchronous Checkpointing)

3 秒看懂

一句话:大模型训练每隔几分钟就要”存档”一次以防宕机——异步 Checkpoint 让存盘动作在后台进行,GPU 一边训练一边写盘,把原本每次数分钟的训练停顿压缩到数秒甚至接近零感知,直接提升有效训练吞吐 5–15%

3 分钟产业解释

为什么它突然变成刚需?

  1. 模型规模爆炸:千亿参数模型的一次 Checkpoint 数据量(权重 + 优化器状态 + 辅助元数据)轻松达到 数百 GB 至数 TB 量级 [供应链估算,依据混合精度 Adam 下约 14–16 bytes/param 估算]。
  2. 集群故障率极高:万卡级训练集群的平均故障间隔(MTBF)经常只有 数小时至十几小时 [行业共识,Meta/Google/Microsoft 多次公开分享]。不做 Checkpoint 等于裸奔。
  3. 同步写盘代价巨大:传统同步 Checkpoint 需要暂停训练→序列化→写存储→恢复,一次完整写入可能耗时 数分钟到十几分钟 [估算,取决于存储带宽与模型规模]。在 10,000 张 GPU 的集群上,每分钟停顿意味着约 500–800 美元的 GPU 空转。
  4. 异步方案的本质:把”写存储”这个 I/O 瓶颈从关键路径上移除——GPU 先快速把状态拍一个快照到 CPU 内存(通常数秒),随即恢复训练;后台线程再把 CPU 内存中的数据慢慢写到分布式存储。

产业影响:异步 Checkpoint 已成为所有主流大模型训练框架的标配功能,直接决定了训练集群的有效利用率(MFU)和总拥有成本(TCO)。

15 分钟专家深入

核心设计思路

┌──────────── 同步 Checkpoint ────────────┐
│                                          │
│  ──GPU训练──┐                            │
│             │ 序列化 → 写存储(阻塞)     │
│  ──GPU空转──┤   ... 数分钟 ...           │
│             │ 恢复训练                    │
│  ──GPU训练──┘                            │
└──────────────────────────────────────────┘

┌──────────── 异步 Checkpoint ────────────┐
│                                          │
│  ──GPU训练──┐                            │
│             │ 快照到 CPU buffer(数秒)   │
│  ──GPU训练──┤ ← 立即恢复                 │
│  ──GPU训练──┤                            │
│  ──GPU训练──┤  后台线程写存储 ...         │
│  ──GPU训练──┤                             │
│  ...        │                            │
│  ──GPU训练──┘ (几乎无感知)               │
└──────────────────────────────────────────┘

关键技术分层

层次任务异步方案要点
GPU→CPU 快照将显存中的权重/优化器状态拷贝到 CPU pinned memory利用 CUDA stream + cudaMemcpyAsync 重叠计算与传输;通常 数秒 级完成 [估算]
CPU 缓冲管理维护 staging buffer,避免与下次 Checkpoint 冲突单缓冲(写完才能拍下一帧)vs 双缓冲(乒乓切换,实现连续异步)
CPU→存储 I/O将 CPU buffer 持久化到分布式文件系统后台 daemon/thread;写入速度取决于存储带宽(常见 NFS/GPFS/对象存储,带宽从数十 GB/s 到数百 GB/s 不等)[估算]
一致性保证确保 Checkpoint 原子性与分布式一致性文件级原子 rename;或分片写入 + manifest 元数据
容错恢复训练中断后从 Checkpoint 恢复需要保存 RNG 状态、LR scheduler 状态、epoch/step 等完整快照

三种主流实现模式

模式 A:CPU Staging + Background Write

最经典的方案。GPU 状态先拷贝到 CPU pinned memory,然后由后台线程异步写入存储。

  • 代表:PyTorch torch.distributed.checkpoint(DCP)的异步写入模式;NVIDIA NeMo 的异步 Checkpoint 功能
  • 优点:实现相对简单,兼容性好
  • 瓶颈:CPU 内存容量——千亿级模型的 Checkpoint 可达 TB 级,需要 TB 级 CPU 内存做 staging

模式 B:Chunked/Elastic Checkpointing

将 Checkpoint 拆分为独立的 chunk,每个 chunk 可以被独立、并行地写入和恢复。

  • 代表:ByteCheckpoint(字节跳动)——支持 Checkpoint 的弹性 resharding,可在不同并行拓扑下恢复
  • 优点:解决了分布式训练中并行度变化时的 Checkpoint 兼容性问题
  • 技术细节:对张量按维度分片并记录 metadata manifest,支持拓扑无关的恢复

模式 C:GPU Direct Storage / RDMA Write

跳过 CPU,直接从 GPU 显存通过 NVMe-oF 或 RDMA 写入远端存储,进一步减少数据搬运路径。

  • 代表:NVIDIA GPUDirect Storage(GDS)在 Checkpoint 场景的探索
  • 优点:理论上可消除 GPU→CPU 拷贝瓶颈
  • 挑战:需要存储基础设施全面支持;目前生态尚不成熟 [行业判断]

技术原理

1. 状态序列化机制

一次 Checkpoint 需要保存的完整训练状态(以 Adam 混合精度训练为例):

┌─────────────────────────────────────────────┐
│           Checkpoint 数据构成               │
├─────────────────┬───────────────────────────┤
│ 组件            │ 每参数开销(混合精度 Adam)│
├─────────────────┼───────────────────────────┤
│ fp16/bf16 权重  │ 2 bytes                   │
│ fp32 主权重副本  │ 4 bytes                   │
│ Adam 一阶矩(m)  │ 4 bytes                   │
│ Adam 二阶矩(v)  │ 4 bytes                   │
├─────────────────┼───────────────────────────┤
│ 合计            │ ≈ 14 bytes/param          │
└─────────────────┴───────────────────────────┘

示例估算:175B 参数模型 → 175 × 10⁹ × 14 bytes ≈ 2.45 TB [纯数学估算,具体视框架实现而定——部分框架可能只存 fp16 权重 + fp32 优化器状态,即约 10 bytes/param → ~1.75 TB]

此外还需保存:

  • RNG 状态:CPU/GPU 各自的随机数生成器状态,确保恢复后数据加载顺序完全一致
  • LR scheduler 状态:当前 step、warmup decay 等
  • 数据加载器状态:epoch 号、当前 shard offset 等
  • Distributed metadata:并行拓扑描述、TP/PP/DP 分组信息

2. 异步写入的并发控制

时间轴:
GPU: [===训练===][==快照==][===训练==========][==快照==][===训练===]
CPU:              [--写存储-----------]               [--写存储---]
                                    ↑ 如果下次快照时上次还没写完怎么办?

关键问题:Double Buffering 解决写冲突

┌──────────────────────────────────────────────────┐
│                Double Buffering                   │
│                                                  │
│   Buffer A: [████ 快照写入中 ████]               │
│   Buffer B:                  [████ 快照写入 ████] │
│   Buffer A:                                       │
│              ↑交替切换,互不阻塞                   │
└──────────────────────────────────────────────────┘
  • 需要 2× CPU 内存 做 staging(或在单缓冲下用信号量阻塞——但会退化为半同步)
  • 实际工程中,常使用 引用计数 + 内存池 管理 buffer 生命周期

3. 原子性与一致性

写入策略(典型):

1. 写入临时目录: /ckpt/step_10000.tmp/
2. 所有分片写完后,原子 rename:
   mv /ckpt/step_10000.tmp/ → /ckpt/step_10000/
3. 保留最近 N 个 Checkpoint,自动清理旧的

分布式一致性要求:

  • 所有 rank 必须在同一个 step 做 Checkpoint
  • 写入完成后,所有 rank 通过 barrier 或 ack 机制确认
  • 恢复时读取最新的完整 Checkpoint(如果某些 rank 的分片缺失,该 Checkpoint 无效)

4. 通信开销分析

在张量并行(TP)场景下,每个 rank 持有模型的一个 shard。常见做法:

并行策略Checkpoint 保存方式异步处理
数据并行(DP)每个 rank 持有完整模型副本,通常由 rank 0 保存完整 Checkpointrank 0 独立异步写
张量并行(TP)每个 TP rank 保存自己的 shard各 rank 独立异步写,最后 barrier
流水线并行(PP)每个 PP stage 保存自己的层参数各 stage 独立异步写
ZeRO(FSDP)每个 rank 保存自己持有的分片各 rank 独立异步写

注意:在传统数据并行(DP)中,各 rank 权重相同,通常仅需一个 rank(如 rank 0)保存完整模型,无需 AllGather。而在 FSDP/ZeRO 分片数据并行下,每个 rank 只持有部分参数,常见的做法是直接保存各自分片,恢复时再重组完整权重。


技术演进史

时期背景Checkpoint 方案痛点
2015–2018小模型训练(百万~数亿参数)torch.save() 同步写入本地 SSD模型小,几秒写完,问题不突出
2018–2020BERT/GPT-2 时代(数亿~百亿参数)同步写入 NFS,开始出现分钟级阻塞存储带宽成为瓶颈;NFS 元数据操作慢
2020–2022GPT-3/Megatron 时代(百亿~千亿参数)引入 CPU staging + 后台写入;Megatron-LM 引入分布式分片 CheckpointCPU 内存需求激增;分布式协调复杂
2022–2023千亿~万亿 MoE 模型Chunked checkpointing;ByteCheckpoint 提出弹性 resharding;PyTorch DCP 标准化跨并行拓扑恢复困难;状态体积进一步膨胀
2023–2025万卡训练常态化;Checkpoint 达 TB 级异步 + 双缓冲 + GDS 探索;GPU 内存直写远端存储原型;增量 Checkpoint 研究存储基础设施全面升级需求;一致性语义标准化

技术路线对比

维度同步 Checkpoint异步(单缓冲)异步(双缓冲)增量/Delta Checkpoint
训练暂停时间= 完整 I/O 时间(数分钟~十几分钟)= GPU→CPU 拷贝时间(数秒)≈ GPU→CPU 拷贝时间(数秒)极短(仅传变化部分)
CPU 内存开销最低(临时占用)1× Checkpoint 大小2× Checkpoint 大小视实现,可能较低
有效吞吐提升基准估算 5–10%估算 8–15%理论最优,但实现复杂
实现复杂度中高高(需跟踪参数变化)
数据一致性保证最强(原子阻塞)较强(依赖实现)较强需额外机制保证基线对齐
对存储带宽要求高(必须在暂停期内写完)中(写入时间可放宽)低(仅传 delta)
代表框架支持所有框架默认PyTorch DCP;DeepSpeedByteCheckpoint;NeMo学术探索为主

:吞吐提升数字为行业估算,实际取决于模型规模、存储带宽、Checkpoint 频率等多个因素。


上下游

上游(依赖/输入)                     下游(受益/输出)
┌──────────────────────┐           ┌──────────────────────┐
│ GPU 集群 + 训练框架    │           │ 训练吞吐 / MFU       │
│ (PyTorch/DeepSpeed/   │──────────→│ (有效利用率提升 5-15%)│
│  Megatron-LM/NeMo)    │           ├──────────────────────┤
├──────────────────────┤           │ 训练中断时间(Stall Time)│
│ 分布式文件系统         │           │ (从分钟级→秒级)       │
│ (NFS/GPFS/Lustre/     │           ├──────────────────────┤
│  对象存储)             │           │ Checkpoint 频率       │
├──────────────────────┤           │ (可从每30min→每5min)  │
│ CPU 内存(作为         │           ├──────────────────────┤
│  staging buffer)      │           │ 训练集群 TCO          │
├──────────────────────┤           │ (每年节省数百万美元     │
│ NVMe SSD / RDMA 网络  │           │  的 GPU 空转成本)     │
└──────────────────────┘           └──────────────────────┘

关键上游瓶颈

  • CPU 内存:双缓冲需要 2× Checkpoint 大小的 CPU RAM;千亿级模型意味着 TB 级 CPU 内存需求
  • 存储带宽:决定了后台写入能否在下次 Checkpoint 前完成——如果写不完,将退化为半同步
  • 网络带宽:GPU→CPU 拷贝在跨节点场景下可能受 PCIe/InfiniBand 带宽限制

关键指标

指标定义典型量级(千亿参数级)备注
Checkpoint 大小一次完整保存的数据量数百 GB ~ 数 TB取决于参数量与精度格式
快照时间(Snapshot Latency)GPU→CPU 拷贝耗时数秒~十数秒与 PCIe 带宽和模型规模相关 [估算]
写盘时间(Flush Latency)CPU→存储 I/O 耗时数分钟~十几分钟与存储带宽成反比 [估算]
训练中断时间(Stall Time)异步方案中训练实际暂停时间≈ 快照时间异步方案的核心收益所在
Checkpoint 频率每次 Checkpoint 之间的间隔5–30 分钟更频繁→更少丢失的工作量
MTBF × Checkpoint Interval故障间隔与存档间隔的乘积需保证 MTBF >> Interval决定最大丢失工作量
CPU 内存开销staging buffer 占用1×~2× Checkpoint 大小双缓冲 = 2×
I/O 吞吐实际写存储的带宽利用率数十~数百 GB/s依赖存储基础设施

供需与市场数据

需求端驱动

  • 训练集群规模持续扩大:头部厂商单集群已达数万张加速卡规模,MTBF 随集群规模增大而缩短 [行业共识]。
  • 模型参数规模继续增长:MoE 架构下总参数达万亿级,激活参数虽小但 Checkpoint 需保存全部专家参数。
  • 训练成本高企:万卡集群每天运营成本可达百万美元级别 [基于公开云计算定价和行业估算]——5% 的吞吐提升即意味着每年数千万美元的成本节省。

供给端现状

维度现状
框架支持PyTorch DCP、DeepSpeed、Megatron-LM、JAX/Flax 等主流框架均已支持异步或半异步 Checkpoint [基于公开文档]
存储基础设施传统 NFS 性能不足;头部厂商已转向高性能并行文件系统(GPFS、Lustre)或自研分布式存储 [行业观察]
CPU 内存配置高端 AI 训练服务器的 CPU 内存配比提升——部分供应商开始标配 TB 级 CPU 内存 [供应链估算]
新兴技术CXL 内存池化可缓解单节点 CPU 内存不足;GPU Direct Storage 可优化数据路径 [技术趋势]

市场关联

异步 Checkpoint 本身不是独立产品,而是训练框架的内嵌能力。其市场影响体现在:

  • 提升 GPU 利用率→降低单位训练成本→扩大 AI 训练的经济可行性边界
  • 拉动高性能存储需求→分布式文件系统、NVMe 全闪存阵列、RDMA 网络市场增长
  • 推动大内存服务器需求→影响服务器 ODM/OEM 的 BOM 配置

代表公司与资本映射

公司/机构角色具体关联
NVIDIAGPU + 框架 + 存储全栈NeMo 框架内置异步 Checkpoint;GPUDirect Storage 技术;Megatron-LM 维护者
Meta (PyTorch)框架核心PyTorch torch.distributed.checkpoint(DCP)是异步 Checkpoint 的标准接口之一
字节跳动框架创新ByteCheckpoint 论文提出 Chunked + 异步 + 弹性 resharding 的综合方案
Microsoft (DeepSpeed)框架DeepSpeed Checkpoint 系统支持 ZeRO 分片状态的异步保存
Google (JAX/TPU)框架+硬件Orbax 是 JAX 生态的 Checkpoint 库,支持异步写入;TPU Pod 有专用的持久化 Checkpoint 机制
存储厂商 (DDN, Vast Data, WEKA, NetApp 等)基础设施高性能并行文件系统直接决定异步写入能否在窗口期内完成
内存厂商 (Samsung, SK hynix, Micron)硬件上游DDR5/HBM 产能;CXL 内存扩展模块可缓解 CPU 内存 staging 瓶颈

投资逻辑

核心投资映射

  1. GPU/加速卡龙头(NVIDIA 等)

    • 异步 Checkpoint 提升 GPU 有效利用率 → 同等算力下可训更大模型 → 加速大模型落地 → GPU 需求增长
  2. 高性能存储

    • Checkpoint 写入带宽是硬约束 → 头部训练集群必须采购高性能并行存储 → DDN/Vast Data/WEKA 等受益
  3. 服务器/内存

    • CPU 内存 staging 需求推高单节点 DRAM 配比 → 大内存服务器渗透率提升 → 影响服务器 ODM 及内存供应商
  4. CXL 生态

    • CXL 2.0/3.0 的内存池化能力可以解耦 CPU 内存与单节点物理限制 → 长期缓解 Checkpoint staging 内存瓶颈

风险与不确定性

  • 存储技术可能滞后于模型增长速度——如果 Checkpoint 体积增速持续超过存储带宽增速,异步方案的”后台写入”窗口将不够用,可能倒逼训练频率下降或需要更激进的增量 Checkpoint 方案。
  • 新兴持久化内存(如 Intel Optane 后续方案、CXL-attached NVM)可能改变存储层级,使”写盘”不再是瓶颈——这将降低异步 Checkpoint 的边际价值,但短期内此类技术规模化尚有距离。

常见误读纠偏

❌ 误读 1:“异步 Checkpoint = 完全不影响训练速度”

纠偏:异步 Checkpoint 只是把”I/O 写入”从关键路径上移除,但 GPU→CPU 的快照拷贝仍然需要时间,且 CPU 内存拷贝可能与 GPU 计算竞争 PCIe 带宽。在双缓冲方案下,GPU 拷贝通常仍需数秒~十几秒的短暂暂停。真正的”零感知”需要 GPU 计算与内存拷贝完全重叠(通过 CUDA stream overlapping),但实测中由于 PCIe 带宽限制,很难做到 100% 重叠。此外,如果后台写入未完成时下一个 Checkpoint 点到了,双缓冲耗尽后将退化为半同步阻塞。

❌ 误读 2:“异步 Checkpoint 不需要额外硬件资源”

纠偏:异步方案以 空间换时间——需要额外的 CPU 内存做 staging buffer(单缓冲 1×,双缓冲 2× Checkpoint 大小)。对于千亿参数模型,这意味着数百 GB 乃至 TB 级的额外 CPU 内存占用。此外,后台写入也需要持续占用存储 I/O 带宽和 CPU 线程资源,可能在一定程度上与数据加载(data loading)竞争 I/O 带宽。

❌ 误读 3:“同步 Checkpoint 已经被淘汰”

纠偏:对于中小模型训练(数十亿参数以下),同步 Checkpoint 仍然足够且实现简单、一致性最强。异步方案的收益在模型规模大到 Checkpoint 写入耗时不可忽略时才显著。此外,某些对一致性要求极高的场景(如合规审计、可复现性要求)仍倾向于同步方案。

❌ 误读 4:“异步 Checkpoint 的数据一定是完整一致的”

纠偏:异步写入增加了 一致性窗口期——如果在后台写入过程中发生硬件故障(如存储节点宕机),可能导致 Checkpoint 文件不完整。工程上需要通过 原子 rename(写到临时目录再原子性移动)、校验和验证(checksum)等机制保证最终一致性。但在极端故障场景下(如整个存储集群中断),异步方案的风险确实比同步方案稍高。


学习路径

Level 0: 理解基础
├── 什么是 Checkpoint?为什么训练需要 Checkpoint?
├── 同步 vs 异步编程模型的基本概念
└── 推荐:PyTorch 官方文档 "Saving and Loading Checkpoints"

Level 1: 理解规模效应
├── 为什么大模型的 Checkpoint 这么大?(算一算 175B 模型的状态大小)
├── 分布式训练中的 Checkpoint 困难(TP/PP/DP 各自存什么?)
└── 推荐:Megatron-LM 论文中的 Checkpoint 部分

Level 2: 理解异步机制
├── CUDA stream 与异步拷贝(cudaMemcpyAsync)
├── PyTorch DCP(torch.distributed.checkpoint)架构
├── CPU pinned memory 与 page-locked memory 的作用
└── 推荐:PyTorch DCP 源码 + 设计文档

Level 3: 工程实践
├── DeepSpeed Checkpoint 配置与调优
├── 双缓冲方案的实现细节
├── 存储选型(NFS vs GPFS vs Lustre vs 对象存储)
└── 推荐:ByteCheckpoint 论文(如有公开版本)

Level 4: 前沿研究
├── 增量/Delta Checkpoint
├── GPU Direct Storage 在 Checkpoint 场景的应用
├── CXL 内存池化对 Checkpoint staging 的影响
└── 与 Activation Checkpointing(梯度检查点)的区别和协同

一句话总结

异步 Checkpoint 是大模型训练基础设施的关键效率优化——通过将存储 I/O 从训练关键路径上剥离,它把每次”存档”的训练停顿从分钟级压缩到秒级,在万卡集群上每年可节省数百万至千万美元的 GPU 空转成本,是当前大模型训练框架的标配能力。


延伸阅读与来源

来源说明类型
PyTorch torch.distributed.checkpoint 官方文档DCP 异步写入 API 与使用指南框架文档
ByteCheckpoint(字节跳动)Chunked + 异步 + 弹性 resharding 的综合方案技术论文(待确认公开版本)
Megatron-LM GitHubNVIDIA 的分布式训练参考实现,含 Checkpoint 逻辑开源代码
DeepSpeed Checkpoint 文档ZeRO 分片状态的异步保存框架文档
Orbax(Google/JAX)JAX 生态 Checkpoint 库,支持异步写入开源库
NVIDIA GPUDirect Storage 文档GPU 直写存储技术技术文档
Meta “Building RSC” / Google TPU Pod 相关博客大规模集群的 Checkpoint 实践经验分享行业分享
CXL Consortium 规范CXL 内存扩展技术,可能影响未来 staging 方案行业标准

声明:本文中未标注具体来源的数字均为基于公开行业共识的合理估算,标注为 [估算] 或 [供应链估算]。具体实现细节请以各框架最新版本文档为准。

source: 公开披露与公开资料整理 本页仅用于产业链学习、信息检索和研究辅助;不构成投资建议,不预测涨跌,不提供买卖、仓位或目标价建议。
完整概念页 复盘 13 节结构 公司投研页 沿产业链找到受益公司 投资课 把概念转成可跟踪模型