论文链接: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
然后本文 token level 的 outlier 也能够有效的避免
本文里就是把 Hadamard 里的 H 换成可学的可逆矩阵 $P$,变成 $Y=Q(XP)Q(P^{-1}W^T)$
但是会失去 H 存储小,不会 double 访存量的优势
所以采用了矩阵分解 Kronecker Product ,也是经典招数了