深度学习模型文件格式大全:.safetensors、.ckpt、.pt、.pth、.onnx、.gguf、.bin 和 .pkl 等格式详解

📝 引言

在深度学习领域,模型文件格式的选择直接影响到模型的存储、加载效率、安全性和跨平台兼容性。本文将全面解析主流的模型文件格式,帮助读者在不同应用场景下做出最优选择。


💾 主流模型文件格式详解

1. .safetensors - 新一代安全高效的模型格式

核心特性
  • 开发方:由 Hugging Face 团队开发
  • 设计目标:安全性、高效加载、跨平台兼容
  • 文件内容:仅包含模型的权重参数,不包含可执行代码
  • 存储结构:优化的二进制格式,支持内存映射
主要优势
  • 安全性:完全避免了代码注入风险
  • 加载速度
    • 通过内存映射技术,显著提升大模型加载速度
    • 支持零拷贝加载(Zero-copy loading),直接从磁盘映射到内存,无需额外的内存拷贝操作
    • 特别适合加载大型模型,可显著减少内存使用和加载时间
  • 灵活访问:支持选择性加载特定层的权重
  • 内存效率:优化的文件布局,减少内存占用
  • 适用场景:Hugging Face 生态、快速部署

2. .ckpt - PyTorch Lightning 的标准格式

核心特性
  • 适用框架:PyTorch Lightning 生态
  • 存储范围:完整训练状态(模型参数、优化器状态、训练进度等)
  • 主要用途:训练过程的中断与恢复
安全风险
  • 使用 pickle 序列化,存在代码注入风险
  • 缺乏内置的完整性验证机制
  • 难以检测潜在的恶意代码

3. .pt/.pth - PyTorch 原生格式

核心特性
  • 适用框架:PyTorch
  • 存储选项
    • 仅保存权重参数(state_dict)
    • 保存完整模型(包含结构)
  • 文件扩展名:.pt 和 .pth 本质相同,命名偏好不同
    • .pt 文件:更适合保存完整的模型,包括结构和参数。这使得在加载模型时不需要重新定义模型结构,便于模型的分享和部署。
      例如,当需要将模型直接用于推理时,.pt 文件是一个方便的选择。
    • .pth 文件:更适合保存模型的状态字典,通常用于模型的训练和开发阶段。
      当需要在不同环境中重新定义模型结构并加载参数时,.pth 文件更为灵活。
      例如,在迁移学习中,通常会加载 .pth 文件中的权重到新的模型结构中。
  • 文件大小
    • .pt 文件:通常较大,因为它可能包含完整的模型结构和参数。
    • .pth 文件:通常较小,因为它只包含模型的参数,不包含模型结构。
  • 社区偏好
    • .pt 文件:
      更常用于保存完整的模型,尤其是在模型部署和分享时。
    • .pth 文件:
      更常用于保存模型的状态字典,尤其是在模型训练和开发阶段。
  • 使用方法:
    # 保存模型权重
    torch.save(model.state_dict(), 'weights.pth')
    
    # 保存完整模型
    torch.save(model,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

X_taiyang18

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值