论文链接:https://arxiv.org/pdf/2410.09426

华为的新工作

W4A4 从 SmoothQuant 开始,一系列工作开始优化 weight 和 activation 中的 outlier , 让量化更平滑。channel level 的 outlier 是指 dim 维度某几个特定的 channel 特别大,陡峭的分布会导致过多差距较大的值被量化成同一个值。而本文的 flat 是希望所有的 channel 上值域比较的平坦。

对比之前的 baseline

Original: $Y=Q(X)Q(W^T)$

Per-channel Scaling: $Y=Q(X\text{diag}(c)^{-1}))Q(\text{diag}(c)W^T)$ 会导致 W 更陡峭,X 更平坦

Hadamard: $Y=Q(XH)Q(H^T W^T)$ 无法学习,各层共用一个 H

image.png

然后本文 token level 的 outlier 也能够有效的避免

image.png

本文里就是把 Hadamard 里的 H 换成可学的可逆矩阵 $P$,变成 $Y=Q(XP)Q(P^{-1}W^T)$

但是会失去 H 存储小,不会 double 访存量的优势

所以采用了矩阵分解 Kronecker Product ,也是经典招数了

image.png