顛覆直覺!大模型重壓縮,反道加速推理速度,加州伯克利的再思考

2020-03-10     AI科技評論

實踐中,通過減小模型大小來提高模型訓練效率的這種常用做法,實際上與計算效率最佳的訓練策略背道而馳。

加州伯克利分校研究者提出一種「先訓練更大的模型,然後再壓縮模型」的思路,來加速 Transformer 模型訓練和推理,這種方法能夠兼顧訓練效率和訓練成本。


文 | Eric Wallace

譯 | 叢 末


在深度學習中,使用更多的計算(例如增加模型大小、數據集大小或訓練步驟)通常會提高準確度。隨著像 BERT 這樣的無監督預訓練方法大獲成功,能夠將訓練擴展到非常大的模型和數據集上,更體現了這一思路的有效性。


然而遺憾的是,大規模訓練的計算成本非常昂貴,尤其是在沒有大型工業界研究實驗室提供硬體資源支持的條件下。因此,實踐中進行大規模訓練的目標往往是,在不超過硬體預算和訓練時長的情況下,實現高準確度。


一般的訓練預算幾乎都無法滿足大型模型的訓練。因而最大化訓練效率的「入門」策略,往往是使用隱藏層尺寸小或網絡層少的模型,因為這些模型運行速度更快,並且占用的內存更少。


然而,伯克利博士生 Eric Wallace 等人在最新論文《Train Large, Then Compress: Rethinking Model Size for Efficient Training and Inference of Transformers》中,發現實踐中通過減小模型大小來提高模型訓練效率的這種常用做法,實際上與計算效率最佳的訓練策略背道而馳。


論文連結:https://arxiv.org/pdf/2002.11794.pdf


在論文中,他們還提出「訓練更大的模型,然後再壓縮模型」的思路來加速Transformer 模型訓練和推理,能夠兼顧訓練效率和訓練成本。


1、更大的模型,訓練速度反而更快?


在論文《Train Large, Then Compress: Rethinking Model Size for Efficient Training and Inference of Transformers》中,作者發現實踐中通過減小模型大小來提高模型訓練效率的這種常用做法,實際上與計算效率最佳的訓練策略背道而馳。


研究者在計算預算內訓練Transformer模型,無非是希望能夠大幅增加模型大小,與此同時還能減少訓練時長。換言之,即通過論證犧牲收斂性的同時增加模型大小的幾率,重新考慮模型在收斂前必須訓練的隱含假設。


發生這種現象的原因,是在較少的梯度更新中,較大的模型比較小的模型更能夠收斂到較低的測試誤差。此外,模型收斂性上的提高勝過使用更大模型的額外計算成本。因此,在考慮時鐘訓練時長時,較大的模型可以更快地實現較高的準確度。


下圖中的兩個訓練曲線展示了這一趨勢。左圖繪製了BERT的變體——預訓練 RoBERTa的驗證錯誤。對於給定的時鐘時間,較深的RoBERTa模型比較淺的模型實現了更低的困惑度(這篇論文表明,針對較寬的模型同樣如此)。這種趨勢也適用於機器翻譯。


右圖繪製了一個英-法 Transformer機器翻譯模型的驗證BLEU分數(越高越好)。在相同的訓練時間下,較深和較寬的模型比較小的模型獲得了更高的BLEU分數。


有趣的是,對於預訓練RoBERTa,增加模型的寬度或深度都會加快訓練速度。其中對於機器翻譯,較寬的模型要優於較深的模型。因此,作者建議研究者在加深模型之前先嘗試增加模型的寬度。


作者還建議增加模型大小而不是批量大小。具體而言,他們證實了,一旦批量大小接近臨界範圍,增加批量大小只能實現時鐘訓練時間上的邊際改進。因此,在資源限制下,他們建議在臨界範圍內使用批量大小,之後再考慮嘗試增加模型大小。


2、在測試時間上呢?


雖然較大的模型訓練效率更高,但它們也增加了模型推理的計算和內存需求。這是有問題的,因為推理的總成本遠大於大多數實際應用程式的訓練成本。


然而,這篇論文表明了,RoBERTa 可以使用模型壓縮來實現這一權衡。特別是,對於模型壓縮技術而言,更大的模型比更小的模型魯棒性更強。因此,研究者可以通過先訓練非常大的模型,再對模型進行大量壓縮,從而達到兩全其美的效果。


其中,作者使用了量化和剪枝的壓縮方法。量化方法能夠以低精度格式存儲模型權重;而剪枝方法則將某些神經網絡權重設置為零。這兩種方法都可以降低存儲模型權重的推理延遲和內存需求。


他們首先在相同的時鐘訓練時長下,對不同尺寸的RoBERTa 模型進行了預訓練。之後在下游文本分類任務(MNLI)上對這些模型進行微調,並進行了剪枝或量化。他們最終發現,在給定的測試時間預算內,訓練模型最佳方法是先訓練非常大的模型,訓練後再對模型進行大量壓縮。


例如,下圖中的橙色曲線展示了最深的模型的剪枝結果。在不對模型剪枝的情況下,它達到了很高的準確度,不過使用了大約2億個參數,因此需要大量的內存和計算。


然而,這個模型可以進行大量剪枝(左圖,剪枝程度沿著曲線向左變化),而不會嚴重影響準確度。這與較小的模型形成了鮮明的對比,例如粉線表示的6層模型,剪枝後其準確度會嚴重下降。右圖展示的量化,也有類似的趨勢。


總的來說,在測試時間預算內訓練模型的最佳方法,也是首先訓練非常大的模型,再對模型進行大量壓縮。


3、結論


研究表明,增大Transformer模型的大小可以提高訓練和推理的效率,即「先訓練大的模型,再壓縮模型」。


這一發現還引出了很多其他有趣的問題,比如為什麼較大的模型收斂得更快,壓縮得更好。


本文對這一現象進行了初步探討,但仍需進一步研究。另外值得一提的是,這篇論文的發現目前針對NLP,後續可以探索這些結論如何推廣到計算機視覺等其他領域。


參考:
[1] https://bair.berkeley.edu/blog/2020/03/05/compress/

[2] https://arxiv.org/pdf/2002.11794.pdf

文章來源: https://twgreatdaily.com/zh-tw/S9LOw3ABjYh_GJGVxl2-.html