深入解析大模型量化技术(二) - 量化类型细分

427 阅读2分钟

引言

接上文,本文简单说明量化的分类,后续会对重要的具体量化类型做详细的源码解读。

线性量化

1、非线性量化不适合大规模并行场景,所以当前的应用已经越来越少,不作赘述
2、线性量化又分为对称量化、非对称量化(零点量化)
3、线性量化可以理解为零点在零的非对称极大值量化

大模型 - 低比特量化场景

传统的对称量化和非对称量化,在8bit场景下表现还行,但当需要低比特量化时,模型精度很难保证,为了解决这个问题,从22年开始,研究人员提出了一系列创新的量化方式,其中最具代表性的是AWQ、GPTQ,大部分的大模型框架都对这两种量化方式都有实现(尽管实现方式不一,与论文大相径庭),本文。
1、GPTQ
2、AWQ

ScalingFactor数量划分

概念:ScalingFactor,用于量化、反量化后值的计算,有prequant-scalingfactor、activation-scalingfactor、weight-scalingfactor1、weight-scalingfactor2、kvquant-scalingfactor等等,本文只做概念引出,后文结合源码详细介绍
1、Per-Token,一个token分配一个ScalingFactor
2、Per-Tensor,一个Tensor分配一个
3、Per-Channel,一个channel分配一个,通常是k方向(输出通道)
4、Per-Group,一个group分配一个,一个group通常包含128/64个权重值

在线量化 - 量化感知训练QAT

1、上述的线性量化、非线性量化,都属于训练后量化(PTQ),训练后量化在8-bit精度下表现良好,但在4-bit、2-bit等更低精度下,经常无法满足业务场景需求。
2、和PTQ相比,量化训练QAT可以进一步减少部署时精度相较于浮点精度的损失。