模型剪枝(Pruning)指移除神经网络中冗余的权重、神经元或整层结构,让模型变小变快,而性能尽量不损失。理论依据是:训练好的模型中大量参数接近零或贡献极小,剪掉它们影响有限。
两大路线
- 非结构化剪枝:逐个剪掉不重要的权重,压缩率高,但产生的稀疏矩阵需要专用硬件/框架才能真正提速
- 结构化剪枝:成块地剪(整个通道、注意力头、层),剪完仍是规整网络,普通硬件直接受益,更受工程界欢迎
典型流程
评估每个权重/结构的重要性(如按幅值、按梯度)→ 移除低分项 → 微调(Fine-tuning)恢复精度。近年也有“训练中剪枝”与“剪枝后无需恢复训练”的研究(如短程化方法)。
压缩三件套对比
- 剪枝:删掉不重要的部件
- 量化:把保留的部件换成更低精度的表示
- 蒸馏:让小模型模仿大模型的行为