工具大全
AI 教程作者:Coocon2026年9月4日1037 次阅读约 7 分钟阅读

大模型量化到底损失多少精度?Q8 到 Q2 一张表说清,附 GGUF 怎么选

先给经验法则,赶时间的看完这段就够:

  • Q8_0:与 FP16 的差距小到测量误差级别,可视为无损,但体积只省一半——通常不值得,除非你内存宽裕到用不完。
  • Q6_K:接近无损,困惑度(PPL)增幅约 0.3%。想要"几乎没损失"的安全档,选它。
  • Q5_K_M / Q4_K_M:性价比甜点区。Q4_K_M 体积不到 FP16 的三分之一,PPL 增幅约 2-3%,日常对话、写代码基本无感。社区默认推荐 Q4_K_M 不是没有道理的。
  • Q3 档:开始能感觉到变笨(PPL 增幅 8-10%),长推理、数学、代码上错误率上升。内存实在不够时的妥协选项,优先选带 imatrix 的 IQ3/Q3_K_M。
  • Q2 档及以下:明显劣化(PPL 增幅 40%+),只适合"能跑起来看一眼"的验证用途。1-bit 档(IQ1_S)PPL 直接爆炸到基线的近 10 倍,不要抱幻想。

下面是数据依据和每一档的细节。

一、数据从哪来:llama.cpp 官方量化质量实测

网上讨论量化损失,多数是"我感觉差不多"式的体感帖。本文的数据来自 llama.cpp 官方 perplexity 工具文档里公布的系统性实测:Llama-3-8B 全量化档位,RTX 4090 上用 Wikitext 语料测 PPL(困惑度)、KLD(KL 散度)和 token 概率偏移,是目前公开资料里最完整的一份量化质量对照。

三个指标通俗地说:

  • PPL(困惑度):模型对文本的"意外程度",越低越好。量化后 PPL 相比 FP16 涨得越多,损失越大。
  • KLD(KL 散度):量化前后模型输出概率分布的偏离程度,0 = 完全一致。比 PPL 更敏感,能抓到"PPL 差不多但行为已经变了"的情况。
  • Mean Δp:预测正确 token 的概率平均掉了几个百分点,最接近"变笨了多少"的直觉。

二、核心数据表:Q8 到 IQ1 每一档损失多少

从官方完整表格中摘录关键档位(Llama-3-8B,FP16 基线 PPL ≈ 6.23,体积 14.97 GiB):

量化档 体积 (GiB) 相对 FP16 ΔPPL 正确 token 概率损失 (Mean Δp)
Q8_0 7.96 53% +0.003 -0.02%
Q6_K 6.14 41% +0.022 -0.01%
Q5_K_M 5.33 36% +0.057 -0.11%
Q4_K_M(imatrix) 4.58 31% +0.151 -0.39%
Q4_K_M(无 imatrix) 4.58 31% +0.175 -0.60%
IQ4_XS(imatrix) 4.14 28% +0.228 -0.67%
Q4_0(老格式) 4.34 29% +0.469 -1.59%
Q3_K_M(imatrix) 3.74 25% +0.503 -1.20%
IQ3_M(imatrix) 3.53 24% +0.667 -3.18%
Q2_K(imatrix) 2.96 20% +2.42 -6.50%
IQ2_M(imatrix) 2.74 18% +2.37 -6.46%
IQ1_S(imatrix) 1.88 13% +52~57(崩坏) -32%

几个值得停下来看的点:

  1. Q8 → Q6 → Q5 这三档的损失都在"仪器才测得出来"的量级。Mean Δp 不到 0.2%,人类对话里分辨不出。
  2. Q4_K_M 是拐点前的最后一档:正确 token 概率只掉 0.4-0.6%,但体积已经压到三成。这就是它成为社区默认档的数据基础。
  3. Q4_0 这类老格式明显不如同体积的 K-quant:同是 4-bit,Q4_0 的损失是 Q4_K_M 的三倍。看到没有 K 后缀的老量化格式,跳过。
  4. Q3 到 Q2 之间有一道悬崖:Q3_K_M 掉 1.2%,Q2_K 直接掉 6.5%——不是线性变差,是断崖。
  5. 1-bit 是行为艺术:IQ1_S 的 PPL 是基线的近 10 倍,正确 token 概率掉三分之一。它存在的意义是证明"能加载",不是"能用"。

三、越新的模型越怕量化

