返回 AI 基础设施 思维导图
中文·English
🖥️ AI 基础设施ID: model-storage

模型权重与检查点存储

Model Weight & Checkpoint Storage
🎯核心定义
模型权重与检查点存储。Safetensors 把张量数据与其布局元数据分离: 一个 JSON 头部描述每个张量的名称、形状、类型与字节偏移, 其后紧跟原始张量字节, 可 mmap 零拷贝加载; 而 PyTorch 默认的 `torch.save` 是 pickle 序列化, 反序列化会执行对象 `__reduce__` 携带的任意代码, 存在远程代码执行 (RCE) 风险。检查点格式: 单文件简单但保存/恢复粒度粗, 大模型常用分片 (sharded checkpoint, 每 rank/层组一个分片 + index.json 索引) 并行读写。模型仓库 (Model Registry, 如 Hugging Face Hub 式): 模型卡片 (Model Card) 记录用途、限制、数据与训练信息, 版本不可变, 支持回滚与灰度。权重体积与加载时间估算: FP16 权重 S=2×NparamsS = 2 \times N_{\text{params}} 字节, 加载时间 T=S/BT = S / B (BB 为 IO 带宽), 如 70B 模型 S140GBS \approx 140\,\text{GB}, 12GB/s 的 PCIe 需约 12 秒。
💡使用场景
权重达几 GB~几百 GB, 需要高效加载与安全分发; 生产环境多版本并存、上线/回滚与审计; 面试常问 Safetensors 为什么比 pickle 快且安全、大模型检查点怎么组织、模型仓库如何支撑版本管理。
解决的核心痛点
对比 pickle: 反序列化整个对象图慢, 且存在任意代码执行面, 跨 Python/PyTorch 版本兼容差; Safetensors 只加载所需张量(惰性加载)、mmap 零拷贝、无代码执行面, 百 GB 权重可秒级加载。对比手动复制权重文件: 仓库式不可变版本 + 原子切换让回滚可审计、可灰度, 避免「权重被覆盖后无法还原」的生产事故。
🎯5 个高频面试考点 (Exam Points)
1
Safetensors 与 pickle 的区别? 为什么用 pickle 反序列化模型权重不安全?
2
Safetensors 为什么加载更快? mmap 零拷贝与惰性加载的原理是什么?
3
大模型检查点单文件 vs 分片 (sharded) 的取舍? 恢复时如何用 index 并行加载?
4
模型仓库 (Model Registry / HF Hub 式) 的核心能力? Model Card 应包含什么?
5
线上模型版本回滚如何设计? 不可变版本、原子发布与灰度如何配合?
📖 关联深度指南:📄 mlops-and-testing
更新于 2026-08-12
🎯
检验攻克程度:针对「模型权重与检查点存储」专属刷题排雷
做单选排雷题、推导选项机制,答错自动收录进专属错题本。
🚀 开始本考点专项刷题
上一个知识点数据集管理与血缘下一个知识点训练数据加载与 IO

🔗 更多 AI 基础设施 知识点卡片

激活显存估算Agent 运行时(跨模块)弹性伸缩与成本优化检查点与故障恢复