探討|我們真的需要模型壓縮嗎?

極市導讀
本文討論了模型壓縮起作用的原理以及兩種進行內存有效訓練的方法:過量參數(shù)的界限和更好的優(yōu)化方法,最后總結了未來的研究方向。 >>加入極市CV技術交流群,走在計算機視覺的最前沿
本文翻譯自博客:
《Do We Really Need Model Compression?》
作者:Mitchell A. Gordon
前言:
模型壓縮是一種縮小訓練后的神經網(wǎng)絡的技術。壓縮的模型在使用少量計算資源的情況下,其性能通常與原始模型相似。但是,在許多應用程序中,瓶頸被證明是在壓縮之前訓練原始的大型神經網(wǎng)絡。例如,可以在低成本的GPU(12 GB的內存)上訓練基于BERT的模型,但是BERT-large需要在Google TPU(64 GB的內存)上訓練,這使許多人無法嘗試使用預訓練的語言模型。
模型壓縮領域的結果告訴我們,我們收斂的解決方案通常比最初訓練的模型具有更少的參數(shù)。那么,是什么阻止我們通過從頭訓練小型模型來節(jié)省GPU內存呢?
在這篇文章中,我們將探索從頭開始訓練小型模型所涉及的困難。我們將討論模型壓縮為何起作用,以及兩種進行內存有效訓練的方法:過量參數(shù)的界限和更好的優(yōu)化方法,這些方法可以減少或消除事后模型壓縮。最后我們將總結未來的研究方向。
Appropriately-Parameterized Models
適量參數(shù)的模型--既沒有過量參數(shù)也沒有欠參數(shù)的模型,而是具有合適數(shù)量的參數(shù)以表示任務的理想解決方案的模型。
我們通常不會在深度學習范式中訓練適量參數(shù)的模型。這是因為對于給定的數(shù)據(jù)集,通常不知道使用多少參數(shù)量合適。即使知道了解決方案,眾所周知,使用梯度下降法訓練適量參數(shù)的模型也很困難。
相反,訓練程序通??雌饋硐襁@樣:

我們會訓練一個過參數(shù)化的模型。這些模型通常具有比訓練樣本數(shù)量更多的參數(shù)。 各種正則化技術(隱式或其他)用于約束優(yōu)化,以偏向于“簡單解決方案”而不是過度擬合。 模型壓縮通過消除冗余來提取嵌入在較大模型中的“簡單”模型,使內存和時間效率更接近理想的適量參數(shù)的模型。
極端的過度參數(shù)化使訓練變得更加容易。但是,由于模型被過度參數(shù)化,因此它們可以存儲數(shù)據(jù),而不是學習數(shù)據(jù)中的有用模式,因此需要進行正則化。然后,模型壓縮利用這種簡單性僅保留解決方案實際需要的參數(shù)。
由于我們的目標是使用更少的GPU內存來訓練神經網(wǎng)絡,因此我們可以提出一些明顯的問題:
為什么需要過度參數(shù)化?需要多少過參數(shù)化? 我們可以通過使用更智能的優(yōu)化方法來減少過度參數(shù)化嗎?
接下來的兩個部分將依次解決這些問題。
Over-parameterization Bounds
為什么需要超量參數(shù)?通過充分超量參數(shù)的神經網(wǎng)絡,我們可以使優(yōu)化的landscape有效凸出。杜etc(2019)、Haeffele和Vidal(2017)在一些簡單情況下對此進行了數(shù)學證明,給出了必要的過參數(shù)化量,能在多項式時間內實現(xiàn)0訓練損失。有效地,過度參數(shù)化是為了增加內存使用量而犧牲了計算難易度。
這些界限通常被認為是寬松的。這意味著盡管我們可以預測出足夠數(shù)量的參數(shù)來完美擬合某些數(shù)據(jù),但我們仍然不知道要完美擬合數(shù)據(jù)所需的最小參數(shù)數(shù)量。嚴格的界限可能取決于從優(yōu)化過程(SGD與GD,Adam與其他)到體系結構的所有方面。計算嚴格邊界甚至比訓練所有可能的候選網(wǎng)絡在計算上更加棘手。
但是,在這方面肯定還有改進的余地。嚴格的過度參數(shù)化范圍將使我們可以訓練較小的網(wǎng)絡,而無需在架構上進行網(wǎng)格搜索,也不必擔心更大的網(wǎng)絡可能為我們帶來更好的性能。證明是否可以擴展到recurrent models, transformers,按batch norm訓練的模型等仍然存在問題。
上面忽略了提及不同的體系結構可能具有不同的過參數(shù)化范圍的情況。那么,一種合理的方法是使用具有較低過參數(shù)化范圍的不同體系結構。一些有趣的“efficient transformers”包括Reformer,ALBERT,Sparse Transformers和SRU。
Better Optimization Techniques
從經驗上講,很難對參數(shù)正確的模型進行訓練。用梯度下降訓練適當大小的模型通常會嚴重失敗。該模型將無法收斂以適合訓練數(shù)據(jù),更不用說泛化了。這部分由神經網(wǎng)絡的優(yōu)化環(huán)境的非凸性/ non-friendliness來部分解釋,但是訓練適量參數(shù)化模型的計算復雜度的精確表征仍然不完整。
模型壓縮技術通過闡明過參數(shù)化模型趨于收斂的解的類型,為我們提供了有關如何訓練適當參數(shù)化模型的提示。模型壓縮的類型很多,每種模型都利用一種不同類型的“簡單性”,這種“簡單性”往往在訓練有素的神經網(wǎng)絡中發(fā)現(xiàn):
許多權重接近零(修剪)
權重矩陣低秩(權重分解)
權重只用幾位來表示(量化)
層通常會學習類似的功能(權重共享)
這些“簡單性”中的每一個都是由于訓練過程中的正則化(隱式或其他)或訓練數(shù)據(jù)的質量而引起的。當我們知道我們正在尋找具有這些特性的解決方案時,它為改進我們的優(yōu)化技術開辟了令人振奮的新方向。
Sparse Networks from Scratch
權重修剪可能是最成功的壓縮方法示例,可以將壓縮方法轉變?yōu)閮?yōu)化方法。經過訓練的神經網(wǎng)絡通常具有許多權重(30-95%),它們接近于0??梢詣h除這些權重而不會影響神經網(wǎng)絡的輸出。

