第 72 题:量化感知训练(QAT)的伪量化节点,梯度近似的前向-反向传播?
题目
量化感知训练(QAT)的伪量化节点,梯度近似的前向-反向传播?
完整讲解
一、QAT 与伪量化节点
量化感知训练(QAT)在训练时模拟量化,使权重与激活在前向中经过量化与反量化,梯度在反向时能穿过该模块更新全精度参数。伪量化指用可微的量化模拟算子代替真实离散量化:
\(\hat{x} = \texttt{Dequant}(\texttt{Quant}(x)) = \Delta \cdot \text{round}(x/\Delta),\quad \Delta = \frac{x_{max}-x_{min}}{2^b-1}.\)
前向时 $x \to \hat{x}$,数值为离散格点,但计算图保留;反向时需对「round」做梯度近似。
二、梯度近似的前向-反向
- 前向:权重量化 $W_q = \texttt{Quant}(W)$,激活量化 $a_q = \texttt{Quant}(a)$,用 $W_q,\,a_q$ 做卷积/矩阵乘,得到量化后的输出,与真实部署一致。
- 反向:$\frac{\partial \hat{x}}{\partial x}$ 在 round 处为 0 几乎处处,不可直接反传。常用 Straight-Through Estimator(STE):假定 $\frac{\partial \hat{x}}{\partial x} = 1$,即梯度直接传到量化前变量;或用 clip 的梯度(在饱和区外为 1)。这样全精度参数仍能根据量化后的误差更新,学到对量化友好的表示。
- 效果:QAT 使权重与激活的分布适应量化格点,减少训练后量化(PTQ)的精度损失;推荐中可用于嵌入与全连接层的低比特量化。
三、工程要点
- 伪量化可对每层或每通道设 scale/zero-point;训练初期可用更细的量化或延迟启用量化以稳定。
- STE 有偏但工程上常用;可配合梯度裁剪与学习率调度。
面试要点
- 能说明伪量化节点:前向 $x\to\hat{x}=\Delta\cdot\text{round}(x/\Delta)$,模拟量化;反向需梯度近似。
- 能解释 STE:$\frac{\partial \hat{x}}{\partial x}\approx 1$,使梯度穿过 round,全精度参数可更新、适应量化。
- 能简述 QAT 目的:训练时模拟量化,减少部署时精度损失;可用于推荐中的嵌入与全连接。
记忆要点
- QAT:前向伪量化 $\hat{x}=\Delta\cdot\text{round}(x/\Delta)$,反向 STE 或 clip 梯度近似。
- STE:梯度当 1 传回,全精度参数可更新、适应量化。
- 目的:训练即模拟量化,降低部署精度损失。