天天看點

論文閱讀_知識蒸餾_MobileBERT

英文題目:MobileBERT: a Compact Task-Agnostic BERT for Resource-Limited Devices

中文題目:MobileBERT:面向資源有限裝置的任務無關的壓縮模型

論文位址:https://arxiv.org/pdf/2004.02984

領域:自然語言處理,模型蒸餾

發表時間:2020

作者:Zhiqing Sun,卡内基梅隆大學,谷歌

出處:ACL

被引量:162

代碼和資料:https://github.com/google-research/google-research/tree/master/mobilebert

閱讀時間:22.06.16

讀後感

使用了瓶頸結構,同時微調模型實作加速,最終實作了任務無關的蒸餾BERT模型。

介紹

大模型效果好,但受資源限制。文中提出了MobileBERT模型對BERT模型進行壓縮和加速,它和原始BERT一樣,是任務無關的,可以泛化到不同下遊任務。MobileBERT是對BERT LARGE的優化,使用瓶頸結構。具體實作分兩步:先訓練一個倒瓶頸的特殊的老師模型,然後再将知識轉移到學生模型MobileBERT。它比BERT BASE模型小4.3倍,快5.5倍,在GLUE資料集上達到與BASE BASE類似的效果。

文中提出的MobileBERT模型與BERT LARGE的深度相同,用瓶頸結構使每一層更窄,如圖-1所示:

論文閱讀_知識蒸餾_MobileBERT

與之前的模型相比,文中模型隻在預訓練階段使用知識轉移,在下遊任務中不需要微調教師模型和資料增強;另外,它不修改模型層數,隻改變了每層的寬度。

方法

圖-1展示了模型參數的具體大小:

論文閱讀_知識蒸餾_MobileBERT

瓶頸和逆瓶頸

從表-1中可以看到,每塊次元僅為128,另外,将全流程的層輸入輸出都調整為更窄的512。

在訓練過程中,首先訓練老師模型 IB-BERT ,再将知識轉移到學生模型MobileBERT。老師模型設計如圖-1(b)所示,它是一個逆瓶頸結構,師生模型的Feature map大小均為512,這樣可以直接對比層輸出。同時使用瓶頸和逆瓶頸使老師模型保持性能,學生模型足夠緊湊。

多層前饋網絡

注意力層和前饋網絡功能不同:前者連接配接了不同空間資料,後者提升了模型的非線性表達能力。一般BERT的注意力層和前饋網絡參數比例為1:2,而由于MobileBERT模型比較窄,注意力參數相對更多,為解決此問題,設計了多個疊加的前饋層,如圖-1©所示。

操作優化

通過延遲分析發現,歸一化層和 gelu 激活函數占延遲的很大比例,是以對其進行優化。

  • 去掉歸一化層:用針對元素的線性變換替換n通道的隐藏層歸一化。
論文閱讀_知識蒸餾_MobileBERT
  • 使用relu代替glue

嵌入分解

嵌入詞表占了模型的很大比例,如表-1所示,MobileBERT将嵌入詞表壓縮到128維,再用核為3的卷積層将其擴充到512維。

訓練目标

轉移目标包含:feature map轉移和注意力轉移。

Feature map轉移

BERT中每層的輸出是下層的輸入,是以,需要讓學生的層輸出盡量與老師結果一緻。這裡使用MSE作為損失函數。

論文閱讀_知識蒸餾_MobileBERT

公式中l為層索引,T為序列長度,N為feature map大小。

注意力轉移

注意力提升了BERT模型的語言識别能力,是以也通過學習注意力層将知識更好地轉移到MobileBERT模型。使用KL散度來計算注意力層的差異,作為損失函數:

論文閱讀_知識蒸餾_MobileBERT

預訓練蒸餾

除了針對各Transformer層的轉移,在預訓練時,還使用了蒸餾的loss函數,最終損失函數由三部分組成:遮蔽的損失(MLM),下一句預測的損失(NSP)和針對MLM的蒸餾損失:

論文閱讀_知識蒸餾_MobileBERT

訓練政策

下面讨論三種訓練政策,如圖-2所示:

論文閱讀_知識蒸餾_MobileBERT

輔助知識轉移(AKT)

将中間層的知識轉移作為知識蒸餾的輔助任務。損失函數是所有層的知識轉移損失和預測蒸餾損失的線性組合。

聯合知識轉移(JKT)

将訓練分成兩步:先訓練中間層知識轉移,然後訓練預訓練的知識蒸餾。

遞進知識轉移(PKT)

下層的錯誤可能影響到上層的學習,是以設計了先訓練下層,再訓練上層的知識轉移方法。一般在訓練上層時當機下層參數,也可以使用軟化方法,訓練上層時對下層參數使用較小的學習率。實驗證明該方法效果最好。

實驗

表-2展示了在SQuAD資料集上,使用不同參數大小的蒸餾結果:

論文閱讀_知識蒸餾_MobileBERT

圖-3展示了堆疊前饋層的效果:

論文閱讀_知識蒸餾_MobileBERT

精調下遊任務的方法與普通BERT一緻,略有不同的是MobileBERT常需要更大的學習率和更多次疊代。主實驗結果如表-8所示:

論文閱讀_知識蒸餾_MobileBERT

可以看到,由于是對BERT LARGE的蒸餾,MobileBERT與BERT BASE模型效果類似,而大小比BERT小4.3倍,速度是BERT的5.5倍。

表-8對比了三種不同政策的訓練方法,可以看到遞進訓練效果更好。