同一份官方文档里还有一组容易被忽略的对照:同样的量化档,Llama 3 的损失显著大于 Llama 2。Q2_K 下 Llama 2 7B 的 PPL 只涨到基线的 1.11 倍,Llama 3 8B 却涨到 1.56 倍;KLD 也全面更差。

主流解释是:训练数据量越大、参数利用越充分的模型,权重里的"冗余"越少,粗暴压缩掉的信息就越伤。这对今天的实践有直接含义——Qwen3.8、Llama 4 这代吃满训练算力的模型,低位量化(Q3 以下)的实际损失会比老模型的口碑更大,别拿两年前"Q2 也能凑合"的经验套新模型。

四、怎么选:一条可操作的决策路径

  1. 先算内存账:模型文件体积 ≈ 参数量 × 每参数字节数(按上表反推:Q4_K_M 约 0.6 字节/参数含开销,Q8_0 约 1.06)。在此之上还要留 KV cache 和系统内存。
  2. 装得下的前提下,选能装下的最高档。顺序:Q6_K > Q5_K_M > Q4_K_M > IQ4_XS > Q3_K_M > 放弃换小模型。
  3. 同档位优先选带 imatrix 的版本(发布页写 imatrix 或 IQ 开头)。上表里 Q4_K_M 有无 imatrix 的差距约 35%(ΔPPL 0.151 vs 0.175),白捡的优化。
  4. Q3 以下先考虑换小一号的模型,而不是继续压大模型。Q2 的 27B 通常打不过 Q5 的 14B——前者概率分布已经严重变形,后者基本保持完好。(这是社区共识性的经验判断,具体到某对模型请以实测为准。)
  5. 发布者选熟面孔:bartowski、unsloth、mlx-community 等高频发布者的量化流程成熟、通常带 imatrix,模型卡里会写清校准细节。

实战参考:24GB Mac mini 的真实内存账

理论之外,我们在一台 24GB 统一内存的 Mac mini M4 上把 Qwen3.8-27B 的 4-bit 量化完整跑通并三轮复测过:模型本体约 15GB,加上 2B 草稿模型和 KV cache 后峰值 19.4GB,速度 6.5 tok/s(纯自回归)到 11.7-12.2 tok/s(投机解码)。完整部署命令和内存明细见:

五、常见问题 FAQ

4-bit(int4/Q4)量化效果到底怎么样?

以 Q4_K_M 为准:PPL 增约 2-3%,正确 token 概率掉约 0.4-0.6%,日常使用基本无感;对数学证明、长链推理这类对概率分布敏感的任务,差距会被放大一些。结论:消费级硬件的默认选择,放心用。

Q4 和 Q8 的效果差多少?

数据上:ΔPPL 0.15 vs 0.003,Mean Δp -0.4% vs -0.02%——Q8 确实更好,但两者都在"对话中难以察觉"的区间。差距主要体现在极限任务的错误率上。内存够就上 Q8/Q6,不够时降到 Q4_K_M 的心理负担可以放下。

Q3 的损失能接受吗?

Q3_K_M(带 imatrix)PPL 增约 8%、正确 token 概率掉 1.2%——能用,但"聪明劲儿"的下降开始可感,代码和数学任务错误率上升。把它当"内存不够时的过渡方案",并优先考虑换小一号模型的更高量化档。

IQ4_XS 和 Q4_K_M 选哪个?

Q4_K_M 质量略好(ΔPPL 0.151 vs 0.228),IQ4_XS 体积略小(4.14 vs 4.58 GiB)。内存卡在临界点选 IQ4_XS,否则 Q4_K_M。注意 IQ 系列在部分老硬件/后端上解码开销略高,Apple Silicon 上两者都好用。

FP8 和 INT4/NVFP4 是怎么回事?跟 GGUF 是一类东西吗?

不是一类。GGUF 的 Q/IQ 档是 llama.cpp 生态的权重压缩格式,主打 CPU/Apple Silicon;FP8、NVFP4 是 NVIDIA 数据中心/Blackwell 硬件原生支持的浮点低精度格式,主要配合 vLLM/TensorRT-LLM 在服务器 GPU 上做高吞吐推理。浮点格式对激活值分布更友好,但依赖特定硬件;两边的"4-bit"不能直接拿 PPL 表互比,选择跟着你的硬件走。

1.58-bit(三值化)模型是真的吗?

