M4-100M4: Sequences & TransformersModel Compression & DistillationEasy
Mastery:

Model Compression & Distillation: 解释剪枝的三种粒度。

📐 Mathematical Definition
unstructured: {wi=0};structured: prune channels/heads/layers;semi: 2:4\text{unstructured}:\ \{w_i=0\};\qquad \text{structured}:\ \text{prune channels/heads/layers};\qquad \text{semi}:\ 2{:}4
⚡ Executive Summary
Core Concept: 非结构化(单个权重,稀疏但硬件难加速)、结构化(整通道/头/层,硬件友好)、半结构化(N:M 稀疏,硬件支持)。

📌 Key Takeaways

  • •
    非结构化:粒度最细、压缩率高,但需专门硬件/库才能加速
  • •
    结构化:直接减小矩阵形状,通用硬件即可加速
  • •
    半结构化(2:4):NVIDIA 稀疏张量核心支持,兼顾两者

📐 Mathematical Derivations

数学机理:<strong>三种粒度</strong>。<strong>(1) 非结构化剪枝(unstructured)</strong>——按<strong>单个权重</strong>剪(如把绝对值最小的 90% 权重置 0);压缩率最高(可达 90%+ 稀疏),模型变成<strong>稀疏矩阵</strong>。<strong>问题</strong>——通用 GPU 对稀疏矩阵的加速有限(稠密张量核心无法直接利用稀疏性;需专门的稀疏库如 cuSPARSE,但实际加速常远低于稀疏率)。故'稀疏 90%'常只带来很小的实际加速。<strong>(2) 结构化剪枝(structured)</strong>——按<strong>结构单元</strong>剪:剪掉整个<strong>通道(channel)、注意力头(head)、甚至整层(layer)</strong>;结果是<strong>更小的稠密矩阵</strong>,故<strong>通用硬件可直接加速</strong>(矩阵变小、FLOPs 真实下降)。<strong>代价</strong>——同样的'参数量减少'下,结构化剪枝对精度的损害通常大于非结构化(因为剪掉的是整个功能单元)。<strong>如何决定剪哪些</strong>——用重要性准则:(a) <strong>幅度</strong>(权重的 L1/L2 范数);(b) <strong>梯度/二阶信息</strong>(如 Taylor 展开、OBD/OBS 用 Hessian);(c) <strong>激活</strong>(如通道激活的方差、BN 的缩放因子 γ,Network Slimming 用 γ 作为重要性);(d) <strong>可学习</strong>(用门控/掩码,训练时学出哪些该剪)。<strong>(3) 半结构化(semi-structured / N:M 稀疏)</strong>——要求每 M 个连续权重中恰好有 N 个非零(如 <strong>2:4</strong>,即每 4 个保留 2 个);<strong>NVIDIA Ampere 及以后的稀疏张量核心原生支持</strong>,可带来约 2 倍的理论加速。这是'兼顾压缩率与硬件加速'的方案,已成为工业界主流(如 2:4 稀疏)。<strong>其他</strong>——(a) <strong>非结构化 + 硬件</strong>(未来若有稀疏加速硬件);(b) <strong>块稀疏</strong>(按块剪,硬件友好)。<strong>实践</strong>——'<strong>先剪枝再微调</strong>'(prune then finetune)是标准流程;也有'训练时稀疏'(如 sparse from scratch、Lottery Ticket)。

🏭 Production Trade-offs

深度剖析与工程权衡:① <strong>'压缩率 ≠ 加速比'是核心教训</strong>——非结构化剪枝的稀疏率与加速比严重脱节(因访存不规则、需索引开销);故工业界更看重<strong>结构化/半结构化</strong>(有真实硬件支持)。这与稀疏注意力、MoE 的'FLOPs 降低不等于加速'是同一类问题。② <strong>N:M 稀疏的工业地位</strong>——2:4 稀疏在 NVIDIA 硬件上有原生支持(稀疏张量核心),且精度损失可通过'稀疏感知训练'控制;故它是当前'稀疏加速'最实用的方案。③ <strong>剪枝与量化的正交性</strong>——剪枝减少'参数个数'、量化减少'每参数字节';两者可叠加(稀疏 + 低比特)。④ <strong>Lottery Ticket 假说</strong>——Frankle & Carbin 发现'随机初始化的稠密网络中存在一个稀疏子网络(中奖彩票),单独训练它能达到原网络精度';这暗示'稠密网络大部分参数是冗余的',但也引发了'稀疏训练是否真能省算力'的争论(因为找到子网络的成本高)。⑤ <strong>LLM 剪枝的特殊性</strong>——LLM 对剪枝<strong>敏感</strong>(尤其结构化剪枝会显著掉点),因为其知识分布式存储;故 LLM 压缩更依赖量化与蒸馏(而非剪枝);近年有 SparseGPT/Wanda 等'一次性剪枝'方法(用校准数据估计重要性,可剪 50% 而损失较小)。⑥ <strong>面试要点</strong>——被问'剪枝',应给出'<strong>非结构化(高压缩、难加速)/ 结构化(易加速、损精度)/ 半结构化 2:4(硬件支持,主流)</strong>'三类与取舍,并强调'<strong>压缩率 ≠ 加速比</strong>';能提到'SparseGPT/Wanda 的一次性剪枝'与'Lottery Ticket'是深度理解的标志。
⚠️ Common Interview Pitfalls
  • ✕
    只看稀疏率不看实际加速比
  • ✕
    以为非结构化剪枝能在通用 GPU 上线性加速
🎯 Interviewer Follow-ups
  • ?
    为什么非结构化剪枝难以加速?
  • ?
    结构化剪枝如何决定剪哪些通道?
📚

Associated Knowledge Base Guides & Mindmaps

Explore the comprehensive technical article, exam cards, and global architecture tree.

← PreviousM4-099: Model Compression & Distillation: 解释知识蒸馏的基本框架与温度的作用。📋Back to BankNext →M4-101: Model Compression & Distillation: 解释蒸馏中的 on-policy 与 off-policy 数据差异。