读书笔记 · 约 15,465 字 · 预计推送 2 部分

精读笔记:大模型量化技术综述 — GPTQ、AWQ、GGUF 量化格式的原理与精度损失(消费级显卡实测结论汇总) 未开始

目录

题记与说明


一、七个维度提取

1. 核心问题

大模型动辄数十 GB(FP16 下 7B≈14GB、70B≈140GB),消费级显卡只有 8–24GB 显存。问题分三层:

关键概念澄清(来自来源 2、5):GPTQ 和 AWQ 是量化"算法",GGUF 是 llama.cpp 的量化"文件格式",三者不在同一层面比较——GGUF 内部的 k-quants 决定精度损失,GPTQ/AWQ 是带校准的"聪明"量化算法。

2. 主要主张

3. 方法

4. 数据与证据

GPTQ(WikiText2 ppl,越低越好):

模型FP164bit RTN4bit GPTQ3bit RTN3bit GPTQ
OPT-175B8.3410.548.37 (+0.03)7.3e3(崩溃)8.68
BLOOM-176B8.118.378.215718.64

论文注:"GPTQ loses only 0.03 perplexity at 4-bit on the 175B model, while RTN drops 2.2 points"。速度:A6000 上 FP16 589ms → 3bit 130ms(4.53×,GPU 从 8 张减到 2 张);A100 上 230ms → 71ms(3.24×,5 张减到 1 张)。batch=1、序列长 128。

AWQ(Llama-2-7B WikiText2 ppl):FP16 5.47;INT4-g128:RTN 5.73 / GPTQ 5.69 / GPTQ-R 5.63 / AWQ 5.60;INT3-g128:RTN 6.66 / GPTQ 6.43 / AWQ 6.24(LLaMA-7B INT3 无重排的 GPTQ 高达 8.81 vs AWQ 6.35)。GSM8K(INT4-g128):7B FP16 13.87 → AWQ 13.57(GPTQ 12.13、RTN 11.07);70B:FP16 56.41 → AWQ 56.40(几乎零损失)。速度:"TinyChat brings 2.7–3.9× speedup to three families of LLMs (Llama-2, MPT and Falcon) on 4090",平均 3.2–3.3×;"at least 2.6× speedup over AutoGPTQ";"up to 1.7× speedup over llama.cpp on Orin";4070 笔记本 Llama-2-13B 33 tok/s;树莓派 4B 0.7 tok/s。

GGUF 7B ppl 表(ΔPPL 相对基线,来源 4):
Q8_0 +0.0004|Q6_K +0.0044("Almost lossless")|Q5_K_M +0.0142|Q4_K_M +0.0535("Most popular default",~4.5 bpw)|Q4_K_S +0.1149|Q3_K_M +0.2437|Q3_K_S +0.5505|Q2_K +0.8698("not recommended");legacy:Q4_0 +0.2499、Q4_1 +0.1846、Q5_0 +0.0796、Q5_1 +0.0415。结论句:"Q4_K_M seems to be the community sweet spot offering ~75% size reduction with minimal quality loss";"A well-designed 4-bit format (Q4_K_M, IQ4_XS) can outperform a naive 5-bit legacy format"。

统一评测(Llama-3.1-8B-Instruct,五基准平均分 Avg / ppl):F16 基线 Avg 69.47 / ppl 7.32 / 15317 MiB。

方案体积压缩AvgWikiText-2 ppl
Q4_K_S70.83%69.17(4bit 帕累托最优)7.62
Q4_K_M69.41%69.157.56
Q5_065.19%69.92(全场最高)7.43
Q6_K58.98%69.237.35
Q8_046.87%69.417.33
Q3_K_M75.03%68.077.96
Q3_K_S77.23%65.49(−5.73%)8.96

任务敏感性:GSM8K 77.63(F16) → 68.31(Q3_K_S);HellaSwag 所有方案波动 <1 分;MMLU 在 Q3_K_S 掉到 59.31(F16 63.50);IFEval 部分中位宽反而更高(Q4_K_S 80.26 vs 基线 78.93,作者提醒可能属评测噪声)。CPU 吞吐:tg128 最快 Q3_K_S 9.91 tok/s(F16 2.83);pp 最高 Q4_0 97.35(F16 79.57)。

消费级显卡实测汇总(本主题核心交付,按来源分级):

来源等级硬件实测内容结果
同行评审论文(AWQ)RTX 4090TinyChat INT4 vs HF FP162.7–3.9× 加速(平均 3.2–3.3×)
同行评审论文(AWQ)RTX 4070 LaptopLlama-2-13B INT433 tok/s;FP16 连 7B 都放不下
同行评审论文(AWQ)Jetson Orinvs llama.cpp最高 1.7×
论文(GPTQ,工作站卡)A6000 / A1003bit 矩阵向量推理 vs FP164.53× / 3.24×(batch=1)
社区 ppl 表(llama.cpp)通用Q4_K_M 7B+0.05 ppl,≈75% 压缩
指南(local-ai-zone)24GB 卡70B 选型EXL2 5.0 bpw;13B 用 6.0 bpw
指南(local-ai-zone)12GB 卡7B/13B 选型AWQ 4bit 13B;EXL2 4.0bpw 7B
指南(local-ai-zone)8GB 卡7B/3-4B 选型AWQ 4bit 7B;GGUF Q4_K_M 3–4B
社区聚合(检索,未逐一验证)RTX 4090 / 3090llama.cpp Q4_K_M 生成速度7B:~130–170 / ~90–120 tok/s;13B:~70–100 / ~50–75 tok/s

