binglu’s blog
← 返回文章
大模型与深度学习

模型量化

冰露2 分钟

量化

Float 转 int 的过程就是量化,在这个转换过程中想办法尽量减少量化后的模型的误差

为什么需要量化?

想象你有一张图片,但是你手机内存不够了,那怎么办,只有两个办法,要么压缩图像大小,要么压缩像素点数量。量化就是在确保还能正常认出这张图片内容的前提,尽可能减少所需的资源消耗。

文章配图

文章配图

文章配图

量化后,可以看到随着量化精度的不同,高精度颜色值压到低精度整数呈现出的效果 也会相应不同。

优势:

减少模型存储空间和显存占用

减少显存和tensorcore之间的数据传输量,加快推理时间

显卡对整数运算快于浮点数,加快推理速度

量化不能直接去掉后面浮点位,因为使用时,还是需要浮点位,需要整转浮点,这就需要策略,

存在问题,有异常值会造成一部分被舍弃,以及多个浮点数值被量化为同一个整数值。

训练后动态量化问题:每一次推理每一层都要对输入统计量量化参数,耗时

每一层计算完都转换为fp32,存入显存,占用显存带宽。

量化策略: