术语表#
- PTQ#
- 训练后量化#
简称 PTQ(Post Training Quantization):权重量化,激活量化,需要借助数据在训练后进行校准。
# 原始模型 ## 全部的张量和计算均在浮点上进行 previous_layer_fp32 -- linear_fp32 -- activation_fp32 -- next_layer_fp32 / linear_weight_fp32 # 静态量化模型 ## weights 和 activations 在 int8 上 previous_layer_int8 -- linear_with_activation_int8 -- next_layer_int8 / linear_weight_int8
- QAT#
- 静态量化感知训练#
简称 QAT(static quantization aware training):权重量化,激活量化,在训练过程中的量化数值进行建模。
# 原始模型 # 全部张量和计算均在浮点上 previous_layer_fp32 -- linear_fp32 -- activation_fp32 -- next_layer_fp32 / linear_weight_fp32 # 在训练过程中使用 fake_quants 建模量化数值 previous_layer_fp32 -- fq -- linear_fp32 -- activation_fp32 -- fq -- next_layer_fp32 / linear_weight_fp32 -- fq # 量化模型 # weights 和 activations 在 int8 上 previous_layer_int8 -- linear_with_activation_int8 -- next_layer_int8 / linear_weight_int8
- 浮点模型#
模型的 权重 和 激活 均为浮点类型(如
torch.float32
,torch.float64
)。- 量化模型#
模型的 权重 和 激活 均为量化类型(如
torch.qint32
,torch.qint8
,torch.quint8
,torch.quint2x4
,torch.quint4x2
)。