M4-104M4: Sequences & TransformersModel Compression & DistillationHard
Mastery:
Model Compression & Distillation: 解释量化的精度损失来源与缓解。
📐 Mathematical Definition
⚡ Executive Summary
Core Concept: 损失来自舍入误差(受动态范围与粒度影响)、离群值撑大范围、以及误差在层间累积;用细粒度/离群值分离/缩放缓解。
📌 Key Takeaways
- •舍入误差 ∝ 动态范围 / 2^b
- •离群值使范围变大 → 有效精度下降
- •误差在层间/层内累积(尤其激活)
📐 Mathematical Derivations
数学机理:<strong>三类损失来源</strong>。<strong>(1) 舍入误差</strong>——量化把连续值映射到 2^b 个格点,步长 Δ=(max−min)/(2^b−1);单个值的量化误差 ≤ Δ/2。故<strong>动态范围越大、比特越少,误差越大</strong>。缓解:(a) 增加比特;(b) <strong>细化粒度</strong>(per-channel/per-group 使每组的范围更小、Δ 更小)。<strong>(2) 离群值(outliers)</strong>——若分布中有极端值(如某通道激活是均值的 50 倍),则 max−min 被撑大、Δ 变大,<strong>绝大多数正常值挤在少数格点上</strong>(有效精度崩塌)。这是 <strong>LLM 量化的核心难题</strong>。缓解:(a) <strong>离群值分离</strong>(LLM.int8() 把离群通道拆出来用 FP16);(b) <strong>缩放/平滑</strong>(SmoothQuant 把激活的难度转移到权重);(c) <strong>激活感知保护</strong>(AWQ 保护 1% 显著通道);(d) <strong>细粒度量化</strong>(per-token 激活量化)。<strong>(3) 误差累积</strong>——(a) <strong>层内累积</strong>:量化误差会进入后续计算(如注意力输出、残差流),逐层放大;(b) <strong>层间累积</strong>:深层的误差累积更严重;(c) <strong>激活的误差比权重影响大</strong>(因为激活是动态的、且进入残差流被反复使用)。缓解:(a) <strong>保留部分高精度</strong>(如 LayerNorm/softmax/残差用 FP16);(b) <strong>逐层校准</strong>(GPTQ 逐层最小化输出误差);(c) <strong>误差补偿</strong>(如 bias correction)。<strong>其他来源</strong>——(a) <strong>量化粒度</strong>(per-tensor 最差);(b) <strong>对称 vs 非对称</strong>(分布不对称时非对称更好);(c) <strong>激活的动态范围随输入变化</strong>(同一层在不同输入下的范围不同,故需 per-token 动态量化)。<strong>衡量指标</strong>——用 (a) <strong>困惑度变化</strong>、(b) <strong>任务指标下降</strong>、(c) <strong>SQNR(信噪比)</strong>、(d) <strong>逐层输出误差</strong> 评估。
🏭 Production Trade-offs
深度剖析与工程权衡:① <strong>'权重 vs 激活'的难度差异</strong>——权重是<strong>静态</strong>的(分布固定、可离线分析),激活是<strong>动态</strong>的(随输入变化、含离群值);故 <strong>W4A16(只量化权重)</strong> 比 <strong>W8A8</strong> 容易得多,而 <strong>W4A4</strong> 极难。这解释了量化方案的演进顺序(先权重后激活)。② <strong>离群值的成因</strong>——研究表明 LLM 的激活离群值与'特定通道/特定 token'相关(如某些'注意力汇聚'位置的激活极大);这与其结构性现象(sink)相关,故可从架构侧缓解(如 QK-Norm、差分注意力减少离群值)。③ <strong>GPTQ 的核心思想</strong>——逐层处理,用该层的 Hessian(输入的二阶矩)来<strong>最小化量化后的输出误差</strong>(而非简单按幅度量化);这使得 INT4 权重量化几乎无损。④ <strong>AWQ 的核心思想</strong>——不是所有权重同等重要,保护'激活大的通道对应的权重'(先放大再量化)可大幅降低误差;这利用了'激活感知'的重要性。⑤ <strong>与 KV cache 量化的关系</strong>——KV 是动态的、且 K 与 V 的离群方向不同(K per-channel、V per-token),故需不同的量化粒度;这是 KV 量化的特殊难点。⑥ <strong>面试要点</strong>——被问'量化为什么掉点',应给出'<strong>舍入误差(∝范围/2^b)+ 离群值撑大范围 + 误差累积</strong>'三来源与'细粒度/离群分离/缩放/保留关键算子高精度'四类缓解,并说明'<strong>激活比权重难</strong>'与'GPTQ/AWQ 的核心思想';能联系到'离群值与 attention sink 相关'是深度理解的标志。
⚠️ Common Interview Pitfalls
- ✕以为权重与激活的量化难度相同
- ✕忽略离群值对有效精度的破坏
🎯 Interviewer Follow-ups
- ?为什么激活比权重更难量化?
- ?如何量化'精度损失'?
📚
Associated Knowledge Base Guides & Mindmaps
Explore the comprehensive technical article, exam cards, and global architecture tree.