模型壓縮 是什麼?

Model Compression:模型壓縮 的完整解釋

模型壓縮是指減少機器學習模型大小和計算複雜度的技術,以便在資源有限的設備上部署,同時保持模型性能。

容易混淆

模型壓縮 vs 混合精度訓練

模型壓縮:把模型本身變小或變簡。 混合精度訓練:訓練時混著用不同數值精度。 最關鍵的區別:前者偏模型變形,後者偏訓練策略。

模型壓縮 vs 模型量化

模型壓縮:是更大的總稱。 模型量化:是壓縮的一種常見方法。 最關鍵的區別:前者是家族名,後者是成員之一。

記住這句就好

把大模型瘦身,換速度和部署彈性。

實際案例

手機端情緒辨識

原本太大的語音模型經過壓縮後,才能放進行動 App 內即時運行。

雲端成本下降

同樣的分類模型如果被蒸餾得更小,單次推論成本就能明顯下降。

算法與應用

常見手法有剪枝、量化、知識蒸餾和低秩分解。 壓縮不只是縮參數,還要看速度、記憶體和準確率的整體取捨。 好的壓縮會盡量保留原模型能力。

中英對照與常見說法

說法 出現場合
模型壓縮 台灣正式用語
模型压缩 / 模型压缩技术 簡體用語,簡體技術文章多寫這個
Model Compression 英文原名
模型輕量化 產品端常用的說法,強調結果而非手段

四種主要技術,可以疊著用

技術 做法 典型壓縮幅度 主要代價
量化(quantization) 把 32 位元浮點數改用 8 位元整數或更低位元表示 記憶體降到四分之一或更少 精度些微下降,低位元時較明顯
剪枝(pruning) 移除影響小的權重或整個通道 視結構而定,非結構化剪枝壓縮率高但不一定加速 需要重新微調恢復精度
知識蒸餾(knowledge distillation) 用大模型當老師,訓練一個小模型模仿它的輸出 由小模型的大小決定 要重新訓練,成本較高
低秩分解(low-rank factorization) 把大矩陣拆成兩個小矩陣相乘 視秩的選擇而定 分解不當會傷精度

這四種不是互斥的。實務上常見的組合是先蒸餾出一個小模型,再對它做量化,最後在目標硬體上驗證。

壓縮的目的不只是省空間

記憶體:能不能塞進裝置。手機、車用電腦、邊緣裝置的記憶體是硬限制,塞不下就完全不能用。

延遲:使用者等多久。這裡有個常被忽略的重點,參數變少不等於變快。非結構化剪枝把權重打成一堆零,但硬體仍照原本的矩陣尺寸算,實測速度可能完全沒變。要真的加速,通常得做結構化剪枝(整個通道、整個注意力頭移除)或用支援稀疏運算的硬體。

成本與能耗:推論次數乘上單次成本就是帳單。對線上服務來說,模型小一半往往直接對應到機器數量少一半。

評估壓縮結果一定要在目標硬體上實測,不能只看參數量。同一個壓縮方案在 GPU 上加速兩倍,在手機的神經網路加速器上可能因為不支援該運算而變慢。

情境判斷

Q1(情境題): 如果模型壓縮後準確率只掉一點點,值得嗎?

→ 通常值得,尤其在部署空間、延遲或成本壓力很大的時候。

Q2(情境題): 如果壓縮後模型變很小,但速度沒變快,這正常嗎?

→ 有可能。壓縮方法不一定直接改善實際推論時間,還要看硬體和實作。

相關術語

常見問題

模型壓縮一定會犧牲準確率嗎?

不一定,但通常會有取捨,目標是把損失壓到可接受。

它和量化、剪枝、蒸餾的關係是什麼?

它們是壓縮裡的常見方法。

模型越大就越不需要壓縮嗎?

不是。模型越大,越可能需要壓縮來滿足部署限制。