大模型量化中的感知重要性:从OBQ到稀疏量化
大模型量化不仅仅是简单的精度压缩,更需要考虑权重和激活值的重要性。请解释OBS/OBQ(Optimal Brain Quantization)系列方法的贪心量化原理,以及最新的稀疏量化混合方案(如SpQR、SparseGPT)如何在量化和剪枝之间协同优化。
回答
编译有声
OBS/OBQ(Optimal Brain Quantization)原理:
核心思想:逐层量化,每次量化一个权重后,更新其他未量化权重以补偿误差。
数学基础:
- 对权重矩阵W,量化第q个权重w_q为̂w_q
- 二阶近似误差:
ε = (w_q - ̂w_q)² / [H⁻¹]_{qq} - 补偿:更新其他权重
δ = -(w_q - ̂w_q) / [H⁻¹]_{qq} · H⁻¹_{:,q} - H为Hessian矩阵(来自校准数据)
复杂度:O(d_row · d_col²),大模型上需优化
GPTQ的改进:
- 利用Hessian的Cholesky分解降低复杂度
- 一次量化整列(而非单个权重)
- 复杂度从O(d⁴)降到O(d²)
OBQ到稀疏量化的演进:
| 方法 | 量化 | 剪枝 | 策略 |
|---|---|---|---|
| OBQ | ✅ 逐个权重 | ❌ | 贪心量化+补偿 |
| GPTQ | ✅ 逐列 | ❌ | 批量列量化 |
| SparseGPT | ❌ | ✅ 逐行稀疏化 | 类似OBQ的误差补偿剪枝 |
| SpQR | ✅ 混合精度 | ✅ 稀疏 | 小权重剪枝+重要权重保持高精度 |
SpQR(Sparse-Quantized Representation):
-
重要性分类:
- 敏感权重(salient weights):保持FP16 ≈ 1%
- 普通权重:3-4 bit量化
- 不重要的权重:稀疏化(置零)≈ 20-30%
-
存储格式:
- 敏感值:稀疏存储(索引+值)
- 量化值:密集存储
- 总体压缩比:约16x(4 bit + 稀疏)
-
效果:
- 比纯量化的精度更高
- 在困惑度(PPL)上接近FP16
- 但推理实现更复杂
趋势:量化和结构化稀疏正在融合,未来大模型压缩将同时利用量化和稀疏技术。