【深度学习|【深度学习 模型压缩】10分钟了解下模型压缩的常用方法

一、什么是模型压缩?
模型压缩的目标是保证模型预测效果的前提下,尽可能地降低模型的大小
二、为什么要进行模型压缩?

1. 模型压缩后,模型很小,进行推断的运算量小,利于在移动端部署。2. 诸如Bert等深度学习的参数太多了,模型太大了,消耗的计算资源过多,进一步加大了深度学习爱好者们的“贫富差距”,不够和谐。以Bert-large为例,训练一次需要64G显存的google TPU,按照每小时6.5美元的价格,1024块训练76分钟,总消耗:1024*6.5*(76/60)=8430美金。一般人和公司真是玩不起。模型压缩领域的“有志之士”的终极目标是能够让“贫苦的深度学习爱好者”也玩得起,他们进行了一些列的研究,他们发现使用压缩后(更小的)模型也能够达到原始模型类似的效果。

三、常见的模型压缩方法有哪些?
  1. Pruning(修剪): 因为神经网络很多权重几乎为0,这类参数作用不大,部分参数删掉也不影响模型预测效果
  2. Weight Factorization(权重分解):权重矩阵可以进行低秩矩阵分解,即low-rank matrix
    factorization,从而使得一些参数为0
  3. Quantization(削减精度):能用float32,不用float64;能用int,不用float
  4. Weight Sharing(共享权重):很多layer的参数可以共享,没必要用太多参数
很多小伙伴可能会想:模型压缩只是“大模型”的后续处理,也不能让我们玩转大模型哇。理想的方式是,我们只设计好一个小的模型就能达到非常好的效果。
【【深度学习|【深度学习 模型压缩】10分钟了解下模型压缩的常用方法】实际上,模型压缩的出现,让我们看到了“好的小模型的样子”,对我们后续设计小模型有很多借鉴意义。

    推荐阅读