Quantization without Tears¶
会议: CVPR 2025
arXiv: 2411.13918
代码: https://github.com/wujx2001/QwT (有)
领域: 多模态VLM
关键词: 网络量化, 后训练量化, 补偿模块, 闭式解, 模型压缩
一句话总结¶
提出 QwT(Quantization without Tears)方法,通过在量化网络的每个 block 后添加一个轻量级线性补偿层来弥补量化信息损失,该补偿层参数可通过闭式解在2分钟内求得,在视觉、语言、多模态等多种任务上均显著提升了 PTQ 精度。
研究背景与动机¶
现有网络量化方法存在"速度-精度困境":PTQ 速度快但精度差,QAT 精度高但需要大量训练(如200个epoch)。此外,量化方法通常非常复杂,包含大量需要针对特定任务调优的超参数,且缺乏跨模型和任务的通用性。作者认为,问题的根源在于现有方法强制要求量化后的网络结构 \(S^{\mathbb{Z}}\) 必须与原始结构 \(S\) 完全一致。如果允许在量化网络中添加少量额外模块 \(S_c\) 来补偿量化损失,就可以同时实现速度、精度、简洁性和通用性。
方法详解¶
整体框架¶
QwT 的核心范式转变:允许量化后的网络结构从 \(S^{\mathbb{Z}} = S\) 变为 \(S^{\mathbb{Z}} = S \cup S_c\),其中 \(S_c\) 是由一组轻量线性层组成的补偿模块。流程为:(1) 使用任意 PTQ 方法量化模型;(2) 在每个 block 后添加线性补偿层 \(c_i\);(3) 用闭式解设置补偿层参数。整个过程约2分钟完成,零超参数。
关键设计¶
-
线性补偿层(Compensation Module):
- 功能:弥补每个 block 量化后输出 \(y^{\mathbb{Z}}\) 与原始输出 \(y\) 之间的信息损失
- 核心思路:定义 \(c(x) = Wx + b\),量化后每个 block 的输出变为 \(y^{\text{QwT}} = l^{\mathbb{Z}}(x^{\mathbb{Z}}) + c(x^{\mathbb{Z}})\),其中 \(W \in \mathbb{R}^{d_{out} \times d_{in}}\), \(b \in \mathbb{R}^{d_{out}}\)
- 设计动机:虽然单个线性层无法精确补偿非线性信息损失,但每个 block 都进行线性修正,整体补偿效果是非线性的;且线性层保证了闭式解的存在
-
闭式解求解(Closed-form Solution):
- 功能:无需反向传播即可直接求得补偿层的最优参数
- 核心思路:信息损失度量为 \(\|Y - Y^{\mathbb{Z}}\|^2\),这是经典线性回归问题,闭式解为 \(W^* = (Y - Y^{\mathbb{Z}}) X^{\mathbb{Z}\top} (X^{\mathbb{Z}} X^{\mathbb{Z}\top})^{-1}\),其中 \(b\) 被吸收进 \(W\) 中(在 \(X^{\mathbb{Z}}\) 上拼接全1行向量)
- 设计动机:闭式解保证了极快的初始化速度(~2分钟),且零超参数,避免了 QAT 方法的大量训练开销
-
\(R^2\) 过滤机制:
- 功能:自动跳过补偿效果差的 block,防止精度退化
- 核心思路:计算每个补偿模块的决定系数 \(R^2\),仅当 \(R^2 > 0\) 时应用闭式解初始化,否则将 \(W\) 和 \(b\) 设为零(即不改变该 block)
- 设计动机:少数(<5%)block 的线性回归拟合度很低,强制补偿反而会损害精度;设零保证"至少不变差"
损失函数 / 训练策略¶
- 无需训练(PTQ模式):直接用512张校准图像的闭式解初始化,无反向传播
- 可选微调(QwT*模式):仅需1个epoch微调补偿层和分类头,即可逼近QAT精度(QAT通常需200个epoch)
- 对QAT的扩展:QAT模型因已充分收敛,闭式解不再有效,改为零初始化后微调
实验关键数据¶
主实验¶
| 数据集/任务 | 模型 | 比特数 | PTQ基线 Top-1 | +QwT Top-1 | +QwT* Top-1 |
|---|---|---|---|---|---|
| ImageNet 分类 | ViT-B | W4A4 | 68.5 | 76.3 | 78.5 |
| ImageNet 分类 | Swin-T | W4A4 | 73.0 | 75.5 | 79.3 |
| ImageNet 分类 | DeiT-T | W4A4 | 58.2 | 61.4 | 64.8 |
| ImageNet 分类 | ResNet-50 | W4A4 | 62.3 | 68.5 | 72.5 |
| COCO 检测 | Swin-S+MaskRCNN | W4A4 | 42.6 AP | 43.1 AP | - |
| CLIP 零样本 | ViT-B/32 (V+T) | W6A6 | 29.8 | 43.5 | - |
| DiT 生成 | DiT-XL/2 | W4A8 | 6.75 FID | 6.06 FID | - |
消融实验¶
| 配置 | ViT-B W4A4 Top-1 | 说明 |
|---|---|---|
| PTQ4ViT 基线 | 30.7 | 原始PTQ精度极低 |
| PTQ4ViT + QwT | 70.0 | 闭式解补偿提升~40% |
| RepQ-ViT 基线 | 68.5 | 较好的PTQ基线 |
| RepQ-ViT + QwT | 76.3 | 仍有7.8%提升 |
| Percentile 基线 (W6A6) | 56.7 | - |
| Percentile + QwT (W6A6) | 79.8 | 提升23.1% |
关键发现¶
- QwT 的额外开销极小:推理延迟仅增加约3%,模型大小增加约3%
- 在低比特(4-bit)场景下效果尤为显著,平均提升约5%
- QwT 对 CLIP 双编码器量化效果突出:V+T 同时量化到6-bit时,PTQ精度从29.8%提升至43.5%(+13.7%)
- LLaMA3-8B 的 INT4 量化中,QwT 将 WikiText2 困惑度从6.65降至6.63,常识QA平均准确率从64.90%提升至65.18%
亮点与洞察¶
- 范式创新:打破了"量化网络结构必须与原始网络相同"的隐含假设,开辟了"量化+补偿"的新范式
- 极致简洁:零超参数 + 闭式解 + ~2分钟完成,是目前最简单的量化精度提升方法
- 黑盒兼容:可作为插件叠加到任意PTQ方法之上(RepQ-ViT, PTQ4ViT, GPTQ等),无需了解底层量化细节
- 跨任务通用:同一方法在CNN、ViT、CLIP、DiT、LLaMA上均有效,覆盖分类/检测/分割/生成/NLU
局限与展望¶
- 补偿层是全连接线性层,当 \(d_{in}\) 很大时参数量和计算量不可忽略(ResNet中用分组卷积缓解)
- 对QAT模型的闭式解无效,只能零初始化后微调
- CLIP双编码器量化时精度恢复虽大但仍有明显gap(43.5% vs 63.4%全精度)
- 未在更大的LLM(如70B)上验证效果
相关工作与启发¶
- 与 BRECQ、QDrop 等基于block重建的PTQ方法相比,QwT不修改量化过程本身而是"事后补偿"
- 与 GPTQ 的二阶信息加补偿矩阵方式有哲学上的相似性,但GPTQ在权重空间做,QwT在输出空间做
- 补偿模块的思想可推广到其他压缩手段(剪枝后的精度恢复、知识蒸馏中的残差学习等)
评分¶
- 新颖性: ⭐⭐⭐⭐ 量化范式的转变(允许结构变化)是重要创新,但线性补偿层本身是简单想法
- 实验充分度: ⭐⭐⭐⭐⭐ 覆盖CNN/ViT/CLIP/DiT/LLaMA五类模型和分类/检测/分割/生成/NLU五类任务,极其全面
- 写作质量: ⭐⭐⭐⭐ 逻辑清晰,动机论述有说服力,公式推导简洁
- 价值: ⭐⭐⭐⭐ 作为量化工具箱的通用插件有很高实用价值,但LLM上的提升较为有限
相关论文¶
- [CVPR 2025] MBQ: Modality-Balanced Quantization for Large Vision-Language Models
- [CVPR 2025] It's a (Blind) Match! Towards Vision-Language Correspondence without Parallel Data
- [CVPR 2026] Fine-Grained Post-Training Quantization for Large Vision Language Models with Quantization-Aware Integrated Gradients
- [ICML 2025] Ranked from Within: Ranking Large Multimodal Models Without Labels
- [CVPR 2026] MASQuant: Modality-Aware Smoothing Quantization for Multimodal Large Language Models