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 序列化与加载接口,格式选择影响安全性与兼容性。
- PyTorch:
torch.save()将字典序列化为.pt/.pth文件,torch.load()恢复;早期依赖 pickle 存在安全隐患 - TensorFlow/Keras:
ModelCheckpoint回调支持.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 是一回事吗」
相关术语
和本术语关联紧密的其他词条,便于串联理解。
🎯 考点练习
含该术语的高频面试题,含标准答案与追问。
- 中级概念查看详解 →
数据与模型版本管理为什么重要?有哪些工具?
版本化数据/模型保证实验可复现、可审计、可回滚;DVC/lakeFS 管数据,Model Registry 管模型生命周期。
- 中级系统设计高频查看详解 →
如何设计一个端到端的机器学习训练流水线?
ML 流水线 = 数据→特征→训练→评估→注册→部署→监控的可编排链路,核心是可复现、可回滚与线上线下一致。
- 高级系统设计查看详解 →
如何设计一个大规模分布式模型训练平台?
K8s GPU 调度 + 数据/张量/流水线并行 + checkpoint 弹性容错 + 数据管线与实验管理,关注扩展效率与故障恢复。
- 中级场景高频查看详解 →
训练 / 推理显存 OOM,有哪些解决手段?
先看显存花在哪(激活/参数/优化器状态),再用减 batch、梯度累积、混合精度、梯度检查点、offload/并行逐级释放。
延伸阅读
从知识库精选 2 篇文章,帮助深入理解该术语。
