一句话定义:GGUF 量化级别是 GGUF 模型文件里权重的“压缩档位”,用 Q4_K_M、Q5_K_S 这类代号说明每个权重平均用几个 bit 存储,又用了哪一套分块压缩策略。
先看代号。GGUF(GPT-Generated Unified Format)是 llama.cpp 这一系本地推理工具使用的模型文件格式。原始权重一般是 16 位浮点数,一个几十亿参数的模型,光权重就占好几 GB。量化就是把这些权重换成更低位宽的整数,再配一个缩放系数,把整数近似还原成原来的浮点值。打个比方:把一柜子衣服塞进真空压缩袋,每个袋子里装一批衣服,袋外贴张标签记下“这袋压到了几分之几”,还原时照标签吹起来。袋子划得越细,标签越贴合每件衣服的真实厚度,还原越准,但标签本身也占空间。Q4 大致等于“每件衣服压到原来四分之一大小”。
拆开 Q4_K_M:
Q= quantization,量化4= 目标位宽,平均每个权重约 4 bitK= k-quant 方法,把权重按大块分组、块内再分小子块,每块各带缩放系数,比早期的 Q4_0、Q4_1 这类老式量化更精细M= medium,同一 4 bit 档位下的中等配方。同档还有S(更小)、L(更大):做法是给敏感张量多留一点位宽,给不敏感的多压一点
| 常见档位 | 每权重约 | 体积 | 质量 | 典型场景 |
|---|---|---|---|---|
| Q8_0 | 8 bit | 最大 | 几乎无损 | 当基准、内存充裕 |
| Q6_K | 6 bit | 较大 | 很接近原模型 | 质量优先 |
| Q5_K_M / Q5_K_S | 5 bit | 中 | 好 | 平衡偏质量 |
| Q4_K_M | 4 bit | 中偏小 | 常见默认档 | 消费级显卡、单机本地跑 |
| Q3_K_M 及以下 | ≤3 bit | 小 | 明显下降 | 极限省内存 |
和相邻概念的区别:safetensors 是通用权重交换格式,通常保留原始精度,偏训练和转换;GPTQ、AWQ 也是量化,但主要服务 GPU 推理框架,而 GGUF 主打 CPU 与 CPU+GPU 混合推理。至于蒸馏是重训一个小模型、剪枝是删掉部分权重,量化则不动结构和参数量,只降低每个权重的存储精度。
选错会损失什么。压得太狠,模型开始“说胡话”:最先坏掉的往往是长链条推理、代码、数学、多语言和严格的 JSON 类格式输出,而且小模型比大模型更经不起压。压得太松,文件变大,一旦整套权重加 KV cache 装不进显存,就得把部分层卸载到 CPU,速度掉一个量级,或者被迫缩短上下文。所以选档的第一原则是“先保证装得下”,再在同尺寸里挑质量最高的那档;Q4_K_M 常被当作社区默认分发档,就是因为它卡在体积和质量都不难看的位置。
具体档位在不同工具链上的支持情况,以官方仓库说明为准。
