GGUF、Safetensors、ONNX三种格式

GGUF

GGUF 格式的模型文件可以用于各种应用场景,例如:

  • 本地部署 LLM: GGUF 格式使得在消费级计算机硬件(包括 CPU 和 GPU)上运行 LLM 成为可能。
  • 移动设备上的 LLM 推理: 由于其高效的存储和加载特性,GGUF 也适用于在移动设备上进行 LLM 推理。
  • 快速原型开发: GGUF 使得开发者可以更快速地加载和测试不同的 LLM 模型。

总而言之,GGUF 是一种重要的 LLM 文件格式,它通过提高存储效率、加载速度和兼容性,简化了 LLM 的使用和部署,并有望成为未来大模型文件标准格式之一。

本地运行GGUF格式的 LLM 模型

参考:https://github.com/karminski/one-small-step/blob/main/20250122-how-to-run-gguf-LLM-model/how-to-run-gguf-LLM-model.md

Safetensors

  • 安全性优先: 彻底解决了 pickle 格式的远程代码执行(RCE)漏洞风险, 通过限制反序列化操作仅加载张量数据, 从根本上杜绝了恶意代码注入的可能性.
  • 快速加载: 采用零拷贝(zero-copy)技术实现, 在CPU上, 如果文件已缓存, 则可以完全0拷贝(需满足张量连续存储条件)
  • 跨框架支持: 原生支持 PyTorch、TensorFlow、JAX 等主流深度学习框架, 支持多 GPU 设备间的无缝数据共享.
  • 轻量高效: 文件体积与性能经过优化, 支持与 LZ4/Zstandard 等压缩算法配合使用(注意:格式本身不包含压缩功能)
  • 类型安全: 通过严格的元数据校验确保数据类型和形状的一致性, 避免因类型错误导致的运行时崩溃.

ONNX

在这里插入图片描述
(图片来自 ultralytics.com)

  • ONNX(Open Neural Network Exchange)是一种开放的神经网络交换格式。
  • 它由微软和Facebook于2017年共同推出,现由Linux基金会的LF AI托管,旨在解决不同深度学习框架之间的互操作性问题,实现模型在不同平台和工具链之间的无缝迁移。

核心区别与关系

特性 GGUF Safetensors ONNX
开发方 GGML 团队 (llama.cpp) Hugging Face 微软/Facebook (现属 Linux 基金会)
设计目标 轻量级本地推理 (CPU/GPU) 安全高效的张量存储 跨框架模型交换与推理优化
主要用途 本地运行量化后的 LLM 安全分发模型权重 跨框架训练/部署流水线
安全性 无已知风险 专防 pickle 的 RCE 漏洞 依赖运行时环境
硬件支持 优先 CPU,部分 GPU 优化 框架相关 (PyTorch/TF/JAX) 多硬件后端 (CPU/GPU/FPGA)
典型文件体积 极小 (4-8bit 量化) 原始权重大小 中等 (含计算图元数据)

关系

  • 互补性:三者面向不同场景——GGUF 专注本地 LLM 推理,Safetensors 解决权重存储安全,ONNX 打通框架壁垒。
  • 可组合使用:例如用 Safetensors 存储原始权重 → 转换为 ONNX 进行跨框架部署 → 量化成 GGUF 本地运行。

如何选择格式?

  • 本地运行 LLM:GGUF(CPU 友好)或 TensorRT-LLM(NVIDIA GPU)。
  • 安全共享权重:Safetensors(Hugging Face 生态首选)。
  • 跨框架部署:ONNX → 进一步转换为目标硬件格式(如 .engine.tflite)。
  • 移动端:Core ML(Apple)或 TFLite(Android/嵌入式)。
  • 用 Safetensors:当需要安全共享、快速加载、跨框架兼容时(尤其是 Hugging Face 生态)。
  • 不用 Safetensors:纯本地训练或目标平台强制要求其他格式时。

趋势观察

  • GGUF 正成为开源 LLM 本地化的标准格式(如 Llama 3 社区量化版本)。
  • Safetensors 在 Hugging Face 模型库的渗透率已超 90%(截至 2024)。
  • ONNX 仍是企业级跨平台部署的核心中间件,但面临 PyTorch 2.0 直接导出方案的竞争。

参考资料

  • https://github.com/karminski/one-small-step/blob/main/20250113-what-is-gguf/what-is-gguf.md
  • https://github.com/karminski/one-small-step/blob/main/20250122-how-to-run-gguf-LLM-model/how-to-run-gguf-LLM-model.md
  • https://github.com/karminski/one-small-step/blob/main/20250210-what-is-safetensors/what-is-safetensors.md
  • https://github.com/karminski/one-small-step/blob/main/20250211-what-is-onnx/what-is-onnx.md
Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