开始之前
Hugging Face 的量化概述说,量化是把权重存成更低的精度,在尽量保住准确率的同时,降低加载和使用模型所需的内存。权重通常存成 16 位或 32 位的数。许多量化后的文件,把它们存成 int8 或 int4 这样的小整数。
硬件那一课把位数换算成了 GB,还有一张尺寸表,所以这一课不再讲尺寸。GGUF 是为快速加载和保存而设计的二进制文件格式,GGUF 文件的名字里带着它的量化级别。这一课讲这些名字怎么读、更小的文件要付出什么代价、有哪些别的格式,以及怎样运行或者自己做一个。请把第 3 课的五条提示词放在手边,因为最后的测试要用它们。
读懂 GGUF 名字:Q4_K_M 逐个字母看
量化者会把同一个模型发布成好几个级别,级别就写在文件名里。llama.cpp 里加入 K 系列名字的那个拉取请求定义了各个部分。
Q4_K_M
│ │ └ M:混合方案,决定哪些张量多分几位
│ └── K:k-quant 系列,权重按超级块存放
└──── 4:每个权重大约 4 位- Q 后面的数字,读作每个权重大约用几位。Q4 大约是 4 位,Q6 大约是 6 位。
- K 读作 k-quant 系列。它的 4 位类型 Q4_K 把权重放进超级块里,每个超级块有 8 个块,每块 32 个权重,缩放系数和最小值用 6 位量化,折合每个权重 4.5 位。
- 最后的字母读作混合方案,也就是哪些张量多分几位。张量是模型权重的一个块。Q4_K_S 让所有张量都用 Q4_K 类型,拉取请求指出了一个例外:每个变体都给 output.weight 张量 6 位。Q4_K_M 把 6 位的 Q6_K 类型用在一半的 attention.wv 和 feed_forward.w2 张量上,其余用 Q4_K。
- 其他前缀读作别的系列。Hugging Face 的 GGUF 页面把没有 K 的较早类型(比如 8 位的 Q8_0)列为如今不常用的旧方法。像 IQ4_XS 这样的名字(4 位类型,每个权重 4.25 位),则被列为用重要性矩阵做出来的类型。
更小的文件让准确率损失多少
困惑度衡量模型预测真实文本的好坏,越低越好。k-quants 拉取请求在 wikitext 数据集上测了 LLaMA 7B。未量化的原版得分 5.9066,图表显示每个量化文件在这个分数上多了多少。
Q6_K 只多 0.004,作者说它的结果与原版相差不到 0.1%。Q4_K_M 多 0.054,Q2_K 多 0.870,大约是前者的 16 倍。作者还发现,更大的模型躲不过这种损失:到了 30B 和 65B,相对误差又回到了 7B 的水平。
LLaMA 7B 是 2023 年的模型,所以图形只能当参考,不能当成你所用模型的预测。困惑度也说明不了你的任务是否还能做好,这要靠你自己的提示词来回答。
来源:GitHub:llama.cpp 拉取请求 1684,k-quants (2026年11月6日 查阅)
AWQ、GPTQ 和其他格式
GGUF 只是其中一个家族。Hugging Face 的概述列出了许多方法,有的需要校准才能得到更高的准确率,有的在模型加载时即时量化。Maarten Grootendorst 的GPTQ、GGUF 和 AWQ 对比视频讲的是其中三种,下面的表比较四种。
AWQ 是激活感知权重量化的缩写,出发点是:并非所有权重都同样重要。它 2023 年的论文报告说,只保护 1% 的关键权重,就能大幅降低量化误差。Hugging Face 的 AWQ 页面说,这个方法保留一小部分重要的权重,把模型压缩到 4 位,性能下降很小。
GPTQ 是一次性方法。在 Hugging Face 的 GPTQ 页面里,权重矩阵的每一行单独量化,找出误差最小的那一版。权重存成 int4,推理时即时还原成 fp16。它 2022 年的论文报告说,量化 1750 亿参数的 GPT 模型大约需要四个 GPU 小时,GPTQ 页面则说,在一块 NVIDIA A100 上量化 175B 的模型大约要四小时。
Transformers 不再支持 AutoGPTQ,文档让你改用 GPT-QModel。安装 AutoAWQ 会把 Transformers 降级到 4.47.1 版。要判断一个仓库用的是哪种方法,打开它的 config.json,读 quantization_config 里的 quant_method。AWQ 模型写的是 "quant_method": "awq"。
| GGUF(llama.cpp) | AWQ | GPTQ(GPT-QModel) | bitsandbytes | |
|---|---|---|---|---|
| 位数,照表里的写法 | 1/8 | 4 | 2/3/4/8 | 4/8 |
| 加载模型时即时量化 | 否 | 否 | 否 | 是 |
| 能在 CPU 和 NVIDIA 显卡上运行 | 是 | 是 | 是 | 是 |
| 能在 Apple 芯片(Metal)上运行 | 是 | 否 | 是 | 标了黄色 |
| 能用 PEFT 微调 | 否 | 是 | 是 | 是 |
来源:Hugging Face 文档:Transformers 量化概述 (2026年11月6日 查阅);Hugging Face 文档:GGUF (2026年11月6日 查阅)

