核心要点

  • 能区分粒度:非结构化剪枝(剪单个权重)压缩率高但稀疏不规则、难加速;结构化剪枝(剪通道/头/层)规整、易获真实加速

  • 能讲流程:按重要性(权重幅值、梯度/敏感度)打分剪枝,再微调恢复精度,可迭代逐步剪

  • 能补结构优化:算子融合、深度可分离卷积、低秩分解等也属结构层面的提速手段

  • 能说组合:剪枝常与量化、蒸馏叠加使用,进一步压体积、提速度

标准回答

剪枝的两类粒度

  • 非结构化剪枝:把不重要的单个权重置零,能达到很高稀疏率,但稀疏分布不规则,普通硬件难以转化为实际加速,需专用稀疏内核;
  • 结构化剪枝:直接移除整通道、注意力头或整层,模型仍是稠密小模型,能在通用硬件上获得真实的延迟与体积收益,是端侧首选。

典型流程

按重要性指标(权重幅值、对损失的敏感度、梯度信息等)给结构单元打分,剪掉低分单元,然后微调恢复精度;可迭代式逐步剪枝以减小一次性掉点。

其他结构优化

算子融合减少访存与启动开销、用深度可分离卷积替代标准卷积、对权重矩阵做低秩分解,都能在结构层面降算力

组合

实际部署常把剪枝与量化、知识蒸馏叠加:先得到更小的结构,再量化降比特,并用蒸馏挽回精度。

常见误区

⚠️ 常见踩坑

只看「稀疏率」高就以为变快——非结构化剪枝在普通硬件上往往无加速;以及剪完不做微调直接部署,导致精度大幅下滑。

追问

追问 1为什么端侧更偏好结构化剪枝?

端侧硬件(CPU/NPU)对规整的稠密计算友好,结构化剪枝产出的仍是更小的稠密网络,能直接减少 FLOPs、内存与延迟。而非结构化剪枝的随机稀疏需要专门的稀疏算子支持,端侧后端通常不具备,难以兑现理论加速。

追问 2剪枝和量化应该先做哪个?

常见顺序是先剪枝再量化:先用结构化剪枝缩小网络规模,微调恢复精度,再做量化降比特,最后整体微调或校准。两者收益叠加;但要在目标设备上验证联合压缩后的精度回退是否可接受,必要时对敏感层保守处理。

延伸学习

与本题相关的知识库文章、术语、工具与行业资讯。