MinMax 最小最大值量化算法 量化术语百科词条¶
词条类别:量化算法
英文名称:minmax
应用领域:深度学习模型压缩、大语言模型量化
1. 概述¶
MinMax 是一种以张量观测到的最小值和最大值确定量化区间的基础量化方法。它直接由边界计算 scale 和可选 zero-point,把浮点值映射到目标整数或低精度数值范围;核心特征是实现简单、统计开销低和适用面广,常作为 线性量化 的默认基线,但对离群值较为敏感。
2. 词条介绍¶
量化需要确定浮点数值到整数的映射范围。MinMax 观察到,用张量的实际最小/最大值作为量化边界,可以完整覆盖数据分布,且计算代价极低,适合作为基础量化方法。不过其对离群值敏感,当张量中存在极端离群值时,量化范围会被拉大、正常数值精度下降。
2.1 核心思想¶
MinMax 的核心思想是“以极值定范围”:统计张量中的最小值和最大值作为量化边界,据此计算缩放因子与零点,将浮点数值线性映射到目标整数范围(如 INT8 的 $[-128, 127]$ 或 FP8 的表示范围)。
MinMax 的优点是范围内不发生主动裁剪,因此当数据分布接近均匀、尾部不明显或权重较稳定时,它往往是强而简单的基线。
2.2 工作机制¶
MinMax 先在指定共享粒度上统计最小值和最大值,再把这一区间线性映射到目标整数码。对称量化通常用绝对极值 $a=\max(|r_{min}|,|r_{max}|)$ 构造 $[-a,a]$;非对称量化则直接使用 $[r_{min},r_{max}]$,允许零点偏离整数中心。只要数值落在观测范围内,MinMax 不主动裁剪尾部,因此方法简单、确定且容易复现。
对于权重这类静态张量,范围可一次计算;对于激活,范围来自校准样本并可能跨批次累计。当统计采用全局累计极值时,范围只会保持或扩大,因此单个异常批次也可能永久抬高量化步长。把统计粒度从 per-tensor 细化到 per-channel/per-group 可以隔离一部分异常通道,但会增加尺度数量。
2.3 数学描述¶
先确定范围:
$$ V_{\min} = \min(X), \quad V_{\max} = \max(X) $$
缩放因子 $S$:
$$ S = \frac{V_{\max} - V_{\min}}{Q_{\max} - Q_{\min}} \quad (\text{非对称}) $$
$$ S = \frac{\max(|V_{\min}|, |V_{\max}|)}{Q_{\max}} \quad (\text{对称}) $$
零点 $Z$:
$$ Z = Q_{\min} - \operatorname{round}\left(\frac{V_{\min}}{S}\right) \quad (\text{非对称}) $$
$$ Z = 0 \quad (\text{对称}) $$
- $X$:待量化张量(权重或激活值)
- $V_{\min}$、$V_{\max}$:张量的最小值与最大值
- $S$:缩放因子
- $Z$:零点偏移
- $Q_{\min}$、$Q_{\max}$:目标数据类型数值范围(如 INT8 对称量化的 $Q_{\max}=127$)
若对称 $b$ bit 有符号量化使用正侧最大码 $Q=2^{b-1}-1$,则 $S=a/Q$、$a=\max|X|$。对大多数位于 $[-\sigma,\sigma]$ 的主体值而言,其有效离散级数大约与 $\sigma/S=Q\sigma/a$ 成正比。因此当 $a/\sigma$ 被少量离群值拉大时,主体实际能使用的码点数会显著下降。Std、Quantile、Kurtosis 等敏感度指标都可从不同角度度量这种风险。
2.4 关键性质¶
- 简单高效:仅需统计极值,计算开销极低。
- 线性映射:浮点范围线性映射到整数范围,易于硬件实现。
- 对称与非对称:支持对称($Z=0$)与非对称($Z$ 可调整)两种模式。
- 对离群值敏感:极端离群值会拉大量化范围,导致正常数值精度下降。
- 极值敏感:不主动裁剪意味着少量异常值可以显著拉大量化尺度。
从误差与适用边界看,对于动态量化,MinMax 可在每次输入上重新统计,离群值影响只局限于当前样本/组;对于静态激活量化,校准极值必须外推到未来输入,分布漂移会带来额外饱和风险。
2.5 适用场景¶
- 基础量化场景,INT8 等常规位宽的首选量化方法。
- 对计算开销敏感、需要快速完成量化的场景。
2.6 使用限制¶
- 对离群值非常敏感,低比特(如 INT8、INT4)下精度下降明显。
- 存在极端离群值时,建议配合 SmoothQuant 等离群值抑制算法,或使用 SSZ 等更高级的量化算法。
3. 关联词条¶
- 线性量化:应用对象,MinMax 是线性量化的基础量化方法。
- Histogram:对比算法,通过直方图截断过滤离群值,精度通常优于 MinMax。
- SSZ:对比算法,通过迭代搜索优化量化参数,适用于低比特权重量化。
- SmoothQuant:配套术语,可配合抑制离群值以提升 MinMax 精度。
4. 参考文档¶
- Jacob B et al. Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference. CVPR 2018. https://arxiv.org/abs/1712.05877
- 《MinMax 参数配置流程指南》