部署與效率

低秩分解

一個大權重矩陣往往攜帶的資訊比其尺寸所暗示的少——它的列與行彼此相關,因此很接近某個較低秩的矩陣。低秩分解以兩個瘦長矩陣的乘積來近似一個大的 m×n 矩陣 W,即 U(m×r)與 V(r×n),其中秩 r 遠小於 m 與 n。原本需要 m·n 個數字與 m·n 次乘法,現在各只需 r·(m+n),在 r 很小時是巨大的節省——而該層的行為幾乎不變。

在最小平方(Frobenius 範數)意義下的最佳秩-r 近似來自截斷奇異值分解:保留最大的 r 個奇異值及其向量,這由 Eckart–Young 定理保證。對卷積而言,這個想法可推廣——一個 k×k×C_in×C_out 的卷積核可分解成低秩或可分離的部件(例如先做 1×1 的通道混合卷積,再做 k×k 的空間卷積;或做空間可分離的 k×1 再 1×k),每種都能削減 FLOPs。Tucker 與 CP 張量分解則把這直接延伸到四維的卷積張量。

這是壓縮全連接層與早期 CNN 的經典手法,相同原理也內建於現代架構:ResNet 的瓶頸區塊使用 1×1 的「擠壓」卷積,而 MobileNet 的深度可分離卷積本質上就是標準卷積的一種結構化低秩分解。這個想法也撐起了 LoRA——透過對凍結權重加上一個學習到的低秩更新,便宜地調適大型預訓練的視覺或語言模型。分解後的模型通常需要短暫微調來吸收近似誤差。

低秩會削減參數與 FLOPs,但把一次矩陣乘法變成兩次,多了一次核心啟動與額外的激活值搬運。在小層上,這些額外開銷可能抵消掉 FLOP 的節省——而且削減 2 倍 FLOPs 鮮少代表 2 倍加速。務必實測。

又稱
low-rank approximation矩陣分解