Checkpoint

Checkpoint

训练存档点

Checkpoint(训练存档点)是机器学习训练过程中定期将模型权重、优化器状态及训练进度保存到持久化存储的技术。它是大规模模型训练中应对硬件故障、支持断点续训与版本回滚的核心机制,也是迁移学习和生产部署的基础载体。

概述

Checkpoint(训练存档点)是机器学习训练过程中定期将模型权重、优化器状态及训练进度保存到持久化存储的技术。它是大规模模型训练中应对硬件故障、支持断点续训与版本回滚的核心机制,也是迁移学习和生产部署的基础载体。

核心定义

Checkpoint 是训练状态的完整快照,涵盖了模型恢复所需的全部信息,而不仅仅是模型权重。

  • 模型权重:神经网络所有层的可学习参数张量
  • 优化器状态:Adam 等优化器的动量项、二阶矩估计、当前学习率等;体积约为参数量的 2 倍
  • 训练元数据:当前 epoch/step、随机数种子、损失曲线等,保证训练曲线连续
  • 架构配置:用于重建模型结构的超参数文件(通常为 JSON/YAML)
  • 完整的 checkpoint 可在相同或不同硬件上无损恢复训练进度,而单纯的权重文件无法做到这一点

为什么需要 Checkpoint

大规模模型训练动辄持续数天乃至数月,中断风险极高,checkpoint 是工程可靠性的基础保障。

  • 硬件故障容错:GPU/节点崩溃后可从最近存档点恢复,而非从头重训,节省数天乃至数周的计算资源
  • 实验可复现性:固定的存档点确保不同团队可复现同一训练阶段的结果,是科学严谨性的体现
  • 超参数调优:可从同一基础 checkpoint 出发,并行探索不同学习率或正则化配置,大幅提高效率
  • 提前停止与回滚:保留验证集最优 checkpoint,防止过拟合后无法恢复最优权重
  • 迁移学习起点:预训练 checkpoint 是微调(fine-tuning)、SFT、RLHF 等后续流程的标准输入

保存策略与类型

按触发条件和保留策略,checkpoint 可分为多种模式,实践中通常组合使用。

  • 定期保存(step-based):每隔固定步数写入,主要用于断点续训容灾,频率视存储成本而定
  • 最优保存(best checkpoint):仅在验证集指标改善时覆盖,用于挑选最终发布模型,防止过拟合
  • 滚动保留(rolling):只保留最近 N 个存档,旧版本自动删除,平衡容灾能力与存储成本
  • 发布中间权重:LLM 训练中定期对外公开的中间存档,供研究涌现能力缩放定律使用
  • 异步写入:为减少训练阻塞,DeepSpeed、PyTorch FSDP 等支持在后台并行持久化,降低 I/O 对吞吐的影响

技术实现

主流深度学习框架均提供内置的 checkpoint 序列化与加载接口,格式选择影响安全性与兼容性。

  • PyTorchtorch.save() 将字典序列化为 .pt/.pth 文件,torch.load() 恢复;早期依赖 pickle 存在安全隐患
  • TensorFlow/KerasModelCheckpoint 回调支持 .keras.ckpt.h5 三种格式,自动保存最优模型
  • safetensors:Hugging Face 推出的现代格式,相比 pickle 更安全、加载速度更快,已成为开源社区事实标准
  • 分片 checkpoint:大模型采用多文件分片(sharded checkpoint)保存,配合 index.json 描述各分片映射关系
  • DeepSpeed/FSDP:分布式训练框架提供 ZeRO/FSDP 感知的分片保存与统一合并工具,适配多节点场景

MLOps 生产实践

生产环境中 checkpoint 管理与模型注册表、评测报告深度集成,构成模型生命周期管理的核心。

  • 版本化绑定:每个 checkpoint 应与代码提交哈希、训练数据版本、超参数配置绑定,保证完整血缘追溯
  • 模型注册表:Checkpoint 晋升为候选模型后,通过 MLflow Model Registry 或 W&B Artifacts 管理 Staging/Production 阶段
  • 评测门控:只有通过自动化 benchmark 评测(准确率、延迟、公平性指标)的 checkpoint 才可晋升生产,防止未测试版本上线
  • 快速回滚:生产模型出现性能回归时,可一键切换到上一个评测通过的 checkpoint 版本,是 MLOps 可靠性的底线
  • 存储成本管理:70B 参数模型 bf16 精度约需 140 GB,加上优化器状态可超 400 GB,需制定明确的保留策略

发展脉络

Checkpoint 机制随深度学习规模的增长持续演化,从单机容灾工具演变为分布式训练的核心基础设施。

  • 早期 HPC:Checkpoint 思想源自传统高性能计算容错机制,用于长时间批处理任务的进度保存
  • 深度学习初期:PyTorch/TensorFlow 以 pickle/protobuf 格式序列化权重,基本满足单机小模型需求
  • 2020 年前后:模型规模急剧扩大,DeepSpeed ZeRO 等框架实现分片 checkpoint,应对千亿参数级分布式训练
  • 2022 年:Hugging Face 推出 safetensors 格式,逐渐取代 pickle 成为社区标准;arXiv 论文系统分析了大规模训练中的 checkpoint 策略
  • 2023 年至今:Llama 2、Mistral 等模型发布中间 checkpoint,推动开源生态中 checkpoint 共享的规范化实践

常见误解

日常交流中容易听到的简化说法,未必准确,但能帮助理解误解从何而来。

  • 「训练存档点」
  • 「落地部署必懂」
  • 「跟 Checkpoint 是一回事吗」

相关术语

和本术语关联紧密的其他词条,便于串联理解。

🎯 考点练习

含该术语的高频面试题,含标准答案与追问。

延伸阅读

从知识库精选 2 篇文章,帮助深入理解该术语。

  1. 1

    MLOps 实战:模型版本管理与实验追踪

    从 MLflow 到 WandB,掌握机器学习实验追踪与模型版本管理的最佳实践

  2. 2

    ML 流水线设计与自动化

    从数据处理到模型部署,掌握 MLOps 流水线的最佳实践