大家好,欢迎来到我们的星球知识小卡片专栏,本期给大家分享模型剪枝的关键技术以及一些学习资料。
作者&编辑 | 言有三
1 为什么要研究模型剪枝
在真正研究模型剪枝之前,我们首先要知道为什么要做这件事,模型到底有多么冗余呢,以Google对大模型和移动端小模型的研究来说明这个问题,如下。
2 连接剪枝
对权重连接和神经元进行剪枝是最简单,也是最早期的剪枝技术,NVIDIA的韩松等人是最早研究模型剪枝技术的团队,当然还有的方法会在剪枝后添加一个恢复操作以便获得更好的性能。
3 通道剪枝
相对于连接权重剪枝,粗粒度剪枝其实更加有用,它可以得到不需要专门的算法支持的精简小模型,其中主要方法就是通道剪枝。
通道剪枝算法有三个经典思路。第一个是基于重要性因子,即评估一个通道的有效性,再配合约束一些通道使得模型结构本身具有稀疏性,从而基于此进行剪枝。第二个是利用重建误差来指导剪枝,间接衡量一个通道对输出的影响。第三个是基于优化目标的变化来衡量通道的敏感性。
4 个性化剪枝
不同的输入样本,不同的通道层其实都需要不同的剪枝方案,注意力机制,动态模型等在模型剪枝中很有用,典型研究包括DCP,RNP等。
5 剪枝策略
当前大部分的模型剪枝方法都是对每一层在基准模型训练后进行单独剪枝,这样的方案比较耗时,效率不高,因此研究其他更加高效的剪枝策略也是很有必要的。
6 其他
总的来说,模型剪枝有非常多的研究方向,包括:
(1) 连接剪枝的策略。
(2) 通道剪枝的策略。
(3) 重要性因子的研究。
(4) 正则化因子的研究。
(5) 个性剪枝策略。
(6) 自动剪枝策略。
(7) 训练前剪枝策略。
(8) 统一剪枝策略。
(9) 其他。