鄭集楊 發自 凹非寺
量子位 報導 | 公眾號 QbitAI
近期,亞馬遜 Alexa 團隊發布了一項研究成果:研究人員對BERT模型進行參數選擇,獲得了BERT的最優參數子集——Bort。
研究結果表明,Bort大小僅為BERT-large的16%,但是在CPU上的速度卻快了7.9倍,在NLU基準測試上的性能也優於BERT-large。
這是在NLP模型快速「膨脹」,模型輕量化迫切需求的背景下,一次比較成功的結果。
NLP模型大小 △圖源:DistilBERT
與ALBERT、MobileBERT進行的模型結構優化不同,Bort是在原本的模型架構上進行最優子集選擇。
簡單來說就是:「瘦身」。
那麼,研究人員又是怎麼給BERT「瘦身」的呢?
接下來便讓我們帶大家來仔細看看。
FPTAS助力「瘦身」
首先需要明確的是,這並不是研究人員第一次嘗試給BERT「瘦身」了。
因為BERT的規模大,推理速度慢,並且預處理過程複雜,所以先前已經有部分研究人員便嘗試對其進行瘦身,取得了一定的成果:保持了其前身的相同性能、簡化了預訓練過程同時減少了推理時間。
不過,在準確性上,瘦身後的子集總是不太盡如人意——達不到原本BERT的性能。
而這次的研究,研究人員使用了完全多項式時間近似算法(FPTAS)進一步優化這個問題,因為該算法最近被證明:在某些條件下,能夠有效地提取此類最優子集。
對此,研究人員說道:
這種條件被稱為strong AB^nC propert,我們證明了BERT滿足了這一組條件。
研究人員列舉了三個指標:推理速度,參數大小和錯誤率,在使用FPTAS下,從一個高性能的BERT中提取一個最優子集,這便是Bort。
在隨後初步的測試中,Bort有著不俗的表現。在CPU上,其執行推理的速度比BERT-large快了7.9倍。
此外,在相同的硬體上,對相同的數據集進行預訓練,Bort只花費了288個GPU hours。而相比之下,BERT-large花費了1153個GPU hours,而RoBERTa-large則需要25764個GPU hours。
「瘦身」成功!
變「瘦」了,也變強了
瘦身後,是不是就像之前類似的研究一樣,能力下降了呢?這是一個非常關鍵的問題。
為了驗證Bort的泛化能力,研究人員在GLUE和SuperGLUE基準以及RACE數據集上對Bort同其他模型進行了測試。
首先是在GLUE上測試:
Bort在幾乎所有任務中都取得了優異的成績:除了QQP和QNLI之外,它的性能都比其他幾個同樣基於BERT的同類模型好得多。
值得一提的是,對於BERT-large而言,Bort的性能提高了0.3%至31%。
其次是在SuperGLUE上的測試:
Bort同樣取得了不錯的成績,除了一項任務(ReCoRD)之外,其他所有任務上都展現了優於或等同於BERT-large的性能。
最後,是在RACE上的測試:
總的來說,Bort獲得了良好的結果,在這兩項任務上的性能比BERT-large高出9-10%。
對於NLU測試結果,研究人員總結道:
在GLUE,SuperGLUE和RACE的NLU基準測試上,Bort相對於BERT-large在各個方面的性能都有著提升,範圍從0.3%到31%不等。
最後,研究人員還在Github公布了Bort的代碼。論文和代碼地址如下,需要的讀者自取哦。
論文連結:
https://arxiv.org/pdf/2010.10499.pdf
代碼地址:
https://github.com/alexa/bort
— 完 —
本文系網易新聞•網易號特色內容激勵計劃籤約帳號【量子位】原創內容,未經帳號授權,禁止隨意轉載。
量子位年度智能商業峰會啟幕,
李開復等AI大咖齊聚,
邀你共探新形勢下智能產業發展之路
▽限時早鳥優惠,掃碼鎖定席位▽
量子位 QbitAI · 頭條號籤約作者
վ'ᴗ' ի 追蹤AI技術和產品新動態
原標題:《BERT輕量化:最優參數子集Bort,大小僅為BERT-large16%》
閱讀原文