文章预览
作者丨进击的Killua 来源丨https://zhuanlan.zhihu.com/p/697860995 编辑丨GiantPandaCV 本文主要是对LLM PTQ量化方向的几个经典算法(GPTQ、SmoothQuant、AWQ)的代码实现进行介绍,一方面是为了加深对算法的理解,另一方面也是想看看有什么值得借鉴的地方。 一、GPTQ GPTQ在LLM量化W4A16方向的地位毋庸置疑,它的出发点很朴素,就是试图最小化权重量化后和量化前的层函数误差,对这个最优化问题进行求解后结果包含二阶的Hessian matrix(海森矩阵),详细数学推理公式见文章HELLO七仔:GPTQ 模型量化,论文见:GPTQ,这里不做详细解释。本质上,它的核心流程其实就是量化-补偿-量化-补偿的迭代,下图可以说明这个过程。 本文以GPTQ-for-LLaMa (https://github.com/qwopqwop200/GPTQ-for-LLaMa) 代码仓库为例来讲解GPTQ算法的实现,这个仓库主要是在LlaMa模型上应用GPTQ算法实现权重的4 bit量化
………………………………