一、简述
我们都知道现实世界是连续的状态,而计算机世界是离散的状态,这是什么意思呢?我们看一下下图,最右边的马力欧(高清)的状态,可以想象现实世界是连续的状态,而电脑世界在图像上呈现的是一格一格子的状态(左图)是离散的状态。
所以在计算机世界如果想要图片越清晰,最简单的方式就是图的格子的数量要越多越好。
对于AI模型也同样道理,我们可以将AI模型想成是800万画素的图片,有没有办法将AI模型弄成30万画素,然后人眼还看不出差异呢。
最简单的方法就是把模型的浮点数换成整数,float转换integer,就是量化概念的核心(不过不光是浮点数转整数,还有单精度转半精度等等,这里用整数,就是为了简化概念说明)。浮点转整数,就是123.456789取整数(或者4舍5入),变成123。
二、AI模型量化的意义
没有量化的模型和量化后的模型的主要差异在于存储(模型大小)差异、计算差异、功耗差异。
例如ResNet18的参数就多达3千多万,如果我们用FP32来存储,