Format Atlas

对比

GGUF与Safetensors:推理分发与权重管理

GGUF用于向兼容的GGML系实现分发推理模型。Safetensors保存具名张量,模型定义和运行环境需另行提供。

应该选择哪种格式?

在兼容的GGML系环境中推理可考虑GGUF;在兼容的模型实现中使用权重可考虑Safetensors。

适用于 GGUF

为兼容的 GGML 运行时保存和分发推理模型 · 以一种格式管理模型信息与张量

  • 使用 llama.cpp 等兼容工具进行本地推理
  • 分发运行时支持的量化或未量化模型

适用于 Safetensors

保存和分发机器学习张量权重 · 在受支持的框架间加载权重

  • 交换张量和基本元数据而非任意 Python 对象
  • 检查并按需加载指定张量的流程

基本信息

项目GGUFSafetensors
扩展名.gguf.safetensors
MIME 类型application/octet-streamapplication/octet-stream
常见用途为兼容的 GGML 运行时保存和分发推理模型 · 以一种格式管理模型信息与张量保存和分发机器学习张量权重 · 在受支持的框架间加载权重
打开方式使用支持该模型与张量类型的可信 GGUF 加载器。检查模型架构、运行时版本、量化方法,以及是否需要分片或辅助文件。使用兼容 Safetensors 的库或模型工具。支持的工具可以在将权重全部载入设备前查看张量名称、类型和形状。JSON 头部并不意味着整个文件都是 JSON 文本。
导出或转换按照源模型及目标运行时的转换说明操作。转换和量化有时是不同步骤。使用有代表性的输入评估质量、速度和内存,不要只按文件大小选择;将所有分片和多模态 mmproj 等必需文件一起保存。通过模型框架支持的 API 保存张量权重。将基于 pickle 的输入转换为该格式时可能需要反序列化输入,因此不要随意加载来源不可信的文件。转换后核对张量名称、形状、类型、元素总数和模型输出。

按用途选择

使用 llama.cpp 等兼容工具进行本地推理

为兼容的 GGML 运行时保存和分发推理模型 · 以一种格式管理模型信息与张量

GGUF

分发运行时支持的量化或未量化模型

为兼容的 GGML 运行时保存和分发推理模型 · 以一种格式管理模型信息与张量

GGUF

交换张量和基本元数据而非任意 Python 对象

保存和分发机器学习张量权重 · 在受支持的框架间加载权重

Safetensors

检查并按需加载指定张量的流程

保存和分发机器学习张量权重 · 在受支持的框架间加载权重

Safetensors

关键点 1

GGUF包含键值形式的模型元数据和张量描述。

进一步了解差异

关键点 2

Safetensors记录张量名称、dtype、shape和数据范围,不包含任意推理代码。

进一步了解差异

进一步了解差异

修改扩展名不能互换这两种格式。保留源文件,并选择支持模型架构和张量类型的转换工具及加载器。

  • GGUF支持浮点和量化张量类型。量化可能改变数值,并非仅仅是无损压缩;不能只凭格式名判断大小或精度。
  • 按分发要求核对Safetensors的配置、分词器及分片索引,以及GGUF的分片和辅助文件。使用相同输入和预处理比较输出、内存和速度。

常见问题

GGUF能完整恢复原始Safetensors文件吗?

不能保证。若量化改变了数值,仅转换格式无法恢复原始精度或训练状态。请保留原始权重和配置。

了解详情

相关用途与检查步骤

AI模型交接前的检查流程

参考资料与规范