结构化剪枝的一般框架

分类: 预训练与微调 · 难度: 中级 · 关联讲座: L09

结构化剪枝是模型压缩的核心技术之一,通过学习二元掩码移除冗余参数,在保持模型性能的同时降低计算和存储开销。本文介绍剪枝的一般优化框架,包括幅度剪枝和 L0L_0 松弛两种主流方法,以及结构化与非结构化剪枝的本质区别。

📐 结构化剪枝的一般框架

给定原始模型权重 WW,学习二元掩码 m{0,1}Wm \in \{0,1\}^{|W|}

minm,WsL(Wm)s.t.m0k\min_{m,\, W_s} \mathcal{L}(W \odot m) \quad \text{s.t.} \quad \|m\|_0 \le k

实践中 L0L_0 约束不可微,常用两种松弛:

  1. 幅度剪枝(Magnitude Pruning):按权重绝对值排序,直接清零最小的 (1p)%(1-p)\%
  2. L0L_0 松弛(Hard Concrete):用连续的概率变量 zHardConcrete(α,β)z \sim \text{HardConcrete}(\alpha, \beta) 近似 mm,梯度可传

结构化 vs 非结构化

  • 非结构化:任意位置置零,稀疏度高但硬件加速困难(稀疏矩阵乘法)
  • 结构化:整行/列/头部置零,保持稠密计算,实际加速比更好