BERT輕量化:最優參數子集Bort

2020-11-24 量子位

鄭集楊 發自 凹非寺

量子位 報導 | 公眾號 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

— 完 —

量子位 QbitAI · 頭條號籤約

關注我們,第一時間獲知前沿科技動態

相關焦點

  • BERT輕量化:最優參數子集Bort,大小僅為BERT-large16%
    鄭集楊 發自 凹非寺量子位 報導 | 公眾號 QbitAI近期,亞馬遜 Alexa 團隊發布了一項研究成果:研究人員對BERT模型進行參數選擇,獲得了BERT的最優參數子集——Bort。
  • 亞馬遜:我們提取了BERT的一個最優子架構,只有Bert-large的16%,CPU...
    研究人員已經做了許多嘗試來提取一個更簡單的子架構,希望這個子架構能夠保持原始 BERT 的優異性能,同時簡化預訓練過程,縮短推理時間。這些研究取得了不同程度的成功。然而,他們提取的這些子架構在準確率方面仍然低於原始架構的實現,而且架構參數集的選擇往往看起來很隨意。
  • 乾貨| BERT fine-tune 終極實踐教程
    按照論文裡描述的參數,其Base的設定在消費級的顯卡Titan x 或Titan 1080ti(12GB RAM)上,甚至需要近幾個月的時間進行預訓練,同時還會面臨顯存不足的問題。不過所幸的是谷歌滿足了Issues#2裡各國開發者的請求,針對大部分語言都公布了BERT的預訓練模型。因此在我們可以比較方便地在自己的數據集上進行fine-tune。
  • 大神教程乾貨:使用BERT的多類別情感分析!(附代碼)
    培訓和測試數據都需要此列構建BERT數據集以進行培訓,開發和測試BERT需要三個不同的數據集:用於訓練的訓練和開發以及用於預測的測試#根據BERT數據要求以正確的順序添加所需的列來創建數據幀df_bert = pd.DataFrame({『id』:range(len(data_train)), 『label』:data_train[0], 『alpha』:[『a』]*data_train.shape
  • 教你用BERT進行多標籤文本分類
    Google Research最近公開了BERT 的tensorflow部署代碼,並發布了以下預訓練模型:BERT-Base, Uncased: 12層,768個隱藏單元,自注意力的 head數為12,110M參數BERT-Large, Uncased:24層,1024個隱藏單元,自注意力的 head數為16,340M參數BERT-Base, Cased:12
  • 使用BERT和TensorFlow構建搜尋引擎
    這個實驗的計劃是: 獲得預先訓練的BERT模型檢查點提取針對推理優化的子圖使用tf.Estimator創建特徵提取器用T-SNE和嵌入式投影儀探索向量空間實現最近鄰搜尋引擎用數學加速最近鄰查詢示例:構建電影推薦系統
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    模型在多個中文數據集上取得了當前中文預訓練模型的最佳水平,效果甚至超過了原版 BERT、ERINE 等中文預訓練模型。表 3:三個模型在 CMRC 2018 數據集上的表現。最好的學習率分別為:BERT (3e-5)、 BERT-wwm (3e-5)、ERNIE (8e-5)。2. DRCDDRCD 數據集由中國臺灣臺達研究院發布,其形式與 SQuAD 相同,是基於繁體中文的抽取式閱讀理解數據集。表 4:各個模型的表現。
  • MIND:高質量的新聞推薦數據集
    目前,許多有關新聞推薦的研究是在私有數據集上開展的,而已有的公開數據集往往規模較小。高質量基準數據集的缺乏限制了新聞推薦領域的研究進展。因此,微軟亞洲研究院聯合微軟新聞產品團隊在 ACL 2020上發布了一個大規模的英文新聞推薦數據集 MIcrosoft News Dataset (MIND[1]),並於2020年7月-9月在condalab平臺舉辦了MIND新聞推薦比賽。
  • 谷歌最強NLP模型BERT,為何炫酷又強大?騰訊程式設計師給你從頭講起
    雖然知道了 bert能解決這個問題,我們更好奇的是"Ϊʲô":為什麼 bert 的表現能這麼好?這裡面有沒有可解釋的部分呢?因為 Multi-head-attention 是 bert 的主要組成部分,所以我們從"頭"入手,希望弄清楚各個 head 對 bert 模型有什麼作用。為了研究某個 head 對模型的影響,我們需要比較有這個 head 和沒有這個 head 模型的前後表現。
  • 超低自重刷新行業記錄 歐馬可超級輕量化產品榮膺"輕量化輕卡之王...
    在經過諸位專家評委歷時近三個月的嚴格篩選,歐航歐馬可旗下歐馬可超級輕量化產品憑藉輕·領科技、輕·享品質、輕·贏價值三大顯著優勢在一眾產品中脫穎而出,榮膺本屆"輕量化輕卡之王"獎項。諸多新材料、新工藝、新結構的應用,實現了歐馬可超級輕量化卡車大幅降重,其中歐馬可S3超級輕量化產品整車降重395公斤,底盤重量不到2.4T;歐馬可S1超級輕量化產品整車降重335kg,並且歐馬可S1底盤重量最低僅1.8T的行業奇蹟。
  • 【中國科學報】中國科大等實現多參數同時最優量子精密測量
    中國科學技術大學郭光燦團隊的李傳鋒、項國勇研究組與香港中文大學教授袁海東合作,在量子精密測量實驗中同時實現3個參數達到海森堡極限精度的測量,測量精度比經典方法提高13.27分貝。相關成果近日在線發表於《科學進展》。  多參數量子精密測量中,每個參數的最優測量方案一般不兼容,參數之間存在精度制衡。
  • BIM輕量化是什麼意思?
    近些年有一個詞相信大家都不陌生,那就是輕量化,追求更輕、更快、更便捷幾乎成為了整個行業的標準與變革方向。今天我們就來深入地探究輕量化背後的邏輯理論以及具體的技術實現方案。首先需要了解到適用於瀏覽器端渲染的模型數據總共包括兩部分,幾何信息與非幾何信息,日常生活中可見的二維、三維模型即為幾何信息,而像一些屬性、建模相關信息等就是非幾何信息。
  • 筆試 | 字節跳動 最優連續子序列
    字節跳動08.09筆試:最優連續子序列給定一個長度為n的整數序列,使得該段連續子序列的交替和最大。給定一個長度為n的整數序列,找出其中一段連續子序列,使得該段連續子序列的和最大。這是一道經典的動態規劃-「最大子段和問題」。
  • NLP之文本分類:「Tf-Idf、Word2Vec和BERT」三種模型比較
    我將數據集劃分為訓練集(70%)和測試集(30%),以評估模型的性能。為了降低矩陣的維度所以需要去掉一些列,我們可以進行一些特徵選擇(Feature Selection),這個流程就是選擇相關變量的子集。
  • 谷歌搜索:幾乎所有的英文搜索都用上BERT了
    此外,谷歌還表示,他們還應用神經網絡來理解搜索相關的子主題,當你搜索寬泛的內容時,這有助於提供更多樣化的內容。這項服務預計年底推出。參考連結:https://searchengineland.com/google-bert-used-on-almost-every-english-query-342193https://searchengineland.com/a-deep-dive-into-bert-how-bert-launched-a-rocket-into-natural-language-understanding
  • 集合間的基本關係,含參數的不等式和空集是難點,快來自測一下
    上一節主要為大家介紹了什麼是集合,以及集合中元素的特點,今天我們來學習集合與集合之間的關係知識清單1,子集一般的對於兩個集合A,B,如果集合A中任意一個元素都是集合B中的元素,我們就說這兩個集合有包含關係,稱集合A為集合B的子集,讀作「A包含於B"(或
  • 最優擬合直線
    ()cv2.destroyAllWindows()返回值lefty: -139返回值righty: 269算法:最優擬合直線是是計算包圍指定輪廓點集的擬合直線 reps, aeps)img=cv2.line( img, pt1, pt2, color[, thickness[, lineType]])img表示待繪製圖像pt1表示線段的第1個點(起點)pt2表示線段的第2個點(終點)color表示繪製顏色thickness表示畫筆粗細,可選參數
  • 中國科大多參數量子精密測量獲得重要進展:達到海森堡極限最優測量
    來自中國科大的消息顯示,近日,中國科大郭光燦院士團隊李傳鋒、項國勇研究組與香港中文大學袁海東教授在多參數量子精密測量研究中取得重要實驗進展,完全解決了量子比特么正演化算法中三個參數之間的精度制衡問題,實現了三個參數同時達到海森堡極限的最優測量。
  • 詞向量詳解:從word2vec、glove、ELMo到BERT
    目前,詞向量(又叫詞嵌入)已經成為NLP領域各種任務的必備一步,而且隨著bert elmo,gpt等預訓練模型的發展,詞向量演變為知識表示方法,但其本質思想不變。學習各種詞向量訓練原理可以很好地掌握NLP各種方法。生成詞向量的方法有很多種,本文重點介紹word2vec,glove和bert。
  • Keras 教程:BERT 文本摘要
    paramters and configuration for BERT設置BERT分詞器# Save the slow pretrained tokenizerslow_tokenizer = BertTokenizer.from_pretrained