【深度学习|【深度学习 模型压缩】10分钟了解下模型压缩的常用方法
一、什么是模型压缩?
模型压缩的目标是保证模型预测效果的前提下,尽可能地降低模型的大小
二、为什么要进行模型压缩?
1. 模型压缩后,模型很小,进行推断的运算量小,利于在移动端部署。2. 诸如Bert等深度学习的参数太多了,模型太大了,消耗的计算资源过多,进一步加大了深度学习爱好者们的“贫富差距”,不够和谐。以Bert-large为例,训练一次需要64G显存的google TPU,按照每小时6.5美元的价格,1024块训练76分钟,总消耗:1024*6.5*(76/60)=8430美金。一般人和公司真是玩不起。模型压缩领域的“有志之士”的终极目标是能够让“贫苦的深度学习爱好者”也玩得起,他们进行了一些列的研究,他们发现使用压缩后(更小的)模型也能够达到原始模型类似的效果。
三、常见的模型压缩方法有哪些?
- Pruning(修剪): 因为神经网络很多权重几乎为0,这类参数作用不大,部分参数删掉也不影响模型预测效果
- Weight Factorization(权重分解):权重矩阵可以进行低秩矩阵分解,即low-rank matrix
factorization,从而使得一些参数为0 - Quantization(削减精度):能用float32,不用float64;能用int,不用float
- Weight Sharing(共享权重):很多layer的参数可以共享,没必要用太多参数
【【深度学习|【深度学习 模型压缩】10分钟了解下模型压缩的常用方法】实际上,模型压缩的出现,让我们看到了“好的小模型的样子”,对我们后续设计小模型有很多借鉴意义。
推荐阅读
- 宽容谁
- 我要做大厨
- 增长黑客的海盗法则
- 画画吗()
- 2019-02-13——今天谈梦想()
- 远去的风筝
- 三十年后的广场舞大爷
- 叙述作文
- 20190302|20190302 复盘翻盘
- 学无止境,人生还很长