【深度學習 模型壓縮】10分鐘瞭解下模型壓縮的常用方法

一、什麼是模型壓縮?
模型壓縮的目標是保證模型預測效果的前提下,儘可能地降低模型的大小

二、爲什麼要進行模型壓縮?

1. 模型壓縮後,模型很小,進行推斷的運算量小,利於在移動端部署。

2. 諸如Bert等深度學習的參數太多了,模型太大了,消耗的計算資源過多,進一步加大了深度學習愛好者們的“貧富差距”,不夠和諧。以Bert-large爲例,訓練一次需要64G顯存的google TPU,按照每小時6.5美元的價格,1024塊訓練76分鐘,總消耗:1024*6.5*76/60=8430美金。一般人和公司真是玩不起。模型壓縮領域的“有志之士”的終極目標是能夠讓“貧苦的深度學習愛好者”也玩得起,他們進行了一些列的研究,他們發現使用壓縮後(更小的)模型也能夠達到原始模型類似的效果。

三、常見的模型壓縮方法有哪些?

  1. Pruning(修剪): 因爲神經網絡很多權重幾乎爲0,這類參數作用不大,部分參數刪掉也不影響模型預測效果
  2. Weight Factorization(權重分解):權重矩陣可以進行低秩矩陣分解,即low-rank matrix
    factorization,從而使得一些參數爲0
  3. Quantization(削減精度):能用float32,不用float64;能用int,不用float
  4. Weight Sharing(共享權重):很多layer的參數可以共享,沒必要用太多參數

很多小夥伴可能會想:模型壓縮只是“大模型”的後續處理,也不能讓我們玩轉大模型哇。理想的方式是,我們只設計好一個小的模型就能達到非常好的效果。

實際上,模型壓縮的出現,讓我們看到了“好的小模型的樣子”,對我們後續設計小模型有很多借鑑意義。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章