SmoothQuant由论文“SmoothQuant: Accurate and Efficient Post-Training Quantization for Large Language Models”给出,其量化位宽为 W8A8,即权重和激活都是用 8bit 量化。
SmoothQuant 的核心思路是,激活 X 之所以难以量化,是因为存在离群值拉伸了量化的线性映射范围,导致大部分数值的有效位数减少。而且,不同token在激活通道之间具有相似变化。因此,论文提出了一种按通道缩放的方法,在离线阶段引入平滑因子 s 来平滑激活中的异常值,并通过数学上的等效转换将量化的难度从激活迁移至权重 W 上(逐通道对权重乘上缩放因子,在激活上乘上缩放因子矩阵的逆,从而保持整体的输出不变,激活值整体变小,权重整体变大,激活值更好量化了),从而降低激活的量化难度。经过平滑处理的激活 X 和调整后的权重 W 均易于量化。