返回笔记
LLM
大模型推理加速:量化技术完全解析
量化
GPTQ
AWQ
GGUF
INT4
模型推理
大模型动辄几百 GB 显存需求,消费级硬件根本跑不动。量化技术让这一切成为可能。
什么是量化
量化就是把模型参数从高精度(FP32,32位浮点数)降到低精度(INT8、INT4)。精度降低 → 模型变小 → 推理变快 → 显存需求降低。
核心问题是:精度降了会不会影响效果?答案是:降得合理就影响很小。
量化的两种方式
训练后量化(PTQ)
模型训练完成后,直接对权重做量化。简单快速,不需要重新训练。常用的方法:
- GPTQ:对每一层做量化,用校准数据优化量化参数。效果很好,是目前最主流的 PTQ 方法
- AWQ:发现不是所有权重同等重要,重点保护"关键权重",可以比 GPTQ 更好的效果
- GGUF/GGML:llama.cpp 生态的量化格式,支持 CPU 推理,对消费级硬件极友好
量化感知训练(QAT)
训练过程中就模拟量化效果,模型"适应"了低精度。效果最好但需要重新训练,成本高。
FP16 / BF16
FP16 是最温和的"半精度",几乎不损失精度,显存减半。BF16 是 Google 提出的格式,动态范围更大,训练更稳定。大部分现代 GPU 都原生支持。
INT8 / INT4
INT8 量化显存减至 1/4,精度损失通常不到 1%。INT4 显存减至 1/8,对推理速度提升巨大,但需要方法得当才能保持质量。
实际工具
- llama.cpp:CPU 推理王者,GGUF 量化格式
- AutoGPTQ:GPU 上的 GPTQ 量化
- bitsandbytes:HuggingFace 集成的量化库,QLoRA 就基于它
- Ollama:开箱即用的本地模型运行工具,内置量化