选型结论引文:"GGUF Q4_K_M is the safe default — it runs everywhere and the quality is excellent";"ExLlamaV2 (EXL2) 是消费级 NVIDIA GPU 上最快的推理引擎";"On benchmarks AWQ often matches GGUF Q5_K_M at Q4 file sizes";"GPTQ: Worse than AWQ at 4-bit"。

5. 结论

  1. 4 bit 是消费级甜点:k-quant 的 Q4_K_M(+0.05 ppl)或统一评测中 4 bit 平均损失 0.4%–0.9%,体积省约 70–75%。
  2. 位宽相同 ≠ 质量相同:统一评测金句 "The quantization format matters, not just the nominal bit-width"——同为 7.43 ppl 的 Q5_0/Q5_1/Q5_K_S 在 GSM8K/IFEval 上分化;Q5_0 在 5 bit 帕累托最优,Q4_K_S 压过 Q4_K_M,Q8_0 被帕累托支配("Q5_0 provides both higher reduction and lower AvgLoss")。
  3. 3 bit 是悬崖边:平均损失 1%→2%→5.7%(Q3_K_L→M→S),数学/推理类任务(GSM8K −9.32)最先崩;2 bit 及以下不建议常规使用。
  4. 算法层面 AWQ 在低位宽上压 GPTQ:INT4 ppl 5.60 vs 5.69、INT3 6.24 vs 6.43,且校准需求小 10 倍、抗域偏移;但 GPTQ 仍是事实标准之一,AutoGPTQ 生态成熟。
  5. 消费级硬件路径:纯 NVIDIA + 求极限速 → EXL2;单文件跨平台/苹果/AMD/CPU → GGUF Q4_K_M;显存紧张(8–12GB)→ AWQ 4bit 或 GGUF;CPU-only → 只有 GGUF 可选。
  6. 速度本质:这些 W4 精度方法都靠"省显存带宽"提速(反量化到 FP16 再算),对 batch=1 的生成推理最有效;GPTQ 论文明确 "does not provide speedups for the actual multiplications, due to the lack of hardware support for mixed-precision operands"。

6. 局限

7. 对我的启发


二、逐来源精读详记

来源 1:GPTQ: Accurate Post-Training Quantization for Generative Pre-trained Transformers(ICLR 2023)

来源 2:AWQ: Activation-aware Weight Quantization for LLM Compression and Acceleration(MLSys 2024 最佳论文)

来源 3:Which Quantization Should I Use? A Unified Evaluation of GGUF Quantization Formats(arXiv 2601.14277)

来源 4:GGUF 量化指南(k-quants / i-quants / 官方 ppl 表转述)— Toni Sagristà Sellés

来源 5:消费级硬件选型指南 — GGUF vs EXL2 vs AWQ vs GPTQ(local-ai-zone)


三、综合结论:消费级显卡实测速查(跨来源合并)

  1. 速度(batch=1 生成):4bit 量化相对 FP16 的加速来自省带宽,量级 2.5–4.5×;AWQ 论文实测 4090 上 2.7–3.9×(对比 HF FP16 基线),GPTQ 论文实测 A6000/A100 3.24–4.53×(对比 FP16 内核基线);4090 vs 3090 同设置大约快 1.3–1.6×(社区聚合)。
  2. 精度:4bit 损失 0.4%–0.9%(统一评测)或 +0.05 ppl(Q4_K_M@7B);6bit/Q8 近无损;3bit 开始伤推理(GSM8K −9 分),2bit 不建议。
  3. 默认值共识:Q4_K_M 是"跨平台安全默认"(三个独立来源一致);纯 NVIDIA 追速度选 EXL2;质量敏感选 Q5_K_M/Q6_K;AWQ 在同体积下质量≈Q5_K_M。
  4. 风险点:低位宽(≤3bit)+ 数学/代码/工具调用任务是重灾区;requantize(重量化)会明显掉质量,务必从 16bit 原始权重直接量化。
  5. 证据强度分级:GPTQ/AWQ 论文 = 同行评审、可复现;统一评测 = 系统但仅 CPU + 单模型;GGUF ppl 表 = 社区多年积累但针对旧 7B 模型;local-ai-zone 与吞吐聚合数字 = 经验性,选型前应在自己硬件上用 llama-bench 复测。

四、未决问题 / 可再深入

← 资料库今日播报 →