在大模型(Large Language Models, LLMs)部署与应用中,量化(Quantization)是一项核心优化技术,旨在降低模型的存储、内存和计算开销,同时尽可能保持模型性能(如生成质量、准确率)。以下是关于量化概念、常用格式及主流工具的系统性说明。
一、什么是量化?(Quantization)
核心思想:
将原本使用高精度浮点数(如 FP32/FP16)表示的模型权重和激活值,转换为低比特整数或自定义低精度浮点格式(如 INT8、INT4、NF4 等)。
目的:
- ✅ 减小模型体积(7B 模型从 14GB → 3.5GB)
- ✅ 降低显存/内存占用
- ✅ 加速推理速度(尤其在 CPU/NPU 上)
- ✅ 降低功耗,便于端侧(手机、IoT)部署
二、量化类型
| 类型 | 全称 | 特点 | 适用场景 |
|---|---|---|---|
| PTQ | Post-Training Quantization (训练后量化) |
无需重新训练,直接对已训练好的模型量化 | 快速部署、社区模型 |
| QAT | Quantization-Aware Training (量化感知训练) |
在训练中模拟量化噪声,提升低精度鲁棒性 | 高精度要求、商业产品 |
💡 大多数开源大模型采用 PTQ,因其简单高效。
三、常用量化格式(Format)
| 格式 | 比特数 | 数据类型 | 特点 | 典型用途 |
|---|---|---|---|---|
| FP16 / BF16 | 16 | 浮点 | 基准精度,训练/推理常用 | GPU 原生支持 |
| INT8 | 8 | 整数 | 平衡精度与效率 | 服务器推理(TensorRT) |
| INT4 | 4 | 整数 | 极致压缩 | 边缘设备、消费级 GPU |
| GGUF | 支持 Q4_K_M、Q5_K_S 等 | 自定义混合精度 | 针对 CPU 优化,支持元数据 | llama.cpp、Ollama |
| GPTQ | 主要 INT4 | 权重仅量化 | 高保真,GPU 推理快 | AutoGPTQ、vLLM |
| AWQ | INT4(但保留 0.1% 重要权重为 FP16) | 混合精度 | 精度损失极小 | 商业部署首选 |
| NF4 | 4 | NormalFloat(专为 LLM 设计) | 比 INT4 更适合权重分布 | QLoRA 微调基础 |
🔍 说明:
- GGUF 是 llama.cpp 生态的通用格式,支持多种量化等级(Q2_K ~ Q8_0),适合 CPU/Mac/ARM。
- GPTQ 和 AWQ 是 GPU 友好型 INT4 格式,推理速度更快。
- AWQ 被认为是当前 INT4 中精度最高 的方案之一。
四、主流量化工具与框架
| 工具/框架 | 支持格式 | 特点 | 适用平台 |
|---|---|---|---|
| llama.cpp | GGUF(Q4_K_M, Q5_K_S 等) | 纯 C/C++,CPU 首选,跨平台 | Mac / Windows / Linux / 手机 |
| AutoGPTQ | GPTQ(INT4) | PyTorch 生态,易集成 | NVIDIA GPU |
| AWQ | AWQ(INT4 + 少量 FP16) | 高精度,支持 vLLM/TensorRT | NVIDIA GPU |
| Ollama | GGUF | 一键运行本地大模型 | 开发者快速体验 |
| vLLM | AWQ / GPTQ / SmoothQuant | 高吞吐推理引擎 | 云服务/API 部署 |
| TensorRT-LLM | INT8 / INT4(需校准) | NVIDIA 官方极致优化 | A100/H100 数据中心 |
| Hugging Face Transformers | 支持 bitsandbytes(QLoRA) | 微调时量化(NF4) | 研究/微调 |
五、量化效果对比(以 Qwen-7B 为例)
| 格式 | 模型大小 | 显存需求 | 推理速度(RTX 4090) | 生成质量(相对 FP16) |
|---|---|---|---|---|
| FP16 | ~14 GB | ≥16 GB | 1x(基准) | 100% |
| GGUF Q5_K_M | ~5.2 GB | CPU 运行 | ~0.6x(CPU) | ≈95% |
| GPTQ (INT4) | ~4.0 GB | ≥6 GB | ~1.8x | ≈92–95% |
| AWQ (INT4) | ~4.1 GB | ≥6 GB | ~1.7x | ≈96–98% |
✅ 结论:
- 追求最高性价比 → 选 AWQ
- 在 Mac/笔记本无独显 → 选 GGUF Q5_K_M
- 需要最大吞吐(API 服务)→ 用 vLLM + AWQ/GPTQ
六、注意事项
- 并非所有模型都适合极端量化(如 Q2/Q3),可能导致严重性能下降。
- 量化通常只用于推理,训练仍需 FP16/BF16。
- 校准数据很重要:PTQ 需要 128–1024 条样本进行范围校准。
- 输出层/LayerNorm 建议保留高精度(混合精度策略)。
七、总结
量化 = 让大模型“瘦身+提速”而不“变傻”
- 普通用户:下载
Qwen-7B-Q5_K_M.gguf用 Ollama 即可本地运行。- 开发者:用
AutoGPTQ或AWQ量化模型,部署到 FastAPI/vLLM。- 企业:结合 TensorRT-LLM + INT4 实现低成本、高并发推理服务。



