部署與效率

模型壓縮

訓練好的視覺模型,通常遠比部署所需更大、更慢。模型壓縮是一整族技術的統稱,目的是在盡量保留準確率的前提下,縮小模型的儲存大小、記憶體佔用與運算成本——好讓它塞進手機、符合延遲預算,或單純在資料中心規模下更便宜地提供服務。

四大主要工具是:量化(每個數字用更少位元)、剪枝(移除冗餘權重或整個通道)、知識蒸餾(從大教師訓練小學生),以及低秩分解(用小矩陣的乘積取代大權重矩陣)。相鄰的想法還包括權重共享/分群與熵編碼——經典的 Deep Compression 流程結合剪枝、量化與霍夫曼編碼,在 AlexNet 與 VGG 上達成 35 至 49 倍的大小縮減——以及高效架構設計(MobileNet 的深度可分離卷積、EfficientNet 的複合縮放),這類做法是「在構造上就壓縮」,而非事後補救。

這些技術互補,且常被組合使用:先蒸餾出小網路,剪掉它的通道,再量化成 int8 給 NPU。依稀缺的資源來選擇——儲存吃緊就偏向量化與分解;運算與延遲吃緊就偏向結構化剪枝與高效架構;準確率預算很緊則靠蒸餾把它討回來。關鍵是:壓縮是與部署目標的共同設計(co-design),務必在實際硬體上驗證,因為對某顆晶片有益的技術,在另一顆上可能毫無用處。

壓縮是與目標的共同設計,而非只動模型的操作。int8 張量核心讓量化在 GPU 上大有斬獲,但對缺乏整數 SIMD 的微控制器毫無作用;結構化剪枝到處都有幫助,但非結構化稀疏需要特定核心支援。請針對你要出貨的那顆晶片來挑選技術。