十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Q4_K_M 和 UD-Q4_K_XL 差在哪?我把 GGUF 文件名拆了一遍

Q4_K_M 和 UD-Q4_K_XL 差在哪?我把 GGUF 文件名拆了一遍 摘要GGUF 文件名里的Q4_K_M、IQ4_XS、UD-Q4_K_XL只表示配方流派不代表质量等级。本文拆解 GGUF 量化后缀的命名规则与三代技术演进Legacy / K-quant / I-quant用源码公式讲清Q4_K_M的混合精度配方附 Llama-3.1-8B 各格式实测位宽表并覆盖 2026 年新增的UD-/_XL、-imatrix、FP4 后缀最后按显存给出选型建议与常见误区清单。本文把 GGUF 量化后缀拆到底并顺带讲清 GPTQ / AWQ / EXL2 / MLX 的差异附 Llama-3.1-8B 实测位宽表。文章目录结论先行一、先说个反直觉的事实Q4_K_M 比 Q4_K_S 大但 Q2_K 比 Q2_K_S 也大二、命名公式四段拆解三、三代技术演进用人话讲清楚Legacy初代方案Q4_0、Q5_1、Q8_0第二代K-quant2023 年 5 月PR #1684第三代I-quant2024 年 1-3 月PR #4773 起四、Q4_K_M 里到底混了什么五、核心数据表Llama-3.1-8B 实测位宽⚠️ 两套口径不能混用六、2026 年的三个新后缀1. UD- 前缀 _XL 后缀Unsloth 动态量化2. -imatrix重要性矩阵标记3. FP4NVFP4 与 MXFP4新战场别急着上车七、容易踩的坑同一个 Q4_K_M两个文件差 1.17 GB顺带扫盲文件名里那些跟量化无关的字段八、我该怎么选按显存直接给答案显存不够时的降级阶梯别忘了量化之外的三个杠杆九、其他生态扫盲HF 上那些不是 GGUF 的后缀GPTQ 的 group size 到底怎么选EXL2 的小数位宽是怎么来的bitsandbytes独一份不在文件名里的还有几个你会撞见但不用深究的十、三个经常被混为一谈的概念十一、误区清单十二、数据来源与口径说明结论先行下载本地模型时你在文件名里看到的Q4_K_M、IQ4_XS、UD-Q4_K_XL不表示质量等级只表示配方流派。真正的规则只有三条Q4里的 4 不是真实位宽。实测 Q4_K_M 在 Llama-3.1-8B 上是4.90 bpwbit per weight比 4 高出 22%。多出来的部分是关键张量升档和缩放因子的开销。_S/_M/_L不表示小/中/大质量它表示的是升档策略。它决定有多少关键张量被提到更高精度M 是平衡点不是中等质量。同一个Q4_K_M不同打包者的文件能差 1 GB 以上。标签只告诉你配方流派不告诉你最终成品。第三条尤其重要2026 年你在 HuggingFace 上看到的一半 GGUF 叫UD-Q4_K_XL但主流教程里根本没有这个后缀的解释。一、先说个反直觉的事实Q4_K_M比Q4_K_S大但Q2_K比Q2_K_S也大按常识SSmall应该比 MMedium小M 应该比 LLarge小。这条在 Q3、Q4、Q5 上都成立唯独在 Q2 上翻车格式Llama-3.1-8B 实际文件大小Q3_K_S3.65 bpwQ3_K_M4.00 bpwQ3_K_L4.31 bpwQ4_K_S4.67 bpwQ4_K_M4.90 bpwQ2_K无后缀3.17 bpwQ2_K_S更小接近纯 2.6 bpw原因是个历史遗留Q2_K是 2023 年 K-quant 推出时的初版档位自带大量升档FFN 下投影都升到 Q3_K源码里它的官方名字直接就叫“Q2_K - Medium”。Q2_K_S是后来补的省内存档才是真正的Small。所以看到Q2_K别以为它比Q2_K_S小它是 2-bit 档里质量损失更小、体积也更大的那个。二、命名公式四段拆解以UD-Q4_K_M为例UD - Q 4 _ K _ M ↑ ↑ ↑ ↑ ↑ │ │ │ │ └── 尺寸档S/M/LSmall/Medium/Large │ │ │ └────── K K-quant 超块家族 │ │ └────────── 数字 目标位宽档位不是真实平均位宽 │ └──────────── Q 量化IQ 重要性量化TQ 三值量化 └───────────────── UD Unsloth Dynamic厂商自定义前缀后缀片段含义出现在哪Q标准块量化这些格式IQi-quant码本 重要性矩阵IQ1_S ~ IQ4_XSTQ三值量化-1/0/1BitNet 专用TQ1_0 / TQ2_0KK-quant256 权重超块结构Q2_K ~ Q6_K_0/_1老格式_0只存缩放_1多存一个偏移Q4_0 / Q4_1 / Q5_0 / Q5_1 / Q8_0_S/_M/_LSmall / Medium / Large 升档策略Q3_K_* ~ Q5_K_*、Q2_K_S_XS/_XXSextra-small / extra-extra-smallIQ2_XXS / IQ2_XS / IQ3_XXS / IQ3_XS / IQ4_XS_NLNon-Linear非线性码本IQ4_NLUD-Unsloth 动态量化UD-Q4_K_XL 等_XL厂商自定义档位llama.cpp 官方没有UD-Q4_K_XL三、三代技术演进用人话讲清楚Legacy初代方案Q4_0、Q5_1、Q8_0朴素的做法每 32 个权重分一块整块共用一个缩放因子权重就近取整。打个比方一本菜谱里每种调料的用量都写成3.2 克“5.7 克”现在统一改成一小撮“半勺”。省地方但精度粗。_0和_1的区别只有一条_0只记缩放比例_1额外记一个下界值偏移。多花 0.5 bpw精度略好。现状HF 官方文档已把它们标注为遗留方法现在不常用。但Q8_0至今活着因为它几乎无损相对 F16 的困惑度增量只有 0.0004在精度基准和微调母本这类场景里用得多。⚠️ 一个常见错误很多资料说Q8_1是 9.0 bpw 且会出现在权重文件里。不对。Q8_1只用于计算中间结果你不会下载到一个 Q8_1 的权重文件。第二代K-quant2023 年 5 月PR #1684核心改进是两级分块32 个权重的小块打包成 256 权重的超级块而且缩放因子本身也被再量化。这一步把缩放因子的开销从老格式的 0.5 bpw 压到 0.0625~0.09 bpw。省下来的空间全给了权重2-bit 和 3-bit 量化这才头一回变得可用。人话版不再整本菜谱统一用勺而是每道菜单独配一套量具而且量具本身的刻度也做了精简。第三代I-quant2024 年 1-3 月PR #4773 起再进一步三板斧码本codebook权重不存数值只存码本里的第几个格子。8 个权重共用一个索引。偶符号技巧强制每组 8 个权重的正负号个数为偶数省 1 bit。重要性矩阵imatrix加权误差按权重的重要性加权重要的权重优先保住。人话版先请厨师把菜谱里关键的那几步标出来那些步骤把克数写清楚其余的随便糊弄。代价是必须要有 imatrix否则低 bit 档是total garbagellama.cpp 源码注释原话PR #4773 直接禁止了无 imatrix 的 IQ2_XXS/IQ2_XS 量化。四、Q4_K_M里到底混了什么这一节是全篇的核心。Q4_K_M其实是一份混合精度配方不是一个单一的块格式。llama.cpp 源码llama-quant.cpp的判定函数是use_more_bits(i, n) i n/8 || i ≥ 7n/8 || (i − n/8) % 3 2翻成大白话开头 1/8 的层、结尾 1/8 的层、中间每隔 3 层这些层的关键张量会升档。Q4_K_M 在标准 dense 模型上的完整配方张量实际使用的格式输出头output.weightQ6_K升档词嵌入token_embdQ4_Kattn_vuse_more_bits 命中的层Q6_K升档attn_v其余层Q4_Kffn_downuse_more_bits 命中的层Q6_K升档ffn_down其余层Q4_K融合的 attn_qkv若有Q5_K其余张量Q4_K为什么是首尾层和中间交替直觉是首尾层直接决定输入怎么进来、输出怎么出去对最终概率分布影响更大中间层交替升档是在质量和体积之间折中。⚠️ 网上流传的另一个版本说Q4_K_M 把一半 attention.wv 升到 Q6_K这个说法不准确源码里用的是上面那个公式。_S/_M/_L的真实差别_SSmall只升开头 4 个 attn_v 层和前 1/8 的 ffn_down_MMedium按 use_more_bits 公式升档_LLarge升档范围更大、档位更高五、核心数据表Llama-3.1-8B 实测位宽我用 Llama-3.1-8B80.3 亿参数的公开实测文件大小反推了每个格式的真实平均位宽。这是相当扎实的一组数据比源码理论值更贴近你实际下载到的东西。格式文件大小真实 bpw相对 F16困惑度增量*F16基准16.06 GB16.00基准—Q8_08.54 GB8.5153%0.0004Q6_K6.60 GB6.5741%−0.0008噪声级Q5_K_M5.73 GB5.7136%0.0122Q5_K_S5.60 GB5.5835%0.0400Q4_K_M4.92 GB4.9031%0.0532Q4_K_S4.69 GB4.6729%0.0992IQ4_XS4.48 GB4.4728%介于上两行之间Q3_K_L4.32 GB4.3127%0.1764Q3_K_M4.02 GB4.0025%0.2496Q3_K_S3.66 GB3.6523%0.5551Q2_K3.18 GB3.1720%0.6717注困惑度增量来自 llama.cpp PR #4773 附带的 llama-quantize 自打印数据评测对象是 LLaMA-v1-7B2024-01与文件大小列不是同一个模型。它只用来看同族内的相对排序不要当成 Llama-3.1-8B 的真实损失。读这张表的方法从 Q4_K_M0.0532到 Q3_K_M0.2496困惑度增量放大近 5 倍。这就是3-bit 开始能感觉到质量变化的由来。到 Q2_K0.6717是明确的质量台阶比 Q4_K_M 差了 12 倍。Q6_K 的 −0.0008 是负值说明它和 F16 的差距已经在噪声范围内。想要无损Q6_K 就够了不必上 Q8_0。⚠️ 两套口径不能混用这里容易出错。同一个IQ4_XS按源码块结构算4.25 bpw按实测文件大小反推4.47 bpw差的 0.22 bpw 是词嵌入、输出头、一维小张量这些不进块结构统计的部分。你在不同资料里会看到两套数字打架它们都没错只是口径不同。我这张表统一用实测口径因为它直接对应你要下载多少 GB。六、2026 年的三个新后缀1.UD-前缀 _XL后缀Unsloth 动态量化这是两份主流教程都没讲、但你躲不开的一个。是什么标准 GGUF 量化给每一层用同一套规则Unsloth Dynamic 会逐层分析敏感度把敏感的层尤其是注意力层提到高精度不敏感的层往更低的位宽压。实测效果Gemma 3 12BUnsloth 公布数据指标BF16 基线UD-Q4_K_XL标准 Q4_K_XL5-shot MMLU67.15%67.07%更低文件大小—7.52 GB相近KL 散度衡量量化前后输出分布差异越低越好的改善Q2_K_XL −3.8%、Q3_K_XL −8.2%、Q4_K_XL −4.8%。我的建议如果同一个模型既有 UD- 版又有标准版优先下 UD- 版。同样体积质量更好不要钱。但这里有个必须知道的真相UD-Q4_K_XL的 GGUF 文件头里file_type 字段写的是15也就是LLAMA_FTYPE_MOSTLY_Q4_K_M。_XL这个档位只活在文件名里不在文件格式里。也就是说_XL是 Unsloth 自己定义的标签llama.cpp 官方的量化类型表根本没有这一项。同理你在别处看到的Q4_K_XL、Q5_K_XL、Q6_K_XL也都是厂商自定义档位。2.-imatrix重要性矩阵标记前面说过imatrix 是对哪些权重重要的统计它对 IQ 系列是刚需。⚠️常见的误解IQ不等于imatrix。IQ是一种存储类型用码本存索引imatrix是一份校准数据告诉量化器该保护谁一个叫Q4_K_M的文件也可能是 imatrix 量化版。主流打包者Bartowski、MaziyarPanahi、unsloth的 K 系列基本都带 imatrix。下载建议各档 IQ 系列、以及 Q2/Q3 档位只下有 imatrix 的版本。2-bit 档没有 imatrix 基本不可用。3. FP4NVFP4 与 MXFP4新战场别急着上车NVFP4MXFP4归属llama.cpp 主线type ID 40ik_llama.cpp forktype ID 39背景NVIDIA block-scaled FP4OCP 开放标准gpt-oss 原生格式落地时间2026 年 3-4 月分批合并2025-11 起硬件仅 BlackwellRTX 5090 / PRO 6000 / B200有原生加速覆盖广含 CPU关键区别老卡RTX 3090 / 4090 / 5070也能跑 NVFP4 文件但只省显存不加速。Blackwell 原生路径是 llama.cpp build b89672026-04-29才打开的。社区实测 Qwen3.6-27B-NVFP4 在 RTX 5090 上项目b8966b8967变化预填充 pp5123295 t/s5547 t/s68%预填充 pp512 32K 上下文2515 t/s3587 t/s43%生成 tg12873.7 t/s73.6 t/s几乎不变看明白了吗FP4 加速的是读长 prompt 的速度RAG、长上下文 agent、代码库问答吐字速度几乎没变。如果你主要是对话聊天这个升级跟你关系不大。至于FP4 质量是否优于 Q4_K_M2026 年 9 月这个时间点社区结论还没统一。有模型上表现好也有编码类 benchmark 明显回退的案例。别急着当结论用。七、容易踩的坑同一个Q4_K_M两个文件差 1.17 GB2026 年 9 月有人扒了同一个模型Qwen3.6-27B的两个Q4_K_M文件做对比打包者差异unsloth基准bartowski比 unsloth 大 1.17 GB差异来源bartowski 把 32 个张量保留在 Q8_0 不压unsloth 一个都不留。两者的文件标签都叫Q4_K_M。再举一个更明显的Unsloth 的某个Q4_K_M文件里IQ4_XS 张量比 Q4_K 张量还多。标签说的是配方流派不是配方内容。所以别只看后缀选文件点开文件列表看一眼实际大小。同一模型同一标签差 1 GB 是常态。顺带扫盲文件名里那些跟量化无关的字段字段含义-Instruct/-it指令微调版能听懂人话-base/-pt是预训练基座不会对话-bf16/-fp16没量化16 bit 全精度体积比任何量化版都大-imatrix用了重要性矩阵校准-00001-of-00009分片编号大模型被切成多个文件要下全-32K/-1M上下文长度-GGUF/-MLX-4bit/-AWQ/-exl2目标运行时的格式八、我该怎么选按显存直接给答案文件大小 ≈ 参数量十亿× bpw ÷ 8。这只是权重还要另加 KV cache 和 0.5~1 GB 运行开销。模型规模Q6_K (6.57)Q4_K_M (4.90)IQ4_XS (4.47)Q3_K_M (4.00)IQ3_M (3.66)4B3.3 GB2.5 GB2.2 GB2.0 GB1.8 GB7B5.7 GB4.3 GB3.9 GB3.5 GB3.2 GB8B6.6 GB4.9 GB4.5 GB4.0 GB3.7 GB14B11.5 GB8.6 GB7.8 GB7.0 GB6.4 GB32B26.3 GB19.6 GB17.9 GB16.0 GB14.6 GB70B57.5 GB42.9 GB39.1 GB35.0 GB32.0 GB按显卡直接抄答案你的显存推荐4 GB3B~4B Q4_K_M或 7B IQ3_M务必 imatrix 版6 GB7B~8B Q3_K_M / IQ3_M8 GB7B~8B Q4_K_M贴边长上下文要开 KV 量化或 IQ4_XS想跑 14B 就 IQ3_M12 GB8B Q5_K_M / Q6_K或 14B Q4_K_M16 GB14B Q5_K_M或 32B Q3_K_M24 GB32B Q4_K_M或 70B Q3_K_M我手上是 RTX 3070 8G按这张表8B 的 Q4_K_M 占 4.9 GB加 KV cache 和开销基本贴着 8 GB 边这就是为什么很多人 8G 卡跑 8B 模型能跑但一开长对话就崩。显存不够时的降级阶梯Q4_K_M → IQ4_XS → Q3_K_M / IQ3_M → IQ3_XS / IQ3_XXS → IQ2_M / IQ2_XS → IQ2_XXS / IQ1_M 基准 省 9% 省 18~25% 省 33~37% 省 44~52% 省 57~64%但有个首要原则降两级以上之前先考虑换个更小的模型。理由模型参数量对质量的影响远陡于位宽对质量的影响。同样在 IQ3_XXS 下13B 的困惑度 5.4469 明显优于 7B 的 6.301370B 甚至在 IQ2_XXS2.06 bpw上还有 4.079。同样 20 GB 预算30B Q4_K_M 通常打得过 14B Q8。但这规则有边界70B Q2 未必能赢 30B Q4压到 2-bit 就进入收益递减区了。别忘了量化之外的三个杠杆KV cache 量化Q8_0 几乎不花代价就省下一半显存困惑度只 0.001。参数是--cache-type-k q8_0。缩短上下文KV cache 随上下文线性增长很多人省这个比降位宽划算。部分 GPU 卸载-ngl N只放 N 层进显存剩下的吃内存。⚠️量化权重不会缩小你的 KV cache。这是常见的踩坑机器在对话开头好好的聊 40 轮就崩那是 KV cache 在涨从 Q6 降到 Q4 一点用没有。九、其他生态扫盲HF 上那些不是 GGUF 的后缀你不是每次都在用 llama.cpp。这一节覆盖另外五大格式。格式典型文件名关键后缀谁能跑GGUFxxx-Q4_K_M.gguf本篇上文llama.cpp / Ollama / LM StudioCPUGPUMac 通吃GPTQxxx-GPTQ-4bit-32g-actorder32g/64g/128g 分组大小越小越准、越占显存actorder也叫 desc_act 按激活重要性排序更准vLLM / SGLang / ExLlamaV2纯 GPUAWQxxx-AWQ-4bit参数少一般就一个 4bitvLLM / TGI / Transformers纯 GPUEXL2xxx-4.65bpw-h6-exl24.65bpw目标平均位宽可连续调2~8 任意值h6 输出头用 6 bitExLlamaV2 / TabbyAPI纯 NVIDIA GPUMLXxxx-4bit/xxx-8bit就 4bit / 8bit 两档没有中间花样仅 Apple Siliconbitsandbytes NF4不体现在文件名里代码里load_in_4bitTruebnb_4bit_quant_typenf4Transformers加载时当场量化QLoRA 微调标配GPTQ 的 group size 到底怎么选TheBloke 的 Llama-2-13B-GPTQ 实测同一模型、同一 bit分支文件大小4bit-32g-actorder8.00 GB精度更高、体积也更大4bit-64g-actorder7.51 GB4bit-128g-actorder7.26 GB4bit-128g无 actorder7.26 GB更省、略差结论group size 越小越准代价是文件更大。显存够就选 32g。EXL2 的小数位宽是怎么来的EXL2 是把位宽做成了连续可调的旋钮你给一个目标比如 4.65 bpw量化器逐层测误差曲线然后在这个预算内分配敏感层给 6~8 bit钝感层给 3~4 bit平均下来正好 4.65。这就是为什么你会看到4.65bpw这种奇怪数字它来自真实的分层加权平均跟营销取整没关系。代价EXL2 只能在 ExLlamaV2 / TabbyAPI 上跑纯 NVIDIA GPU没有 CPU 回退。速度上它对同硬件的 GGUF 有 10~30% 优势。bitsandbytes独一份不在文件名里的它不产出文件是在你from_pretrained()的时候当场把模型压成 4 bit 塞进显存。所以 HF 上你找不到NF4 版的模型因为根本不存在这种文件。它是 QLoRA 微调的底座基座模型冻结在 4-bit NF4只训练很小的 LoRA 适配器。一块 48 GB 卡微调 65B 模型靠的就是它。还有几个你会撞见但不用深究的FP8 / compressed-tensorsllm-compressor 产出的格式要 H100/B100/MI300 这种新卡才吃满HQQ免校准8 bit 到 1 bit 都能压但 4 bit 以下掉得厉害AQLM / SpQR / VPTQ / HIGGS研究向冲 2 bit 以下EXL3ExLlamaV3 的新格式接 EXL2 的班十、三个经常被混为一谈的概念量化、剪枝、蒸馏是三件不同的事。干了什么模型结构参数量量化把每个权重从 16 bit 压到 4 bit不变不变剪枝去掉不重要的权重或整层变了减少蒸馏让小模型学大模型的输出换了模型大幅减少你在文件名里看到的Q4_K_M只说明它做了量化。有些模型名里同时带Distill蒸馏和Q4_K_M量化那是两件事叠加。顺带说一个QAT量化感知训练模型是训练时就带着量化约束训的不是训完再压。如果官方出了 QAT 版比如 Gemma 的 QAT 构建优先于社区的后量化版本。十一、误区清单❌ “Q4 就是 4 bit” → 实测 Q4_K_M 是 4.90 bpw❌ “_S/_M/_L 是质量等级” → 是升档策略M 是平衡点不是中等质量❌ “IQ 就是 imatrix 量化” → IQ 是存储类型imatrix 是校准数据两回事❌ “Q2_K 比 Q2_K_S 小” → 反过来Q2_K 更大❌ “量化了显存就够长对话了” → 量化权重不动 KV cache❌ “越小越快” → 在质量可接受范围内成立低于 Q3 后质量崩了快也没意义❌ IQ 比 K 好 → 同位宽确实更优但要 imatrix且部分后端曾有 Metal跑得慢❌ “同标签就是同文件” → 差 1 GB 以上是常态看实际大小❌ “Q8_0 保险些” → Q6_K 已经在噪声级了Q8 多花 30% 体积买看不见的差别十二、数据来源与口径说明文件大小与真实 bpwLlama-3.1-8B80.3 亿参数GGUF 各格式的公开实测文件大小按bpw 文件大小 × 8 ÷ 参数量反推统一用 10^9 字节的 GB 口径与 HuggingFace 页面显示一致。困惑度增量llama.cpp PR #47732024-01附带的 llama-quantize 工具自打印数据评测对象为LLaMA-v1-7B。只用于同表内相对排序。混合精度配方llama.cpp 源码src/llama-quant.cpp的use_more_bits判定函数与张量升档规则。Unsloth Dynamic 数据Unsloth 公布的 Gemma 3 12B 对比数据5-shot MMLU 与 KL 散度。FP4 数据llama.cpp NVFP4 相关 PR#20644 / #21074 / #22196 等build b8967 的 RTX 5090 实测来自 2026-04-29 社区 benchmark。GPTQ group sizeTheBloke/Llama-2-13B-GPTQ 模型卡分支对照表。局限本文未在本地实测。这些质量结论基于公开困惑度/KL 基准这类代理指标与实际对话、编码体感可能偏离不同评测的上下文长度和数据集不同跨表不可直接比较同一配方在不同模型GQA 比例、词表大小、是否共享嵌入上的实际 bpw 有 ±0.1 级浮动。一句话带走默认下载Q4_K_M有UD-版就下UD-版显存差 10% 换IQ4_XS差 20% 换Q3_K_M/IQ3_M再往下不如换个更小的模型。下载前点开看一眼实际文件大小别只信后缀。原创声明本文为作者原创转载请注明出处。文中 5 张配图与封面均由作者基于公开数据制作。更多AI相关信息请关注本号。
返回列表