模型压缩 --学习记录2
模型压缩 --学习记录2
- 如何找到更好的权衡方式(模型量化)
-
- 方法一:寻找更好的 range
- 方法二:寻找更好的 X-fp32(浮点数)
- 方法三:寻找更好的 scale 和 zp
- 方法四:寻找更好的 round
- PTQ 后训练量化(离线量化)
- QAT 量化感知训练(在线量化)
- 量化为什么会带来加速?
- 三、模型稀疏技术
-
- 3.1、结构化稀疏
- 3.2、半结构化稀疏
- 3.3、纯非结构化稀疏
- 四、其他模型压缩技术
-
- 4.1、低秩分解
- 4.2、NAS 神经网络结构搜索
- 4.3、知识蒸馏
模型压缩 --学习记录1
通过学习记录1 可以发现,量化
就是一些不同设置的选择问题,甚至当我们选择某个部署工具的时候,这些量化 setting 都已经固定了,比如 Tensorrt 是对称、线性、静态、权重 pre-channel、激活 pre-tensor 的量化。
但是我们再往下看看一些其他的情况:
比如: 红点是浮点数,下面的红线是要映射的整型范围。
这样在映射的时候,左边扎堆的点会造成很多的损失
,中间空白的部分是一种浪费
在这种时候,我们可以丢弃
那个单独的点,可以带来更小的量化误差
- 丢弃部分数据 -> range 降低了 -> scale 降低了
- scale 降低会提高量化的分辨率,但是 scale 过低,丢失的数据又过多。因此,这是权衡的问题
- 量化研究的另一个关键就是
如何找到更好的权衡方式
如何找到更好的权衡方式(模型量化)
方法一:寻找更好的 range
- 按照最大值的百分比作为阈值,删除过大的数据,缩小 range
- 遍历阈值,寻找最小量化误差的阈值