深度学习-量化粒度

468 阅读1分钟

模型量化能显著减小内存,但选择合适的量化粒度(Quantization Granularity)对保持精度不劣化非常关键。常用量化粒度介绍如下。

Per-Tensor Quantization

Per-Tensor或者Per-Layer量化,即整个tensor共用一个量化参数。由于权重参数值范围沿着channel变化,这会出现精度下降问题。

image.png

Per-Channel Quantization

Per-Channel量化是对每个channel更精细的量化。由于CNN模型权重沿着channel变化,Per-channel量化很有效果。

Per-channel量化实际是对每个输出channel(等价于对每个卷积核)量化。

image.png

可参考: 神经网络量化--per-channel量化 深度学习-理解卷积神经网络中的通道

Sub-channel-wise Quantization

通道组量化即把通道分成组,相比传统per-channel量化,可以获得更精细控制。代价是额外计算(单个通道乘scale参数)。

Groupwise Quantization

分组量化可以减小单个layer的权重参数分布引入的误差。

Per-Token量化

T 表示X的token维度 Ci 表示X的输入通道维度 image.png

参考:
medium.com/@curiosityd… arxiv.org/pdf/2211.10…