正文
分块量化
(Block-wise Quantization)是DeepSeek V3/R1降低量化损失的关键技术之一。分块量化通过对权重矩阵的细粒度切分,将量化操作的范围控制在[128, 128]的矩阵内,减少了分布分散的出现概率,从而很好地控制了每次量化过程中的损失。
美团技术团队延续了DeepSeek训练的量化策略,同样在[128, 128]的矩阵内进行分块量化操作,保证训练和推理的一致性。在量化目标的选型上,INT8的优势在于其与FP8享有相同的位宽,且大部分硬件都对INT8的数据计算原生支持。
在实践中,由于DeepSeek官方并没有提供半精度浮点型(BF16)的权重,因此首先需要将原生的FP8模型权重反量化成BF16,再分块量化成INT8类型。另外在推理过程中,为了匹配权重的分块量化,激活值采用在线逐token-group的量化方式,即每个token的嵌入向量分为多个组,逐组进行量化。分块量化的激活值和权重的乘法过程如下左图所示。
除了上述的分块量化外,美团技术团队还探索了
更高效的通道量化
(Channel-wise Quantization),即权
重的每列为一组进行量化。
通道量化在执行完INT8的矩阵乘法后,只需进行一次反量化计算,计算开销更低。在具体实践中,同样地先将原生FP8的模型权重反量化成BF16,之后逐通道量化成INT8类型。同时,对激活值采用在线逐token量化,最大程度地减少activation的量化损失。通道量化的激活值和权重的乘法过程如下右图所示。
目前,两种INT8量化权重均已开源到Hugging Face。
INT8量化模型精度
分别应用上述的两种量化方法,对开源的DeepSeek R1模型进行了INT8量化处理,并在GSM8K和MMLU两个数据集上对量化后的模型进行了精度评估。评估结果如下表所示,相比基线的BF16和FP8模型,两种INT8量化模型的精度基本无损。
注:表中的精度结果是多次测试的均值。
INT8量化模型推理吞吐