什么是大模型“量化”?
如何把一个 140GB 的庞然大物无损塞进普通 8G 显卡里?揭秘大模型瘦身魔法 —— 从连续浮点数到离散整数的高保真映射艺术!
每个权重使用高精度 16 位浮点数存储。精度完美,但 70B 模型光是加载就需要 140 GB 显存,显卡带宽堵死,普通消费级显卡根本望尘莫及。
通过数学线性映射与显著权重保护,把 16 位浮点数压缩为 4 位整数(INT4)。体积骤降 75%,计算速度翻倍,智力测评表现几乎毫无衰减!
大模型量化技术的三大核心基石
从最底层的线性量化公式到主流算法流派
1. 线性量化与反量化数学公式
将连续浮点数 $x \in [\alpha, \beta]$ 映射为低比特整数 $q$: $$q = \text{clamp}\left( \left\lfloor \frac{x}{S} \right\rceil + Z, q_{\min}, q_{\max} \right)$$ 其中 $S$ 为缩放因子 (Scale),$Z$ 为零点偏置 (Zero-Point),计算时一乘一加即可瞬间还原回近似浮点数。
2. PTQ (训练后量化) vs QAT (感知训练)
• PTQ (Post-Training Quantization):几分钟搞定!拿到出厂权重直接用少量校准集进行压缩(如 AWQ/GPTQ/GGUF);
• QAT (Quantization-Aware Training):在预训练中模拟量化误差,精度最高但需要算力重训。
3. 异常值保护 (Outlier Activation)
大模型激活值中存在极少数幅度巨大(>100)的“异常值 (Outliers)”,一旦被粗暴缩放就会引发智商雪崩。AWQ / SmoothQuant 通过观察激活分布,自动对重要权重实施保留或平滑,实现真正无损!
📐 线性映射过程全解析:浮点数如何变成 4-bit 整数?
对称量化(Symmetric Quantization)核心数据流转:
1. 计算当前权重块的最大绝对值:$x_{\max} = \max(|X|)$
2. 计算量化缩放步长:$S = \frac{x_{\max}}{2^{b-1} - 1} = \frac{x_{\max}}{7}$
3. 将每个浮点数四舍五入为 $[-8, +7]$ 范围内的 4 位整数。
1. 从显存快速读取 4 位整数 $q$
2. 在 GPU 寄存器中瞬时还原:$\hat{x} = q \times S$
3. 配合激活值执行高速矩阵乘法,完全绕过显存带宽瓶颈!
📊 主流大模型量化算法与文件格式流派天梯表
| 量化方案 | 核心机制 | 量化速度 | 精度保真度 | 主要适用生态 |
|---|---|---|---|---|
| GGUF / K-Quants | 分块混合量化 (重要层保留高位宽) | 极快 (几分钟) | ⭐⭐⭐⭐⭐ 极高 | llama.cpp, Ollama, LM Studio, Jan (CPU/Mac/单卡首选) |
| AWQ | 激活感知显著权重保护 | 极快 (~10分钟) | ⭐⭐⭐⭐⭐ 极高 | vLLM, SGLang, TGI (云端企业级生产推理) |
| GPTQ | 基于二阶泰勒展开逆海森矩阵逐层误差补偿 | 较快 (~30分钟) | ⭐⭐⭐⭐ 很高 | AutoGPTQ, ExLlamaV2 (高端游戏显卡极限压榨) |
| BitsAndBytes (NF4) | 正态分布数据类型 (NormalFloat4) | 实时动态 | ⭐⭐⭐ 良好 | Hugging Face PEFT / QLoRA 4-bit 微调标配 |
| SmoothQuant | 将激活值异常难度平移到权重矩阵 (W8A8) | 极快 | ⭐⭐⭐⭐ 很高 | TensorRT-LLM, 全整型硬件推理加速 |
🎮 交互模拟器:不同量化方案在 70B 模型上的实测对比
点击下方量化方案,观察模型在 显存占用、打字速率(tok/s)与 MMLU 综合智能评测得分 上的变化: