AIMET工具 压缩介绍(4)
AIMET选择贪婪压缩比
概述
模型压缩方法、空间 SVD 和通道修剪在每层基础上工作。 并非给定模型中的所有层都具有同等的可压缩性。 给定模型的各个层的压缩会对模型的最终精度产生不同的影响。 逐层贪婪压缩比选择算法(Greedy Per Layer Compression Ratio Selection Algorithm )用于评估适用层对压缩的敏感性,并为每个单独的层找到合适的压缩率。 该算法确保整个模型具有最高的剩余精度并满足给定的目标压缩比。
如何让工作的?
贪婪压缩比选择算法执行以下两个步骤:
- 逐层搜索
- 选择压缩比
下图提供了一个高层次的概述,后面是每个步骤的详细信息。
其中,Eval 字典表示为-
逐层搜索
对于每一层,在压缩比与模型性能表中生成一列。 此列捕获所有网络性能值,因为该层参照候选压缩比的预定义范围进行压缩,而所有其他层保持不变。
在上图中,可以看到一个具有 4 层和 10 个候选压缩比(这是默认设置)的示例模型。 请注意,该表并未捕获最后一个候选的评估分数,该分数始终为compression-ratio=1.0(因为该分数是基线分数并且已知)。
单调拟合:在某些情况下,观察到模型性能不是增加压缩比的严格递增函数。 为了帮助贪婪的选择过程,AIMET 可以应用曲线拟合方案来尝试使用单调递增函数来拟合给定层的模型性能数字。 默认情况下禁用该功能。
选择压缩比
这一步是算法的核心。 它考虑了上一步中每个适用层的压缩率与模型性能表、目标压缩率和函数,以根据所使用的压缩方法(空间 SVD、通道剪枝)计算压缩模型的成本。 它以恒定精度开始,并通过从压缩比与模型性能评估表进行插值来找到每个适用层的相应压缩比。 然后计算模型的总成本,看看是否达到了我们的目标压缩比。 二分搜索算法用于快速找到解决方案。 最后,它返回所有适用层的选定压缩比列表。 这样,该算法实现了压缩模型的最高剩余最终精度并满足目标压缩率。
下图说明对于给定的精度,每一层的压缩率是不同的。
如上图所示,该算法为可压缩性更高的层选择较低的压缩率(更高的压缩),为可压缩性较低的层选择更高的压缩率(较低的压缩)(对于较低可压缩性的层,如果压缩率降低,则精度会严重下降)。