模型層 開放閱讀

非同步 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 節結構 公司投研頁 沿產業鏈找到受益公司 投資課 把概念轉成可跟蹤模型