GGUF
GGUF 是 llama.cpp 系列工具用来运行 LLM 的模型文件格式。它把权重连同分词器、聊天模板等信息装进一个文件,主要存储量化后的权重。
工作原理
GGUF 文件中同时包含元数据(模型结构、分词器、聊天模板等)和张量(权重)。因此,llama.cpp、Ollama、LM Studio 等工具只要有这一个文件,就能加载模型并进行对话。权重通常以量化形式存储,即用更少的比特表示每个数值,从而大幅减小文件体积和内存占用。它的特点是设计上便于在 CPU、笔记本 GPU 和 Mac 上运行。
一个 GGUF 文件里装了什么
- model-Q4_K_M.gguf
- 元数据
- 模型结构
- 分词器
- 聊天模板
- 张量(权重)主要为量化状态
如何建立直观认识
在 Hugging Face 上打开带有“GGUF”字样的仓库,会看到 Q8_0、Q5_K_M、Q4_K_M 等多个名称不同的文件。Q 后面的数字大致表示每个数值所用的比特数,数字越小文件越轻,但质量会逐步下降。可以用“参数量 × 比特数 ÷ 8 ≈ 权重内存”来估算。例如,一个 70 亿参数的模型以 4 比特存储,大约需要 3.5GB 多一点,此外还需要额外的上下文 KV 缓存内存。
注意事项
GGUF 主要是 llama.cpp 系列使用的格式,面向 GPU 服务器的推理引擎通常使用 safetensors 或 GPTQ·AWQ 格式。出现新的模型结构时,需要 llama.cpp 先提供支持,才能进行 GGUF 转换和运行。很多文件是社区而非官方公司转换上传的,因此最好确认原始模型、许可证和转换者。与其一味选择最小的量化版本,不如在内存允许的范围内选择较高的比特数,这样更稳妥。
示例
本站曾刊登 JetBrains 以 GGUF 格式发布小型 MoE 模型的消息(社区传闻)。遇到这种情况,用户会在仓库中挑选一个适合自己笔记本内存的 Q4_K_M 或 Q8_0 文件,放进 Ollama 或 LM Studio,直接在本地试着对话。