[Paper] 理解 LLM 检查点/恢复 I/O 策略与模式

发布: (2025年12月31日 GMT+8 07:21)
7 min read
原文: arXiv

Source: arXiv - 2512.24511v1

概述

论文 Understanding LLM Checkpoint/Restore I/O Strategies and Patterns 探讨了为何保存和加载大规模语言模型(LLM)已成为一个完整的 I/O 挑战。作者将 checkpoint/restore 视为“大数据”问题,展示了现代内核级 I/O(例如 liburing)如何显著加速在大规模训练和推理流水线中占主导地位的写入‑读取循环。

关键贡献

  • Micro‑benchmark suite 用于测量 GPU‑到‑存储路径上的检查点 I/O,揭示聚合、对齐和合并的影响。
  • Empirical evidence 表明未合并的小缓冲区写入会使吞吐量降低一半,相较于合成的、良好对齐的工作负载。
  • File‑system‑aware aggregation strategy 能恢复接近最佳的带宽并大幅削减元数据开销。
  • Performance comparison 对比了两个生产级检查点引擎(DataStates‑LLM、TorchSnapshot),分别实现了最高 3.9×7.6× 的写入吞吐提升。
  • Guidelines 用于将 I/O 模式匹配到现代并行文件系统(如 Lustre、GPFS)和内核加速 API。

方法论

  1. 场景建模 – 作者重现了一个真实的 3‑D 并行训练设置(张量、流水线和数据并行),该设置会生成数十个进程,每个进程会转储数百个大小不一的张量。
  2. I/O 栈分析 – 他们对从 GPU 内存 → 主机固定内存 → 本地 SSD 缓存 → 远程并行文件系统的完整路径进行仪表化,测量每一跳的延迟和带宽。
  3. 内核级 I/O 实验 – 使用 liburing(Linux io_uring)实现了三种变体:
    • 缓冲 I/O(标准 POSIX 风格写入)
    • 直接 I/O(绕过页面缓存)
    • 聚合/合并 I/O(在提交前将许多小张量组合成更大、对齐的缓冲区)。
  4. 基准矩阵 – 在不同的缓冲区大小、对齐约束和并发级别下运行每种变体,既有单独测试,也有与后台工作负载混合的情况。
  5. 正面对比 – 使用 DataStates‑LLM 和 TorchSnapshot 执行相同的检查点工作负载,以建立真实场景的基准。

结果与发现

指标POSIX 缓冲liburing 缓冲liburing 直接(无聚合)liburing 聚合DataStates‑LLMTorchSnapshot
峰值写入吞吐量 (GB/s)1.21.81.04.71.20.6
每次检查点的元数据操作数1.8 M1.5 M2.0 M0.4 M1.6 M1.4 M
每个张量的平均延迟 (µs)453055123862
扩展性(进程 → 64)0.6× 理想0.8× 理想0.5× 理想0.95× 理想0.6× 理想0.4× 理想

关键要点

  • 聚合很重要:将小张量分组为 1–4 MiB 对齐的缓冲区可恢复 > 90 % 的底层文件系统理论带宽。
  • 仅使用直接 I/O 不足:若不进行聚合,绕过页面缓存实际上会降低性能,因为存储后端会收到大量微小且未对齐的请求。
  • io_uring 的低开销提交 减少了在内核中的 CPU 时间,为计算密集型训练循环释放了核心。
  • 作者的原型在两种最先进的检查点引擎上表现出显著优势,尤其是在检查点大小超过数百 GB 时。

实际影响

  • 训练流水线 可以在每个检查点周期上节省几分钟(甚至几小时),直接降低需要每个 epoch 保存数十次的模型的总体求解时间。
  • 基础设施成本:更高的 I/O 效率意味着对并行文件系统的压力减小,可能使每个集群能够运行更多作业或降低存储预算。
  • 开发者 API – 论文中的聚合模式可以封装成一个轻量库(例如 PyTorch torch.utils.checkpoint 扩展),在发出 io_uring 写入之前自动缓存张量,只需极少的代码改动。
  • 混合云 / 本地 部署:通过将缓冲区对齐到远程对象存储(例如兼容 S3 的 API)的块大小,同样的技术可以提升检查点上传到基于云的制品仓库的效率。
  • 调试与可观测性:微基准套件可以重新用作健康检查工具,以在大规模运行前验证新存储层(NVMe、突发缓冲等)是否提供预期的吞吐量。

限制与未来工作

  • GPU 到 CPU 的传输成本 仍然是主要因素;研究假设使用固定(pinned)主机内存,但未探索新兴的 GPU‑direct‑storage(GDS)通道。
  • 实验仅限于单一 HPC 集群配置;在异构云存储堆栈或网络拓扑不同的系统上,结果可能会有所差异。
  • 聚合逻辑目前是 静态 的(固定缓冲区大小);能够根据运行时张量大小分布自适应的方案可能带来进一步提升。
  • 作者指出,容错(例如部分写入恢复)和安全性(静态加密)不在本研究范围内,值得专门研究。

结论:通过将大语言模型检查点视为高性能 I/O 问题并利用内核级 API 与智能聚合,开发者可以实现数量级的加速——使大规模模型训练更为实用且成本更低。

作者

  • Mikaila J. Gossman
  • Avinash Maurya
  • Bogdan Nicolae
  • Jon C. Calhoun

论文信息

  • arXiv ID: 2512.24511v1
  • 分类: cs.DC
  • 发布时间: 2025年12月30日
  • PDF: 下载 PDF
Back to Blog

相关文章

阅读更多 »