# 量化详解：Q4_K_M、GGUF、AWQ 和 GPTQ 各是什么意思

> 量化是用更少的位数存放模型的权重，文件因此变小，占用的内存也更少，代价是准确率略有下降。像 Q4_K_M 这样的 GGUF 名字已经写明了方法：大约 4 位、k-quant 系列和 M 这种混合方案。仓库里有 Q4_K_M 时，Ollama 默认拉取它。AWQ 和 GPTQ 是另外两种方法，各有各的仓库。

Mindket 编辑部 · 发布于 2026-11-06 · 更新于 2026-11-06 · https://mindket.com/cn/learn/open-weight-models/quantization-explained

## 要点

- 下载之前先读文件名：Q 后面的数字是位数，最后一个字母是混合方案。
- 从一个 4 位文件开始，只有答案让你失望时，才拉取更高的级别。
- 拿未量化的原版去量化，不要拿已经量化过的文件再量化。
- 先看清仓库用的是哪种方法，因为每一种都有自己的库。

## 开始之前

Hugging Face 的[量化概述](https://huggingface.co/docs/transformers/quantization/overview)说，量化是把权重存成更低的精度，在尽量保住准确率的同时，降低加载和使用模型所需的内存。权重通常存成 16 位或 32 位的数。许多量化后的文件，把它们存成 int8 或 int4 这样的小整数。

[硬件那一课](https://mindket.com/cn/learn/local-ai/local-llm-hardware)把位数换算成了 GB，还有一张尺寸表，所以这一课不再讲尺寸。GGUF 是为快速加载和保存而设计的二进制文件格式，GGUF 文件的名字里带着它的量化级别。这一课讲这些名字怎么读、更小的文件要付出什么代价、有哪些别的格式，以及怎样运行或者自己做一个。请把第 3 课的五条提示词放在手边，因为最后的测试要用它们。

## 读懂 GGUF 名字：Q4_K_M 逐个字母看

量化者会把同一个模型发布成好几个级别，级别就写在文件名里。llama.cpp 里[加入 K 系列名字的那个拉取请求](https://github.com/ggml-org/llama.cpp/pull/1684)定义了各个部分。

````text
Q4_K_M
│ │ └ M：混合方案，决定哪些张量多分几位
│ └── K：k-quant 系列，权重按超级块存放
└──── 4：每个权重大约 4 位
````

1. Q 后面的数字，读作每个权重大约用几位。Q4 大约是 4 位，Q6 大约是 6 位。
2. K 读作 k-quant 系列。它的 4 位类型 Q4_K 把权重放进超级块里，每个超级块有 8 个块，每块 32 个权重，缩放系数和最小值用 6 位量化，折合每个权重 4.5 位。
3. 最后的字母读作混合方案，也就是哪些张量多分几位。张量是模型权重的一个块。Q4_K_S 让所有张量都用 Q4_K 类型，拉取请求指出了一个例外：每个变体都给 output.weight 张量 6 位。Q4_K_M 把 6 位的 Q6_K 类型用在一半的 attention.wv 和 feed_forward.w2 张量上，其余用 Q4_K。
4. 其他前缀读作别的系列。Hugging Face 的 [GGUF 页面](https://huggingface.co/docs/hub/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 年的模型，所以图形只能当参考，不能当成你所用模型的预测。困惑度也说明不了你的任务是否还能做好，这要靠你自己的提示词来回答。

**比未量化的原版多出来的困惑度，LLaMA 7B** 每个文件在 wikitext 上的困惑度，减去原版的 5.9066，文件大小照拉取请求的写法（原版是 13.0G）。越低越好。金色那根是 Q4_K_M，也就是 Ollama 默认挑的级别。

- Q2_K，2.67G: +0.870
- Q3_K_S，2.75G: +0.551
- Q3_K_M，3.06G: +0.244
- Q3_K_L，3.35G: +0.180
- Q4_K_S，3.56G: +0.115
- Q4_K_M，3.80G: **+0.054**
- Q5_K_S，4.33G: +0.035
- Q5_K_M，4.45G: +0.014
- Q6_K，5.15G: +0.004

来源：[GitHub：llama.cpp 拉取请求 1684，k-quants](https://github.com/ggml-org/llama.cpp/pull/1684) (2026-11-06 查阅)

## AWQ、GPTQ 和其他格式

GGUF 只是其中一个家族。Hugging Face 的概述列出了许多方法，有的需要校准才能得到更高的准确率，有的在模型加载时即时量化。Maarten Grootendorst 的[GPTQ、GGUF 和 AWQ 对比视频](https://www.youtube.com/watch?v=mNE_d-C82lI)讲的是其中三种，下面的表比较四种。

AWQ 是激活感知权重量化的缩写，出发点是：并非所有权重都同样重要。[它 2023 年的论文](https://huggingface.co/papers/2306.00978)报告说，只保护 1% 的关键权重，就能大幅降低量化误差。Hugging Face 的 [AWQ 页面](https://huggingface.co/docs/transformers/quantization/awq)说，这个方法保留一小部分重要的权重，把模型压缩到 4 位，性能下降很小。

GPTQ 是一次性方法。在 Hugging Face 的 [GPTQ 页面](https://huggingface.co/docs/transformers/quantization/gptq)里，权重矩阵的每一行单独量化，找出误差最小的那一版。权重存成 int4，推理时即时还原成 fp16。[它 2022 年的论文](https://huggingface.co/papers/2210.17323)报告说，量化 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 量化概述](https://huggingface.co/docs/transformers/quantization/overview) (2026-11-06 查阅)；[Hugging Face 文档：GGUF](https://huggingface.co/docs/hub/gguf) (2026-11-06 查阅)

[Which Quantization Method is Right for You? (GPTQ vs. GGUF vs. AWQ)](https://www.youtube.com/watch?v=mNE_d-C82lI)

Maarten Grootendorst 的 YouTube 视频，对比 GPTQ、GGUF 和 AWQ。它是对表里那些方法的另一种讲法，这一课并不依赖它的说法。

> 位数这一行照抄了表里的写法，斜杠也保留着。Hugging Face 的表把 bitsandbytes 在 Apple 芯片上的支持标成了黄色，没有说明黄色是什么意思。

## 三家发布者怎样发布权重

有些发布者在发布前就做了量化，所以你下载的文件，就是他们测试过的那个。gpt-oss 的模型卡说，它所有的评测都是在同样的 MXFP4 量化下进行的。Hugging Face 的 [GGUF 页面](https://huggingface.co/docs/hub/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 页面](https://huggingface.co/docs/hub/ollama)，如下所示。不带标签时，仓库里有 Q4_K_M，Ollama 就用它，否则从仓库里挑一个合理的类型。标签不区分大小写，写完整的文件名也行。

````bash
ollama run hf.co/{username}/{repository}
ollama run hf.co/bartowski/Llama-3.2-3B-Instruct-GGUF:Q8_0
````

1. 找一个这个模型的 GGUF 仓库。用模型名加 GGUF 去搜，或者筛选 `library=gguf` 标签。
2. 想复制命令，就在“文件和版本”标签页里打开某个文件的 GGUF 查看器，在“使用此模型”下拉菜单里选 ollama。你的“本地应用”设置里要先打开 Ollama 这一项。
3. 先从 Q4_K_M 开始，用第 3 课的五条提示词测它。答案不够好，就拉取 Q5_K_M 或 Q6_K，再测一遍。
4. 留下通过测试的最小文件，写下仓库、文件名和日期。

## 自己量化一个模型

通常已经有人量化过这个模型了，Hugging Face 的 GPTQ 页面也建议先到 Hub 上找现成的版本。要自己做 GGUF，llama.cpp 的 [quantize README](https://github.com/ggml-org/llama.cpp/blob/master/tools/quantize/README.md)给了两步：先把模型转换成 bf16 精度的 GGUF，再在 llama.cpp 的文件夹里对它运行 `llama-quantize`。

从高精度的文件开始。README 警告说，`--allow-requantize` 这个参数会把已经量化过的张量再量化一遍，与从未量化的文件开始相比，可能严重降低质量。它还提到可以用 `--imatrix` 传入重要性矩阵，来减少准确率的损失。不想自己搭环境的话，Hugging Face 上的 GGUF-my-repo 空间可以替你做量化。

````bash
# 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 课程](https://mindket.com/cn/learn/local-ai/ollama-tutorial)从这一课用到的 Ollama 讲起，再讲它的 API、LM Studio 和模型所需的内存。

## 自测一下

1. 在文件名 Q4_K_M 里，K 代表什么？

   A. 每个权重多少千字节
   B. k-quant 系列，这一系列的类型把权重存在超级块里
   C. 上下文长度
   D. 解锁文件的钥匙

   答案：B。 加入这些类型的拉取请求把它们描述成由多个权重块组成的超级块，K 标记的就是这一系列。

2. 你给 Hugging Face 仓库不写标签时，Ollama 会拉取什么？

   A. 仓库里最小的文件
   B. 总是 16 位的文件
   C. 仓库里有的话就拉 Q4_K_M
   D. 总是 Q8_0

   答案：C。 Hugging Face 的 Ollama 页面说，Q4_K_M 存在时是默认选项，否则 Ollama 会挑一个合理的类型。

3. 在 LLaMA 7B 多出来的困惑度那张图里，哪句话成立？

   A. Q4_K_M 多出来的困惑度远少于 Q2_K
   B. Q2_K 多出来的困惑度最少
   C. Q6_K 多出来的困惑度最多
   D. 每个级别多出来的困惑度都一样

   答案：A。 Q4_K_M 约多 0.054，Q2_K 约多 0.870，所以 2 位文件的损失大约是前者的 16 倍。

4. 一个 4 位文件在你的提示词上答得不够好。你应该先试什么？

   A. 把这个 4 位文件再量化成 2 位
   B. 用 --allow-requantize 把同一个文件再量化一次
   C. 换一个更小的模型
   D. 拉取高一级的版本，比如 Q5_K_M，再跑一遍你的提示词

   答案：D。 图表显示 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 拉取请求 1684，k-quants](https://github.com/ggml-org/llama.cpp/pull/1684) (2026-11-06 查阅)
- [GitHub：llama.cpp 的 quantize README](https://github.com/ggml-org/llama.cpp/blob/master/tools/quantize/README.md) (2026-11-06 查阅)
- [Hugging Face 文档：GGUF](https://huggingface.co/docs/hub/gguf) (2026-11-06 查阅)
- [Hugging Face 文档：用 Ollama 运行任意 GGUF 模型](https://huggingface.co/docs/hub/ollama) (2026-11-06 查阅)
- [Hugging Face 文档：Transformers 量化概述](https://huggingface.co/docs/transformers/quantization/overview) (2026-11-06 查阅)
- [Hugging Face 文档：AWQ](https://huggingface.co/docs/transformers/quantization/awq) (2026-11-06 查阅)
- [Hugging Face 文档：GPTQ](https://huggingface.co/docs/transformers/quantization/gptq) (2026-11-06 查阅)
- [Hugging Face 论文页：AWQ，激活感知权重量化](https://huggingface.co/papers/2306.00978) (2026-11-06 查阅)
- [Hugging Face 论文页：GPTQ，精确的训练后量化](https://huggingface.co/papers/2210.17323) (2026-11-06 查阅)
- [Hugging Face：openai/gpt-oss-20b 模型卡](https://huggingface.co/openai/gpt-oss-20b) (2026-11-06 查阅)
- [GitHub：Meta Llama 4 模型卡](https://github.com/meta-llama/llama-models/blob/main/models/llama4/MODEL_CARD.md) (2026-11-06 查阅)
- [Hugging Face：mistralai/Mistral-Large-4-1T-A52B 模型卡](https://huggingface.co/mistralai/Mistral-Large-4-1T-A52B) (2026-11-06 查阅)
- [Hugging Face：Qwen/Qwen3.8-27B 模型页面](https://huggingface.co/Qwen/Qwen3.8-27B) (2026-11-06 查阅)
- [YouTube：Which Quantization Method is Right for You? (GPTQ vs. GGUF vs. AWQ)](https://www.youtube.com/watch?v=mNE_d-C82lI) (2026-11-06 查阅)

[浏览自动化](https://mindket.com/cn/automations)
