模型量化
我们知道,大多深度学习训练框架默认下模型的参数是32位浮点的,计算也是32位浮点的。模型量化的基本思想就是用更低精度(如8位整型)来代替原浮点精度。
量化最核心的挑战是如何在减少表示精度的同时不让模型的准确度掉下来,即在压缩率与准确率损失间作trade-off。
这就衍生出很多有趣的子问题,比如量化对象是什么(weight,activation,gradient),量化到几位(8位,4位,2位,1位),量化参数(如step size,clipping value)如何选择,量化参数是否可以自动优化,不同层是否需要不同的量化参数,如何在量化后恢复准确率或者在训练时考虑量化,等等。。。