什么是量化?
将高精度运算转化到低精度上运算,例如float32转化为int8数据上运算。
为什么要量化?
那就要说说量化的好处了,一般量化有以下好处:
- 减小模型尺寸和存储空间,如int8量化可减少75%的模型大小;
- 加快推理速度,访问一次32位浮点型可以访问四次int8型,运算更快;
- 减少设备功耗,内存耗用少了推理速度快了自然减少了设备功耗;
- 支持微处理器,有些微处理器属于8位的,低功耗运行浮点运算速度慢,需要进行8bit量化;
但是其也有一些缺点:
- 增加了操作复杂度,有时会有一些特殊处理,甚至会有tradeoff,比如你发明了一个牛13的算子,可惜现有的量化工具不支持,自己实现又头大,只能忍痛割爱;
- 会损失一定的精度,所以有时会有微调,但也会有损失;不过值得一提的是,每次我用openvino量化,精度不降低反而还会升高一丢丢。这是因为模型参数是非常冗余的,量化可以看成一种正则化技术,会提升模型的泛化能力,可能在测试集上会表现好一点。不过