位数这一行照抄了表里的写法,斜杠也保留着。Hugging Face 的表把 bitsandbytes 在 Apple 芯片上的支持标成了黄色,没有说明黄色是什么意思。
三家发布者怎样发布权重
有些发布者在发布前就做了量化,所以你下载的文件,就是他们测试过的那个。gpt-oss 的模型卡说,它所有的评测都是在同样的 MXFP4 量化下进行的。Hugging Face 的 GGUF 页面把 MXFP4 称为 4 位微缩放块浮点,它的概述把 NVFP4 列为适用于 CUDA 显卡的 4 位方法。
| 模型 | 模型卡说它发布的是什么 | 模型卡对内存的说法 |
|---|---|---|
| gpt-oss-20b | 后训练时对 MoE 权重做了 MXFP4 量化 | 在 16GB 内存内运行 |
| gpt-oss-120b | 同样的 MXFP4 量化 | 在单张 80GB 显卡上运行 |
| Llama 4 Scout | BF16 权重 | 用即时 int4 量化,能放进单张 H100 显卡 |
| Mistral Large 4 | 另有一个 NVFP4 检查点 | 内存占用更小,推理更快,性能相同,面向 Blackwell 显卡 |
挑一个文件,运行它
Ollama 可以直接从 Hugging Face 拉取 GGUF 仓库,写法见 Ollama 页面,如下所示。不带标签时,仓库里有 Q4_K_M,Ollama 就用它,否则从仓库里挑一个合理的类型。标签不区分大小写,写完整的文件名也行。
ollama run hf.co/{username}/{repository}
ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0- 找一个这个模型的 GGUF 仓库。用模型名加 GGUF 去搜,或者筛选
library=gguf标签。 - 想复制命令,就在“文件和版本”标签页里打开某个文件的 GGUF 查看器,在“使用此模型”下拉菜单里选 ollama。你的“本地应用”设置里要先打开 Ollama 这一项。
- 先从 Q4_K_M 开始,用第 3 课的五条提示词测它。答案不够好,就拉取 Q5_K_M 或 Q6_K,再测一遍。
- 留下通过测试的最小文件,写下仓库、文件名和日期。
自己量化一个模型
通常已经有人量化过这个模型了,Hugging Face 的 GPTQ 页面也建议先到 Hub 上找现成的版本。要自己做 GGUF,llama.cpp 的 quantize README给了两步:先把模型转换成 bf16 精度的 GGUF,再在 llama.cpp 的文件夹里对它运行 llama-quantize。
从高精度的文件开始。README 警告说,--allow-requantize 这个参数会把已经量化过的张量再量化一遍,与从未量化的文件开始相比,可能严重降低质量。它还提到可以用 --imatrix 传入重要性矩阵,来减少准确率的损失。不想自己搭环境的话,Hugging Face 上的 GGUF-my-repo 空间可以替你做量化。
# 1. 把 Hugging Face 上的模型转换成 16 位的 GGUF
python convert_hf_to_gguf.py --outfile gemma-4-E2B-it-bf16.gguf --outtype bf16 --remote google/gemma-4-E2B-it
# 2. 把这个文件量化成 Q4_K_M
./build/bin/llama-quantize gemma-4-E2B-it-bf16.gguf gemma-4-E2B-it-Q4_K_M.gguf Q4_K_M命令抄自 2026 年 11 月 6 日读到的 quantize README,用的是它的 Gemma 4 E2B 例子。Mindket 没有运行这些命令。
常见错误
- 只凭困惑度判断一个级别。图表显示的是一个 2023 年的模型预测 wikitext 的好坏,说明不了你的任务能不能做好。
- 把几种格式混为一谈。GGUF 文件、AWQ 仓库和 GPTQ 仓库要用不同的库,所以下载之前先看文件扩展名或者
quant_method。 - 以为视觉能力在转换后还在。README 说转换器处理的是语言部分,能输入图像的模型还需要一个单独的 mmproj 文件。
- 照抄旧教程里的文件名。K 系列的名字出自 2023 年 6 月,IQ4_XS 和 MXFP4 这样的新类型各有各的规则。
自己动手试试
- 打开你喜欢的模型的 GGUF 仓库,列出它的文件。写下每个名字在位数和混合方案上说了什么。
- 用 Ollama 拉取 Q4_K_M 的版本,再拉取高一级的版本,然后把同样的五条提示词交给两个版本。
- 打开一个 AWQ 或 GPTQ 仓库的 config.json,找到它的
quant_method。 - 用图表算一算,Q5_K_M 比 Q4_K_M 少多少困惑度,再判断更大的文件对你的任务值不值。
下一门课:本地 AI
你现在能读懂文件名,能衡量更小的文件要付出什么,也能把它运行起来。本地 AI 课程从这一课用到的 Ollama 讲起,再讲它的 API、LM Studio 和模型所需的内存。
自测一下
在文件名 Q4_K_M 里,K 代表什么?
查看答案
B. k-quant 系列,这一系列的类型把权重存在超级块里 加入这些类型的拉取请求把它们描述成由多个权重块组成的超级块,K 标记的就是这一系列。
你给 Hugging Face 仓库不写标签时,Ollama 会拉取什么?
查看答案
C. 仓库里有的话就拉 Q4_K_M Hugging Face 的 Ollama 页面说,Q4_K_M 存在时是默认选项,否则 Ollama 会挑一个合理的类型。
在 LLaMA 7B 多出来的困惑度那张图里,哪句话成立?
查看答案
A. Q4_K_M 多出来的困惑度远少于 Q2_K Q4_K_M 约多 0.054,Q2_K 约多 0.870,所以 2 位文件的损失大约是前者的 16 倍。
一个 4 位文件在你的提示词上答得不够好。你应该先试什么?
查看答案
D. 拉取高一级的版本,比如 Q5_K_M,再跑一遍你的提示词 图表显示 Q5_K_M 比 Q4_K_M 多出来的困惑度更少,而 README 警告说,把已经量化过的张量再量化,可能严重降低质量。
常见问题
量化级别应该从哪一个开始?
Q4_K_M。仓库里有它而你没写标签时,Ollama 就选它,在拉取请求的表里它给 LLaMA 7B 多加了约 0.05 的困惑度。答案不够好,就往上升一级。
量化会让模型更快吗?
常常会。README 说它可以加快推理,在拉取请求的 7B 表里,所测的三台机器上,每个量化文件生成一个 token 都比未量化的快。
为什么同一个模型有那么多文件?
量化者每个级别发布一个文件,所以一个仓库里可能有很多个。只下载名字里写着你选定的位数和混合方案的那一个。
AWQ 或 GPTQ 模型比 GGUF 的更好吗?
总体上没有哪个更好。它们的区别在于能在哪里运行,所以按你的硬件和使用的工具来挑,再用你的提示词测试。
我需要自己量化模型吗?
通常不需要。2026 年 11 月 6 日,Qwen3.8-27B 的模型页面统计到超过 1,600 个量化模型,所以先到 Hub 上找你要的文件。
资料来源
- GitHub: llama.cpp pull request 1684, k-quants https://github.com/ggml-org/llama.cpp/pull/1684
- GitHub: llama.cpp quantize README https://github.com/ggml-org/llama.cpp/blob/master/tools/quantize/README.md
- Hugging Face Docs: GGUF https://huggingface.co/docs/hub/gguf
- Hugging Face Docs: Use Ollama with any GGUF model https://huggingface.co/docs/hub/ollama
- Hugging Face Docs: Transformers quantization overview https://huggingface.co/docs/transformers/quantization/overview
- Hugging Face Docs: AWQ https://huggingface.co/docs/transformers/quantization/awq
- Hugging Face Docs: GPTQ https://huggingface.co/docs/transformers/quantization/gptq
- Hugging Face Papers: AWQ, Activation-aware Weight Quantization https://huggingface.co/papers/2306.00978
- Hugging Face Papers: GPTQ, Accurate Post-Training Quantization https://huggingface.co/papers/2210.17323
- Hugging Face: openai/gpt-oss-20b model card https://huggingface.co/openai/gpt-oss-20b
- GitHub: Meta Llama 4 model card https://github.com/meta-llama/llama-models/blob/main/models/llama4/MODEL_CARD.md
- Hugging Face: mistralai/Mistral-Large-4-1T-A52B model card https://huggingface.co/mistralai/Mistral-Large-4-1T-A52B
- Hugging Face: Qwen/Qwen3.8-27B model page https://huggingface.co/Qwen/Qwen3.8-27B
- YouTube: Which Quantization Method is Right for You? (GPTQ vs. GGUF vs. AWQ) https://www.youtube.com/watch?v=mNE_d-C82lI
