欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 产业 > GGUF——一种用于存储大模型的文件格式

GGUF——一种用于存储大模型的文件格式

2025/6/6 12:28:05 来源:https://blog.csdn.net/m0_56342660/article/details/148444850  浏览:    关键词:GGUF——一种用于存储大模型的文件格式

1. GGUF 简介

GGUF 是一种用于存储推理模型的文件格式,主要用于加速模型加载和推理。
简单介绍其特点,适当了解,不深究:

  • 单文件

GGUF将模型的所有必要信息(包括模型架构、权重、超参数、元数据等)都整合到一个文件中。
文件结构明确且所有数据都在一个文件,加快了模型的加载速度。

  • 支持拓展,向下兼容

GGUF使用模块化设计,允许不破坏原有结构情况下,添加新模块。
读取文件时,可忽略新字段,向下兼容旧版本

  • 支持内存映射(mmap)
  • 包含加载模型的所有信息

2. GGUF 命名规范

第1位:模型基础名称或架构

llama,deepseek

第2位:模型参数规模

7B,13B,32B

第3位:微调标识

-chat多轮对话优化 微调版本,适合聊天机器人。
-instruct指令跟随数据 微调,擅长执行任务型指令,比如:摘要、翻译、问答。
-dpo:使用 直接偏好优化 技术微调,优化输出指令以更贴近人类偏好。
-orpo:使用 开放人类反馈强化学习 方式微调,效果类似 DPO ,但可能更开放。
-code:专为 编程任务 微调,擅长代码生成、补全、修复、解释。
-Qwen:说明该模型融合了 Qwen 数据风格,或是从 Qwen 模型迁移微调而来,可能有多语言能力。

第4位:模型版本号(可选)

-v1,-v2,-v0.1

第5位:量化编码方式或精度类型

-fp32 / -f32:32位浮点数,全精度
-fp16 / -f16:16位浮点数,半精度
-bf16:BFloat16 格式
-Q8_0:8位
-Q6_K:6位
-Q5_1:5位,精度比 Q5_0 更优
-Q5_0:5位
-Q4_K:4位,精度更好
-Q4_0:4位
-Q3_K:3位
-Q2_K:2位
——————————————————————
_K:使用 块量化,保留更多局部信息,精度更好。具体原理请自行学习。

第6位:文件类型(可选)

模型文件,-lora-vocab

第7位:分片(可选)

用于大型模型按文件分片存储
00003-of-00009:第3片,共9片

3. GGUF 文件结构

GGUF文件采样 二进制 格式。

二进制格式与文本格式的区别,请自行学习

GGUF 文件主要由 文件头元数据张量信息张量数据 组成。

3.1 文件头(Header)

大小:48 字节
采用 小端字节序 ,具体情况请自行学习。
————————————————————
前4位字节叫做:魔数(magic number)
接下来4位字节为:版本号(version)
接下来8位字节为:元数据条目数量(n_kv),元数据中的键值对数量

键值对的概念请自行学习。
具体例子:
小明读书证号:3001
张三读书证号:3002

接下来8位字节为:张量的数量(n_tensors)
后面的24位字节不做了解。感兴趣可自行学习。

4+4+8+8+24=48 位字节

实例(十六进制表示):

47 47 55 46  02 00 00 00  0E 00 00 00 00 00 00 00  
32 00 00 00 00 00 00 00  80 00 00 00 00 00 00 00  
C0 10 00 00 00 00 00 00  00 20 10 00 00 00 00 00

47 47 55 46:魔数,ASCII:“GGUF”
02 00 00 00:版本号为:2
0E 00 00 00 00 00 00 00:元数据条目数量为:14
32 00 00 00 00 00 00 00:张量的数量为:50

3.2 元数据(Key-Value)

键值对 类型,存储模型的配置信息和描述性数据。
部分键值对:
general.architecture:模型基础名称或架构,llama
general.quantization_version:量化版本
[llm].context_length:上下文长度
[llm].block_count:注意力块数量
[llm].attention.head_count:注意力头数量
general.file_type:张量量化类型

3.3 张量信息

存储模型权重及相关参数。

  • 张量名称
  • 维度信息:如:[4096,512]
  • 数据类型:如:FP32,Q4_K
  • 数据偏移量:张量数据在文件中的起始位置

3.4 张量数据

存储模型实际参数值
实例:全精度浮点张量

  • 结构:
    [维度:2,2] + 数据类型:F32 + 数据:[0.25,-1.8,3.14,0.01]
  • 二进制表示:
    00 00 80 3E // 0.25 (IEEE754编码)
    66 66 E6 BF // -1.8
    C3 F5 48 40 // 3.14
    7B 14 AE 3C // 0.01

4. 总结

GGUF 是一种高效、灵活且向下兼容的模型存储格式。
它通过标准化的元数据和文件结构,简化了模型部署和跨平台推理,同时支持未来扩展。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词