我們是否可以通過從一開始就訓練稀疏神經網(wǎng)絡來減少GPU使用,而不是事后修剪呢?有一陣子,我們認為答案是否定的。稀疏的網(wǎng)絡很難訓練;優(yōu)化環(huán)境非常不凸且不友好。
然而,F(xiàn)rankel和Carbin(2018)朝著這個方向邁出了第一步。他們發(fā)現(xiàn)他們可以從頭開始重新訓練修剪的網(wǎng)絡,但前提是必須將其重新初始化為在密集訓練期間使用的相同初始化。他們對此的解釋是the Lottery Ticket Hypothesis:密集網(wǎng)絡實際上是許多適量參數(shù)化的稀疏模型的并行隨機初始化組合。碰巧得到了幸運的初始化并收斂于解決方案。

Dettmers和Zettlemoyer(2019),Mostafa(2019),和Evci 等人(2019),指明可以從頭開始訓練適當參數(shù)化的稀疏網(wǎng)絡,從而大大減少了訓練神經網(wǎng)絡所需的GPU內存量。重要的不是初始化,而是探索模型的稀疏子空間的能力。Lee等人的類似工作(2018),嘗試通過對數(shù)據(jù)進行一次傳遞來快速找到合適的稀疏架構。
我相信,其他類型的模型壓縮可能會重復這種模式。一般而言,模式是:
模型壓縮方法揭示了訓練后的神經網(wǎng)絡中的一些常見冗余。 研究了造成這種冗余的歸納偏差/正則化。 從訓練開始,就創(chuàng)建了一種巧妙的優(yōu)化算法來訓練沒有這種冗余的網(wǎng)絡。
下表列出了其他類型的模型壓縮,以及為使模型更接近訓練的開始而付出的努力16(成功水平各不相同)

Future Directions
我們真的需要模型壓縮嗎?這篇文章的標題具有挑釁性,但想法并非如此:通過收緊過度參數(shù)化的界限并改善我們的優(yōu)化方法,我們可以減少或消除對事后模型壓縮的需求。顯然,在我們有一個明確的答案之前,仍有許多懸而未決的問題需要回答。以下是我希望在未來幾年完成的一些工作。
超量參數(shù)方面
我們可以通過窺視數(shù)據(jù)質量(使用低資源計算)來獲得更緊密的界限嗎?
如果我們使用巧妙的優(yōu)化技巧(如Rigged Lottery13),超參數(shù)化界限會如何變化?
我們可以得到強化學習環(huán)境的過度參數(shù)化界限嗎?
我們可以將這些范圍擴展到其他常用的體系結構(RNN,Transformers)嗎?
優(yōu)化方面
我們沒有利用的經過訓練的神經網(wǎng)絡中還有其他冗余嗎?
使這些變得可行:從頭開始訓練量化的神經網(wǎng)絡。從頭開始使用低秩矩陣訓練神經網(wǎng)絡。
弄清楚為什么知識蒸餾可以改善優(yōu)化。如果可能的話,使用類似的想法進行優(yōu)化,同時使用更少的GPU內存。
正則化方面
哪些類型的正則化會導致哪些類型的模型冗余?
修剪和重新訓練與L0正則化有何關系?哪些隱式正則化導致可修剪性?
哪些類型的正則化可以量化?
原文鏈接:http://mitchgordon.me/machine/learning/2020/01/13/do-we-really-need-model-compression.html#fn:lottery-general
本文亮點總結
推薦閱讀
2021-03-12
2021-02-03
2020-11-08

# CV技術社群邀請函 #
備注:姓名-學校/公司-研究方向-城市(如:小極-北大-目標檢測-深圳)
即可申請加入極市目標檢測/圖像分割/工業(yè)檢測/人臉/醫(yī)學影像/3D/SLAM/自動駕駛/超分辨率/姿態(tài)估計/ReID/GAN/圖像增強/OCR/視頻理解等技術交流群
每月大咖直播分享、真實項目需求對接、求職內推、算法競賽、干貨資訊匯總、與 10000+來自港科大、北大、清華、中科院、CMU、騰訊、百度等名校名企視覺開發(fā)者互動交流~

