大模型中 .safetensors 文件、.ckpt文件、.gguf和.pth以及.bin文件区别、加载和保存以及转换方式

简介: 本文讨论了大模型中不同文件格式如`.safetensors`、`.ckpt`、`.gguf`、`.pth`和`.bin`的区别、用途以及如何在TensorFlow、PyTorch和ONNX等框架之间进行加载、保存和转换。

在大模型中,.safetensors.ckpt.gguf.pth.bin 文件都是用于保存和加载模型参数的文件格式,它们之间的区别和转换方式如下:

  1. .safetensors 文件:

    • 这是 TensorFlow 2.x 中新增的文件格式,用于保存模型参数和优化器状态。
    • 它采用的是 TensorFlow 的自定义序列化格式,不能直接用于其他框架。
    • 可以使用 TensorFlow 的 tf.train.Checkpoint 类来加载和保存 .safetensors 文件。
  2. .ckpt 文件:

    • 这是 TensorFlow 1.x 中用于保存模型参数和优化器状态的文件格式。
    • 它采用的是 TensorFlow 的自定义序列化格式,不能直接用于其他框架。
    • 可以使用 TensorFlow 的 tf.train.Saver 类来加载和保存 .ckpt 文件。
    • 可以使用 TensorFlow 2.x 的 tf.compat.v1.train.Saver 类来加载和保存 .ckpt 文件。
  3. .gguf 文件:

    • 这是 Google 的 GFST(Google Finite State Transducer)格式,用于保存语言模型。
    • 它采用的是 Google 的自定义序列化格式,不能直接用于其他框架。
    • 可以使用 Google 的 fstcompilefstrain 工具来加载和保存 .gguf 文件。
  4. .pth 文件:

    • 这是 PyTorch 中用于保存模型参数和优化器状态的文件格式。
    • 它采用的是 PyTorch 的自定义序列化格式,不能直接用于其他框架。
    • 可以使用 PyTorch 的 torch.save 函数来加载和保存 .pth 文件。
  5. .bin 文件:

    • 这是一种通用的二进制文件格式,可以用于保存模型参数和优化器状态。
    • 它可以被多种框架所使用,例如 TensorFlow、PyTorch 和 ONNX 等。
    • 可以使用 NumPy 或 PyTorch 等框架的函数来加载和保存 .bin 文件。

对于这些文件格式之间的转换,可以使用以下方法:

  1. .ckpt 文件到 .pth 文件:

    • 可以使用 TensorFlow 2.x 的 tf.compat.v1.train.Saver 类来加载 .ckpt 文件,然后使用 PyTorch 的 torch.Tensor.cpu 函数将模型参数转换为 CPU 张量,最后使用 PyTorch 的 torch.save 函数保存为 .pth 文件。
  2. .pth 文件到 .ckpt 文件:

    • 可以使用 PyTorch 的 torch.load 函数加载 .pth 文件,然后使用 TensorFlow 2.x 的 tf.convert_to_tensor 函数将模型参数转换为 TensorFlow 张量,最后使用 TensorFlow 2.x 的 tf.train.Checkpoint 类保存为 .ckpt 文件。
  3. .ckpt 文件或 .pth 文件到 ONNX 模型:

    • 可以使用 TensorFlow 2.x 的 tf2onnx.convert 函数或 PyTorch 的 torch.onnx.export 函数将模型转换为 ONNX 模型,然后使用 ONNX 的 onnxruntime.InferenceSession 类加载和使用 ONNX 模型。
  4. ONNX 模型到 .pth 文件或 .ckpt 文件:

    • 可以使用 ONNX 的 onnxruntime.InferenceSession 类加载 ONNX 模型,然后使用 PyTorch 的 torch.Tensor 或 TensorFlow 2.x 的 tf.convert\_to\_tensor 函数将模型参数转换为 PyTorch 或 TensorFlow 张量,最后使用 PyTorch 的 torch.save 函数或 TensorFlow 2.x 的 tf.train.Checkpoint 类保存为 .pth 文件或 .ckpt 文件。
  5. .gguf 文件到 ONNX 模型:

    • 可以使用 Google 的 fst2onnx 工具将 .gguf 文件转换为 ONNX 模型,然后使用 ONNX 的 onnxruntime.InferenceSession 类加载和使用 ONNX 模型。
  6. ONNX 模型到 .gguf 文件:

    • 可以使用 ONNX 的 onnxruntime.InferenceSession 类加载 ONNX 模型,然后使用 Google 的 onnx2fst 工具将 ONNX 模型转换为 .gguf 文件。

