BERT 模型壓縮方法

AIBigbull2050發表於2020-03-02

BERT 模型壓縮方法





壓縮方法


1、剪枝——即訓練後從網路中去掉不必要的部分。

這包括權重大小剪枝、注意力頭剪枝、網路層以及其他部分的剪枝等。還有一些方法也透過在訓練期間採用正則化的方式來提升剪枝能力(layer dropout)。



2、權重因子分解——透過將引數矩陣分解成兩個較小矩陣的乘積來逼近原始引數矩陣。

這給矩陣施加了低秩約束。權重因子分解既可以應用於輸入嵌入層(這節省了大量磁碟記憶體),也可以應用於前饋/自注意力層的引數(為了提高速度)。



3、知識蒸餾——又名「Student Teacher」。

在預訓練/下游資料上從頭開始訓練一個小得多的 Transformer,正常情況下,這可能會失敗,但是由於未知的原因,利用完整大小的模型中的軟標籤可以改進最佳化。

一些方法還將BERT 蒸餾成如LSTMS 等其他各種推理速度更快的架構。另外還有一些其他方法不僅在輸出上,還在權重矩陣和隱藏的啟用層上對 Teacher 知識進行更深入的挖掘。



4、權重共享——模型中的一些權重與模型中的其他引數共享相同的值。

例如,ALBERT 對 BERT 中的每個自注意力層使用相同的權重矩陣。



5、量化——截斷浮點數,使其僅使用幾個位元(這會導致舍入誤差)。

模型可以在訓練期間,也可以在訓練之後學習量化值。



6、預訓練和下游任務——一些方法僅僅在涉及到特定的下游任務時才壓縮 BERT,也有一些方法以任務無關的方式來壓縮 BERT。






來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2678059/,如需轉載,請註明出處,否則將追究法律責任。

相關文章