BitNet 一类的 1.58-bit 是从头训练的三值权重架构,不是把现成模型事后压到 1.58 bit——这两件事经常被混为一谈。对现成模型做 1-2 bit 的事后量化,参考上表 IQ1/IQ2 的数据:IQ2_M 勉强能看,IQ1_S 已经崩坏。社区里的"动态 1.58-bit"大模型 GGUF 属于混合精度方案(关键层保高位),效果好于纯 IQ1,但仍显著弱于 Q4。

量化会影响速度吗?

会,而且通常是变快:本地推理是内存带宽瓶颈型任务,权重越小、每 token 要搬的数据越少。这也是 24GB Mac 上 4-bit 27B 能跑到接近阅读速度的原因之一。例外是部分 IQ 档的解码计算开销略高,在算力弱的老 CPU 上可能抵消带宽收益。

参考资料

相关文章

LM Studio 速度慢怎么办:Mac 实测首字等 39 秒的真正原因是 prompt 预填充,不是 GPU 没开满

在 24GB M4 Mac mini 上用 LM Studio 跑 gemma-4-e4b(Q4_K_M)实测:生成速度约 29.5 tok/s,GPU offload 从全开调到全关只慢 11%;真正让人觉得慢的是长 prompt 的预填充——1.3 万 token 的 prompt 要等 39.4 秒才出第一个字(约 330 token/s),全 CPU 时还要再慢 3.4~3.7 倍。相同前缀的第二次请求首字只要 0.1 秒(前缀缓存)。--parallel 4 时同时来 4 个请求,每个只剩 9.7 tok/s。

mac-mini本地大模型+5
pitfalls2026年10月5日7 min
389

Ollama 显存不足怎么办:24GB Mac 实测 num_ctx、并发、KV 量化各吃多少内存,以及它不会拦你的那个坑

24GB 的 M4 Mac mini,Ollama 0.19 只认到 17.8 GiB 显存,默认上下文只给 4096。实测 qwen3:4b:上下文从 4k 开到 32k,占用从 3.73GB 涨到 9.89GB;OLLAMA_NUM_PARALLEL=4 时 8k 上下文占用等于单路 32k,但 ollama ps 只显示 8192;开 Flash Attention + q4_0 KV 量化后 32k 只要 4.31GB、64k 只要 5.77GB,速度不变。上下文开到远超内存时 Ollama 不会提前拒绝,而是直接开始分配,16 秒内系统可用内存掉到 23%。全部挪到 CPU 只慢 25%。

mac-mini本地大模型+5
pitfalls2026年10月5日7 min
392
llama.cpp 部署 llama-server 还是用 ollama?Mac mini 24GB 同一个 GGUF 实测:ollama 底下跑的就是 llama-server

llama.cpp 部署 llama-server 还是用 ollama?Mac mini 24GB 同一个 GGUF 实测:ollama 底下跑的就是 llama-server

在 24GB Mac mini 上让 llama-server(b11376)和 ollama(0.35.1)加载同一个 GGUF 文件对照:ollama 0.35 的推理进程就是它自带的 llama-server,同参数下速度一样(4B 解码 36.5 vs 36.3 tok/s,27B 都是 6.3)。差别全在默认参数:ollama 默认上下文 4096,官方库模型的超长 prompt 会被静默截到 2050 token,日志里只有一行 WARN;llama-server 默认按显存把上下文开到最大(4B 开到 101120,footprint 14GB 以上),超长时明确返回 400;并发上 llama-server 默认 4 槽并行,ollama 默认排队;ollama 设 32k 加 4 并发会按每路 32k 分配,footprint 约 21GB。文末给出 24GB 机器的推荐启动参数。

qwenmac-mini+6
hands-on2026年10月3日11 min
571

24GB Mac mini 能跑多大的本地大模型?内存账、实测速度与提速方案汇总

一台 24GB 统一内存的 Mac mini 到底能跑什么模型?答案是:27B 的 4-bit 量化就是天花板,且我们真的把 Qwen3.8-27B 在 M4 丐版上完整跑通了——峰值内存 19.4GB,投机解码后 11.7-12.2 tok/s。本文汇总这台机器上的全部实测:各参数量级的内存账、速度预期、三条提速路线的真实效果(DFlash 2 / 原生 MTP / MLX vs llama.cpp),以及量化档位怎么选。

qwendflash+6
ai-tutorials2026年9月4日5 min
1225