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

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: 本文讨论了大模型中不同文件格式如`.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)有了飞速的发展,在本文中,我们将探讨几种(量化)的方式,除此以外,还会介绍分片及不同的保存和压缩策略。
6892 0
|
7月前
|
负载均衡 Docker Python
vLLM-Ascend 安装部署与环境配置指南
vLLM-Ascend 是 vLLM 项目专为华为昇腾 NPU 设计的硬件插件,支持主流大模型与多模态架构,提供高性能推理能力。项目结构清晰,涵盖核心算子、工具脚本与容器化部署方案,兼容单/多节点环境,助力高效构建昇腾上的 AI 推理服务。
3706 1
|
6月前
|
数据采集 人工智能 安全
从入门到精通:手把手教你用LLaMA Factory微调专属大模型
大家好,我是AI博主maoku老师。你是否觉得大模型“懂王”式回答不够专业?微调正是破局关键!本文带你深入浅出理解微调原理,掌握LoRA、量化、对话模板三大核心技术,并手把手教你用LLaMA Factory零代码实践,四步打造专属Web安全专家模型。从数据准备到部署应用,全程实战,助你将大模型从“通才”炼成“专才”,实现个性化、低成本、高效率的AI赋能。
|
7月前
|
缓存 监控 测试技术
llama.cpp Server 引入路由模式:多模型热切换与进程隔离机制详解
llama.cpp 于2025年12月11日发布路由模式,支持多模型动态加载与毫秒级切换,无需重启服务。采用多进程隔离架构,兼容OpenAI API,支持自动发现、按需加载、LRU淘汰及手动管理,显著提升本地多模型协作的效率与稳定性,是轻量级推理服务框架的重要升级。
2059 3
llama.cpp Server 引入路由模式:多模型热切换与进程隔离机制详解
|
6月前
|
人工智能 安全 API
资源有限,跑大模型太难?手把手教你用 llama.cpp 安全部署任意 GGUF 模型(含 DeepSeek-R1 实战)
无需高端显卡,手把手教你用 llama.cpp 本地安全部署任意 GGUF 模型!支持 DeepSeek-R1 实战,实现离线运行、流式输出与 OpenAI 兼容 API。涵盖 Docker 安全加固、模型切换、双模客户端调用,适用于企业知识库、智能客服等场景,个人开发者与企业皆可快速落地。
|
机器学习/深度学习 存储 人工智能
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
MNN-LLM App 是阿里巴巴基于 MNN-LLM 框架开发的 Android 应用,支持多模态交互、多种主流模型选择、离线运行及性能优化。
16720 81
MNN-LLM App:在手机上离线运行大模型,阿里巴巴开源基于 MNN-LLM 框架开发的手机 AI 助手应用
|
11月前
|
人工智能 边缘计算 自然语言处理
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
随着模型量化技术的发展,大语言模型(LLM)如今可在低配置设备上高效运行。本文介绍本地部署LLM的核心技术、主流工具及十大轻量级模型,探讨如何在8GB内存环境下实现高性能AI推理,涵盖数据隐私、成本控制与部署灵活性等优势。
10033 0
普通电脑也能跑AI:10个8GB内存的小型本地LLM模型推荐
|
人工智能 算法 物联网
ComfyUI:搭积木一样构建专属于自己的AIGC工作流(保姆级教程)
通过本篇文章,你可以了解并实践通过【ComfyUI】构建自己的【文生图】和【文生动图】工作流。
24835 5
ComfyUI:搭积木一样构建专属于自己的AIGC工作流(保姆级教程)
|
存储 机器学习/深度学习 人工智能
【AI大模型】Transformers大模型库(十六):safetensors存储类型
【AI大模型】Transformers大模型库(十六):safetensors存储类型
2978 0