高效與邊緣人工智慧

SmoothQuant(平滑量化)

大型 Transformer 的激活值中有少數通道帶有巨大的離群值,使它們極難量化,而權重卻平滑且性質良好。SmoothQuant 的訣竅,是用數學方式從激活值借走一部分難度、轉嫁給權重,讓每一次矩陣乘法的兩端都能量化到 INT8。

它引入一個每通道的平滑因子 s:把激活值的第 j 個通道除以 s_j,並把對應的權重列乘以 s_j,使乘積 Wx 維持不變。這個因子平衡兩邊的動態範圍,s_j = max|x_j|^α / max|W_j|^(1−α),其中遷移強度 α 約為 0.5,控制有多少難度被搬移過去。這是一個離線轉換,可融合進前一層,之後整層便以 W8A8 INT8 執行。

與純權重方案不同,SmoothQuant 也量化激活值,因此能加速主導預填充與大批次服務、且受運算限制的矩陣乘法,已被廣泛用於 INT8 大型語言模型推論。它唯一的旋鈕 α 須按模型家族調整,因為不同架構的離群結構並不相同。

\hat x = x/s,\quad \hat W = \mathrm{diag}(s)\,W,\qquad s_j=\frac{\max|x_j|^{\alpha}}{\max|W_j|^{1-\alpha}}

每通道因子 s 把激活值的難度遷移到權重,同時讓乘積保持不變。

遷移強度 α 是一個滑桿而非免費午餐:把太多難度推進權重,反而會傷害權重量化,所以平衡點因模型而異。

又称
SmoothQuant平滑量化