部署與效率
網路剪枝
訓練好的網路嚴重過度參數化:許多權重接近零或冗餘,對輸出貢獻甚微。剪枝移除其中最不重要者,就像把樹上的枯枝修掉——模型變小、變便宜,同時保留大部分準確率。整個領域立基於一個驚人的經驗事實:你常能刪掉網路一大部分的權重,再用少量微調就把失去的準確率補回來。
重要性準則為每個權重(或每組)評分,讓你能移除最小者。最簡單的是量值(|w| 小→剪掉),但也有梯度/泰勒分數(估計移除某權重對損失的影響)與二階方法(Optimal Brain Damage/Surgeon 使用 Hessian 矩陣)。粒度是關鍵維度:非結構化剪枝把個別權重歸零,產生稀疏矩陣;結構化剪枝則移除整個通道、濾波器或注意力頭。常見做法是迭代式的:訓練→評分→移除 p%→微調→重複,逐步進行而非一次砍完。
問題在於非結構化稀疏鮮少讓密集核心變快——你省了記憶體,但除非執行環境特別利用該稀疏樣式,硬體仍會乘以那些零。NVIDIA 在 Ampere 及之後的 2:4 結構化稀疏(每四個權重剛好兩個為零)是務實的折衷,真實張量核心可加速約 2 倍。樂透票假說(Lottery Ticket Hypothesis,Frankle 與 Carbin)增添了理論視角:密集網路中藏有稀疏子網路,從原始初始化訓練即可媲美完整模型。
非結構化稀疏是記憶體上的勝利,並不自動等於速度上的勝利:在一般 GPU/CPU 核心上,90% 稀疏的權重矩陣仍以密集速度執行,除非執行環境支援該確切稀疏樣式。若你要的是延遲,請偏好結構化剪枝或像 2:4 這類有硬體支援的樣式。
又稱