2. 模型压缩基础

在把知识蒸馏与多任务学习真正落到工程部署之前,必须先理解模型压缩的四条基础技术路线:参数剪枝、量化、低秩分解与紧凑网络设计。它们并非互相替代,而是从不同维度削减模型的存储、计算与访存开销。本节将逐一拆解其原理、典型流程与适用边界,并给出选型对照。

核心判断:压缩的本质是在“精度—体积—速度—硬件友好度”四者之间做权衡。任何压缩方法都要回答三个问题:压缩什么(权重、激活、结构还是表示)、怎么压缩(稀疏、离散、分解还是重设计)、在哪里收益(显存、算力、延迟还是带宽)。

一、参数剪枝:从冗余权重到稀疏结构

剪枝的出发点是深度网络普遍存在参数冗余。按粒度可分为非结构化剪枝(逐权重置零)与结构化剪枝(整通道、整注意力头、整层删除)。非结构化剪枝压缩率高,但稀疏矩阵在通用 GPU 上难以获得实际加速;结构化剪枝虽压缩率略低,却能直接减小张量尺寸,带来真实延迟下降。

典型流程为“训练—评估重要性—剪枝—微调”的迭代循环。重要性度量常用权重绝对值、Taylor 展开、BN 缩放因子等。剪枝后必须微调恢复精度,否则误差会累积。

# 结构化剪枝伪流程
1. 训练基线模型,记录各层 BN 缩放因子 γ
2. 按 |γ| 升序排序,确定全局剪枝比例 p
3. 删除低于阈值的通道及其关联卷积核
4. 对剪枝后模型进行 10~20 epoch 微调
5. 评估精度,若掉点超阈值则回退比例 p

适用边界:剪枝适合参数量大、冗余明显的过参数化模型(如 VGG、大 ResNet);对本身已紧凑的模型收益有限。非结构化剪枝需配套稀疏推理库,否则“压而不快”。

二、量化:用低位宽换吞吐与带宽

量化把 FP32 权重/激活映射到 INT8、INT4 甚至二值。它同时降低显存占用、提升访存效率,并可在支持 INT8 的硬件上获得数倍吞吐。核心是缩放因子与零点的确定:

# 对称量化(权重常用)
q = round(w / s),  s = max(|w|) / (2^(b-1) - 1)
# 非对称量化(激活常用)
q = round(w / s + z),  s = (max - min) / (2^b - 1),  z = round(-min / s)

按阶段分为训练后量化(PTQ)与量化感知训练(QAT)。PTQ 只需少量校准数据,部署快;QAT 在训练中插入伪量化节点,精度更稳,尤其适合 INT4 及以下位宽。

适用边界:量化对卷积、全连接等计算密集层收益最大;对 LayerNorm、Softmax 等对数值范围敏感的算子需保留高精度或特殊处理。极低位宽(<4bit)通常需 QAT 与混合精度策略配合。

三、低秩分解:用矩阵分解压缩权重

低秩分解假设权重矩阵存在低秩结构,通过 SVD、Tucker 或 CP 分解,把大矩阵拆成若干小矩阵乘积。例如将 W ∈ R^{m×n} 近似为 U ∈ R^{m×r} 与 V ∈ R^{r×n} 的乘积,参数量从 m×n 降至 r(m+n),当 r ≪ min(m,n) 时显著压缩。

工程上常对卷积核做张量分解,或对全连接层做 SVD 截断。分解后同样需要微调以补偿近似误差。

适用边界:低秩分解适合权重矩阵维度大且谱衰减快的层;对已经低秩或非线性强的层效果差。分解引入的额外矩阵乘法可能增加推理碎片,需结合硬件评估。

四、紧凑网络设计:从结构源头控制成本

紧凑网络设计不压缩已有模型,而是直接设计高效结构,如深度可分离卷积、分组卷积、瓶颈结构、神经架构搜索(NAS)得到的轻量骨干。深度可分离卷积把标准卷积拆为逐通道卷积与逐点卷积,计算量可降至约 1/k² + 1/C_out 量级。

适用边界:紧凑设计适合从零构建端侧模型,精度上限受结构容量限制;若已有大模型且精度要求高,通常先剪枝/量化,再考虑结构替换。

五、四条路线对照与选型

方法压缩对象典型收益主要代价适用边界
参数剪枝冗余权重/通道参数量、部分延迟需微调,稀疏加速依赖库过参数化模型
量化数值位宽显存、带宽、吞吐精度损失,算子兼容性计算密集层,支持低位宽硬件
低秩分解权重矩阵秩参数量、矩阵乘法量近似误差,碎片化大维度、谱衰减快
紧凑网络设计整体结构算力、参数量、延迟精度上限,重新训练端侧从零构建

六、案例与误区复盘

案例:某 ResNet-50 图像分类模型部署到边缘设备。先做通道剪枝压缩 40%,再对卷积层做 INT8 PTQ,最后用深度可分离卷积替换部分 3×3 卷积。三步组合后模型体积降至原 18%,延迟下降 2.7 倍,Top-1 精度仅掉 0.8%。

常见误区:① 只看压缩率不看实际延迟,非结构化剪枝在 GPU 上可能“压而不快”;② 量化校准集分布与真实数据偏差大,导致上线掉点;③ 低秩分解后未微调,误差累积;④ 把紧凑网络设计当成“万能压缩”,忽视其精度上限。
工程建议:先量化(收益最直接、改动最小),再结构化剪枝,最后视情况低秩分解或结构替换。每一步都保留精度回退阈值与回滚方案,并用真实硬件测延迟而非仅看 FLOPs。
模型压缩四条基础路线:原理与适用边界 压缩目标:精度·体积·速度·硬件友好 参数剪枝 非结构化 / 结构化 重要性评估 → 剪枝 → 微调 边界:过参数化模型 量化 PTQ / QAT,INT8 / INT4 缩放因子 + 零点映射 边界:计算密集层 低秩分解 SVD / Tucker / CP W ≈ U·V,秩 r 截断 边界:大维度、谱衰减快 紧凑网络设计 深度可分离 / 分组卷积 瓶颈结构 / NAS 轻量骨干 边界:端侧从零构建 工程组合顺序建议 ① 量化 ② 结构化剪枝 ③ 低秩分解 ④ 结构替换 每步保留精度回退阈值与回滚方案,用真实硬件测延迟而非仅看 FLOPs

理解这四条路线的原理与边界,是后续把知识蒸馏、多任务压缩与部署工程串联起来的基础。只有先明确“压什么、怎么压、在哪里收益”,才能在具体任务中做出合理的组合决策。