LLM模型量化2026实战:GGUF、AWQ、GPTQ三大格式硬核实测,70B模型塞进一张4090的真相

一个70B参数的大模型,FP16精度下要吃掉140GB显存。大多数开发者手里只有一张24GB的RTX 4090。量化技术把权重从16位浮点压缩到4位整数,模型体积直接砍掉75%,质量损失却小得惊人。Llama 3 70B量化后能在单张4090上跑起来,这件事在两年前根本不敢想。

量化方法选错了,轻则速度拉胯,重则模型吐垃圾。GGUF、AWQ、GPTQ三条路线各有各的战场,开发者到底该押注谁,这篇文章用实测数据把账算清楚。

量化的底层逻辑:把连续值塞进16个桶里

神经网络权重通常存成16位或32位浮点数,每个权重可能是0.0023847或者-1.7632这样的连续值。量化做的事情很朴素:把权重范围切成16个桶(4位能表示0到15),每个权重归到最近的桶里,存储桶的编号而非完整数值。

反量化时用公式 `reconstructed = quantized_value * scale + min_value` 还原近似值。误差必然存在,关键在于把误差控制在那些对输出影响最大的权重上。简单粗暴地四舍五入,7B模型量化到4位直接产出乱码。聪明的算法会区分哪些权重重要、哪些可以牺牲。

GGUF:CPU推理的事实标准

GGUF由llama.cpp项目创造,Georgi Gerganov主导开发。它是一个容器格式,支持多种量化方案,设计目标是在CPU和Apple Silicon上高效推理,同时支持部分层卸载到GPU。

GGUF用分块量化加混合精度。模型被切成权重块,每块带自己的缩放因子。命名规则直接告诉你精度档位:

  • Q4_0:4位简单方案,每权重约4.34比特
  • Q4_K_M:4位k-quant中等质量,每权重约4.58比特
  • Q5_K_M:5位k-quant,每权重约5.69比特
  • Q8_0:8位近无损,每权重约8.5比特

K系列对不同层用不同位深,注意力层拿更多比特,前馈层少一些。I系列用重要性矩阵引导哪些权重该保高精度。

质量保留方面,Q8_0达到FP16的99%,Q5_K_M约97%,Q4_K_M约92%,Q3_K_M掉到85%,Q2_K只剩70%——这个档位已经能明显感知退化。Q4_K_M是大多数用户的甜点,体积缩小3到4倍,质量损失可控。

GGUF的强项在CPU和Apple Silicon场景,配合Ollama、LM Studio或llama.cpp直接用。单文件分发也是一大优势。弱项同样明显:纯GPU推理速度不如AWQ和GPTQ;在vLLM里跑GGUF吞吐只有93 tok/s,而AWQ加Marlin能到741 tok/s。

AWQ:GPU推理的吞吐怪兽

AWQ由MIT团队开发,核心洞察是:不到1%的权重是”显著权重”,对模型输出贡献不成比例地大。AWQ通过校准数据前向传播,测量哪些权重产生最大激活值,把这些权重保护在高精度或跳过量化,剩余99%压到4位。

这种选择性策略比均匀量化更好地保留了模型行为。AWQ还引入缩放因子,在量化前压缩权重动态范围,让低比特表示更友好。

真正让AWQ起飞的是Marlin内核。JarvisLabs在Qwen2.5-32B加H200上的实测数据很能说明问题:

| 方法 | 吞吐 | 质量Pass@1 |

| — | — | — |

| FP16基线 | 461 tok/s | 56.1% |

| AWQ(无Marlin) | 67 tok/s | 51.8% |

| AWQ + Marlin | 741 tok/s | 51.8% |

| GPTQ + Marlin | 712 tok/s | 46.3% |

没有Marlin内核的AWQ只有67 tok/s,加上Marlin直接飙到741 tok/s,比FP16基线还快60%。质量保持51.8%,比FP16的56.1%低4.3个百分点。GPTQ加Marlin吞吐712 tok/s接近AWQ,但质量掉到46.3%,差距拉开。

AWQ适合GPU API服务场景,每美元吞吐是核心指标。vLLM的Marlin内核是标配,部署链路成熟。

GPTQ:老牌选手的存量价值

GPTQ用Hessian矩阵最小化逐层重建误差,4位量化保留约90%的FP16质量。Hugging Face上预量化GPTQ模型存量巨大,拿来即用。新项目里AWQ已经反超GPTQ,质量保留更好,Marlin内核支持更完善。

GPTQ的定位很清晰:手头已经有预量化GPTQ模型,不想重新量化,直接用。新项目从FP16权重出发做量化,选AWQ更划算。

bitsandbytes:唯一支持训练的选项

前面三种都是推理量化。bitsandbytes是唯一支持训练的方案,QLoRA微调就靠它。QLoRA在LoRA基础上引入4-bit NormalFloat量化,把65B参数模型的微调显存从780GB压到48GB,单张A100 80GB能完成百亿参数微调。消费级RTX 4090 24GB可以跑7B模型的QLoRA训练。

2026年量化工具链经历了一次洗牌。AutoAWQ和AutoGPTQ已废弃,pip install会静默失败。新工具链是llm-compressor和GPTQModel,开发者迁移时务必更新脚本。

开发者选型决策树

把决策逻辑压成几条规则:

硬件是CPU或Apple Silicon,用Ollama或llama.cpp,选GGUF的Q4_K_M。需要混合CPU/GPU推理、部分层卸载,同样选GGUF。模型要打包成单文件分发,GGUF是唯一答案。

硬件是NVIDIA GPU,用vLLM做API服务,选AWQ加Marlin内核。吞吐优先的场景AWQ没有对手。GPU算力要求7.5以上(Turing架构,RTX 2000系列及更新),老卡没有优化内核支持。

手头已有Hugging Face上的预量化GPTQ模型,不想折腾,直接用GPTQ。新项目从零量化,跳过GPTQ选AWQ。

要做QLoRA微调,只有bitsandbytes这一条路。推理用其他三种,训练用bitsandbytes,各司其职。

质量验证:别靠感觉,靠数据

量化完跑困惑度测试,拿留出数据集对比FP16基线。Q4档位困惑度上升5%到10%属于正常范围。超过20%,实际使用中能感知到质量下滑。

GGUF的imatrix只在激进量化(Q3及以下、IQ2、IQ3)时才需要。Q4_K_M及以上用默认量化就够了,别给自己加戏。

格式之间不能直接转换。GGUF、AWQ、GPTQ存储权重的方式不同,跨格式转换必然丢质量。永远从FP16权重出发,量化到目标格式。

一张账单算到底

以Qwen2.5-32B为例,FP16基线吞吐461 tok/s,AWQ加Marlin达到741 tok/s,速度提升60%的同时显存占用砍掉75%。GPTQ加Marlin吞吐712 tok/s,质量比AWQ低5.5个百分点。GGUF在vLLM里只有93 tok/s,放到llama.cpp里才是主场。

70B模型FP16要140GB显存,量化到Q4_K_M约40GB,单张RTX 4090 24GB靠部分层卸载也能跑。7B模型Q4_K_M约4GB,树莓派上都能跑出10 tok/s,医疗场景的边缘部署已经落地。

量化是大模型平民化的关键技术。选对格式和内核,一张消费级显卡就能干曾经只有数据中心才敢想的活。选错了,要么速度惨不忍睹,要么质量一塌糊涂。开发者手里的决策权很值钱,别浪费在错误的路线上。


评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

苏ICP备2025163703号-2   警徽苏公网安备32010502011527号