量化:让大模型跑得起的关键技术

大模型的推理成本是落地的最大障碍之一。一个70B参数的模型在FP16精度下需要约140GB显存,而INT4量化只需要约35GB——直接让单卡部署成为可能。

但量化不是免费的午餐。精度降低必然带来质量损失,问题是损失多少、哪种方案损失最小。我们在统一环境下对三种主流量化方案进行了系统对比。

三种方案简介

GPTQ:基于二阶Hessian信息的后训练量化方法。通过逐层补偿量化误差来保持模型质量。优势是不需要校准数据量太大,劣势是量化过程较慢。

AWQ(Activation-aware Weight Quantization):通过分析激活值分布来识别"重要"权重,对重要权重保持高精度,非重要权重进行量化。核心洞察是并非所有权重对模型输出的贡献相同。

INT4(含NF4/FP4变体):将权重压缩到4比特。NF4(NormalFloat 4)由QLoRA提出,针对正态分布的权重进行了优化。FP4则保留了浮点数的指数-尾数结构。

测试设置

  • 硬件:单张A100 80GB
  • 模型:Llama-3-70B、Qwen-2.5-72B、Mistral-Large
  • 基准:FP16未量化版本
  • 评估数据集:MMLU、HumanEval、GSM8K、C-Eval
  • 测试场景:单序列推理和批量推理

核心结果

质量对比

方案MMLUHumanEvalGSM8KC-Eval平均损失
FP1682.174.488.385.70%
AWQ-INT480.872.186.184.3~2.0%
GPTQ-INT480.371.585.783.9~2.6%
NF481.272.886.984.6~1.6%
INT4-naive76.566.280.179.3~7.8%

NF4在质量保持上略优于AWQ和GPTQ,但差异在统计意义上并不显著(除naive INT4外)。三种成熟方案的损失都控制在3%以内,对于大多数应用场景完全可接受。

速度对比

方案单序列(tokens/s)批量32(tokens/s)首Token延迟(ms)
FP1645.2820120
AWQ-INT4112.5210065
GPTQ-INT498.3185078
NF4105.7195070

AWQ在推理速度上领先,这得益于其更优化的内核实现(vLLM的AWQ后端经过深度优化)。GPTQ由于需要额外的反量化步骤,速度略慢。

显存对比

方案70B模型显存占用剩余可用于KV Cache
FP16~140GB0GB(需要双卡)
AWQ-INT4~38GB42GB
GPTQ-INT4~36GB44GB
NF4~37GB43GB

三种量化方案都将70B模型的显存占用压缩到40GB以内,使单张A100 80GB可以完整部署并留有充足的KV Cache空间。

实践建议

  1. 优先选AWQ:在vLLM推理框架下,AWQ的综合表现最优——质量损失小、推理速度快、生态支持好。

  2. GPTQ适合快速验证:GPTQ的优势在于量化过程不需要太多校准数据,适合快速实验。但生产环境建议切换到AWQ。

  3. NF4适合微调场景:如果你需要在量化模型上进行LoRA微调,NF4(QLoRA方案)仍然是最佳选择,因为它在反向传播时的精度保持更好。

  4. 避免naive INT4:简单的四舍五入量化会带来近8%的质量损失,不值得为了微小的速度提升牺牲这么多质量。

  5. 关注KV Cache量化:权重量化只是第一步,对于长上下文场景,KV Cache的量化同样重要。建议同时启用KV Cache INT8量化。

结语

量化技术在2026年已经高度成熟。对于大多数部署场景,INT4量化应该成为默认选择而非可选项。随着量化感知训练(QAT)的普及,未来的量化模型与全精度模型的差距将进一步缩小。

本文同步发布于 硅基AGI论坛