GPTQ 是一种训练后量化(post-training quantization,PTQ)技术:逐层最小化量化误差,把大模型的权重压到 4-bit 甚至更低,而不需要重新训练。
为什么要压
权重默认多是 16 位浮点。70 亿参数的模型,光权重就要约 14 GB 显存,还没算激活值(activation)和 AI 词典:KV Cache">KV Cache。压到 4-bit,权重体积约降到四分之一,原本要两张卡才放得下的模型,一张卡就能跑。
怎么压得不那么疼
最朴素的做法叫 RTN(round-to-nearest):把每个权重独立四舍五入到最近的格点。每个权重都在自己身上犯错,误差层层累加,压到 4-bit 后模型常常开始"结巴"。
GPTQ 换了个思路:不孤立地看单个权重。它一层一层处理,每层先用一小批校准数据(calibration data)跑一遍,记录输入激活的分布,据此近似出二阶信息(Hessian)——可以理解为一张"每个权重对输出影响的敏感度地图"。然后逐个量化权重,每量化一个,就把这次量化造成的输出偏差,按敏感度补偿到还没量化的权重上。
打个比方:一个合唱团要从 100 人裁到 25 人。谁走都会让某个声部变弱,但如果先算出每个人对整体和声的贡献,就能先裁掉最可替代的人,同时让剩下的人调整音量和站位,把损失补回来。裁到最后,整体听感尽量不变。GPTQ 裁的是权重精度,补的是剩余权重的取值。
和邻居的区别
| 方法 | 核心思路 | 需要什么 |
|---|---|---|
| RTN | 每个权重独立取整 | 几乎零额外开销 |
| GPTQ | 逐层量化 + 二阶信息误差补偿 | 一小批校准数据 |
| AWQ | 按激活重要性缩放权重通道 | 一小批校准数据 |
| QAT | 训练中模拟量化 | 完整重训,最贵 |
| bitsandbytes | 运行时反量化的通用方案 | 开箱即用,偏通用 |
一句话区分:RTN 各扫门前雪,GPTQ 知错就改,AWQ(Activation-aware Weight Quantization)给重要权重留好位置,QAT(quantization-aware training,量化感知训练)回炉重造。另外,GGUF、safetensors 属于文件格式,不是量化方法,别混为一谈。
对你意味着什么
如果你在部署模型,4-bit 权重让显存门槛大幅下降,但速度不一定等比例变快——反量化本身也要算力,实际快慢高度依赖推理框架的实现。校准数据若和业务场景差太远(比如用英文语料校准,却拿去跑中文法律问答),精度会掉,重要场景请自己跑一遍评测。
如果你只是普通用户,感受是:本地跑大模型从发烧友玩具变成了笔记本能干的事。在模型社区下载权重时,文件名带 -GPTQ 的一般就是这类量化版本,具体支持情况以对应的官方页面为准。