需要注意的是,由于不同框架之间的 API 和序列化格式的差异,在进行转换时可能需要进行一些额外的处理,例如调整数据类型、调整形状、调整维度等。

目录
相关文章
|
存储 缓存 异构计算
大语言模型量化方法对比:GPTQ、GGUF、AWQ
在过去的一年里,大型语言模型(llm)有了飞速的发展,在本文中,我们将探讨几种(量化)的方式,除此以外,还会介绍分片及不同的保存和压缩策略。
6931 0
|
8月前
|
缓存 监控 测试技术
llama.cpp Server 引入路由模式:多模型热切换与进程隔离机制详解
llama.cpp 于2025年12月11日发布路由模式,支持多模型动态加载与毫秒级切换,无需重启服务。采用多进程隔离架构,兼容OpenAI API,支持自动发现、按需加载、LRU淘汰及手动管理,显著提升本地多模型协作的效率与稳定性,是轻量级推理服务框架的重要升级。
2238 3
llama.cpp Server 引入路由模式:多模型热切换与进程隔离机制详解
|
7月前
|
人工智能 安全 API
资源有限,跑大模型太难?手把手教你用 llama.cpp 安全部署任意 GGUF 模型(含 DeepSeek-R1 实战)
无需高端显卡,手把手教你用 llama.cpp 本地安全部署任意 GGUF 模型!支持 DeepSeek-R1 实战,实现离线运行、流式输出与 OpenAI 兼容 API。涵盖 Docker 安全加固、模型切换、双模客户端调用,适用于企业知识库、智能客服等场景,个人开发者与企业皆可快速落地。
|
6月前
|
人工智能 数据可视化 测试技术
玩转Ollama:命令行操作、上下文长度调优与模型导入全攻略
Ollama是轻量级本地大模型运行工具,零配置即可快速启动AI模型。本文详解三大核心:高频CLI命令(运行/管理/创建模型)、上下文长度(Context Length)调优技巧、多格式(GGUF/Safetensors)自定义模型导入与量化分享,新手跟做即上手。
|
9月前
|
人工智能 物联网 测试技术
Qwen-Image-Edit:全能图像编辑,驱动内容创作提质增效
通义千问团队开源Qwen-Image-Edit,基于20B模型,支持语义与外观双重编辑、精准中英文文字修改,具备SOTA图像编辑能力,可用于IP创作、风格迁移、文字修复等。
6727 6
|
11月前
|
机器学习/深度学习 传感器 编解码
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
DINOv3是Meta推出的自监督视觉模型,支持冻结主干、仅训练轻量任务头即可在分割、深度估计等任务上达到SOTA,极大降低训练成本。其密集特征质量优异,适用于遥感、工业检测等多领域,真正实现“一个模型走天下”。
6189 2
DINOv3上手指南:改变视觉模型使用方式,一个模型搞定分割、检测、深度估计
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
17621 81
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
人工智能 边缘计算 自然语言处理
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
随着模型量化技术的发展,大语言模型(LLM)如今可在低配置设备上高效运行。本文介绍本地部署LLM的核心技术、主流工具及十大轻量级模型,探讨如何在8GB内存环境下实现高性能AI推理,涵盖数据隐私、成本控制与部署灵活性等优势。
10256 0
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
|
人工智能 算法 物联网
ComfyUI:搭积木一样构建专属于自己的AIGC工作流(保姆级教程)
通过本篇文章,你可以了解并实践通过【ComfyUI】构建自己的【文生图】和【文生动图】工作流。
25010 5
ComfyUI:搭积木一样构建专属于自己的AIGC工作流(保姆级教程)