百度正式發布ERNIE 2.0:16項中英文任務超越BERT、XLNet刷新SOTA

2021-01-19 機器之心Pro

今天,百度 ERNIE 再升級,發布持續學習語義理解框架 ERNIE 2.0,同時藉助飛槳高效分布式訓練優勢發布了基於此框架的 ERNIE 2.0 預訓練模型。該模型在共計 16 個中英文任務上超越了 BERT 和 XLNet,取得了 SOTA 效果。

近兩年,以 BERT、XLNet 為代表的無監督預訓練技術在多個自然語言處理任務上取得了技術突破。基於大規模數據的無監督預訓練技術在自然語言處理領域變得至關重要。

百度發現,之前的工作主要通過詞或句子的共現信號,構建語言模型任務進行模型預訓練。例如,BERT 通過掩碼語言模型和下一句預測任務進行預訓練。XLNet 構建了全排列的語言模型,並通過自回歸的方式進行預訓練。

然而,除了語言共現信息之外,語料中還包含詞法、語法、語義等更多有價值的信息。例如,人名、地名、機構名等詞語概念知識,句子間順序和距離關係等結構知識,文本語義相似度和語言邏輯關係等語義知識。那麼如果持續地學習各類任務,模型的效果能否進一步提升?這就是 ERNIE 2.0 希望探索的。

ERNIE 2.0 新一代升級

之前機器之心就曾介紹過百度開源的 ERNIE 1.0,今天百度也開源了 ERNIE 2.0 的 Fine-tuning 代碼和英文預訓練模型。那麼相比 1.0,ERNIE 2.0 的升級包括哪些方面呢?

github ERNIE 2.0 開源地址:PaddlePaddle/ERNIE具體而言:

BERT、XLNet 等主流方法都強調通過強力的 Transformer 直接構建語言模型,而 ERNIE 2.0 通過多任務預訓練的方法加強模型學到的語言知識。ERNIE 2.0 通過增量學習的方式更新,也就是說可以通過自定義的 NLP 任務微調已訓練模型,加強預訓練效果。ERNIE 2.0 模型在英語任務上很多都優於 BERT 和 XLNet,在 7 個 GLUE 任務上取得了最好的結果;中文任務上,ERNIE 2.0 模型在所有 9 個中文 NLP 任務上全面優於 BERT。當然這只是更新主要體現的方面,還有很多核心思想、調優技巧都隱藏在模型中。下面就讓我們看看 ERNIE 2.0 的主要思想及具體結構都是什麼樣的吧。

ERNIE 2.0 是什麼

如前所述,文本中還有很多非常有價值的信息,為此百度提出持續學習語義理解框架 ERNIE 2.0。該框架支持增量引入不同角度的自定義預訓練任務,以捕捉語料中詞法、語法、語義等信息。這些任務通過多任務學習對模型進行訓練更新,每當引入新任務時,該框架可在學習該任務的同時,不遺忘之前學到過的信息。

ERNIE 2.0 論文地址:https://arxiv.org/pdf/1907.12412v1.pdfERNIE 框架支持隨時引入各種自定義任務,這些任務共享相同的編碼網絡並通過多任務學習實現訓練。這種多任務學習的方法使得不同任務中詞彙、句法和語義信息的編碼能共同學習。此外,當我們給出新的任務時,ERNIE 2.0 框架可以根據先前預訓練的權重增量地學習分布式表徵。

如下原論文圖 1 所示,ERNIE 2.0 框架是基於預訓練/微調架構構建的,這種架構在 NLP 中非常流行。ERNIE 2.0 與 BERT 或 XLNet 等經典預訓練方法的不同之處在於,它並不是在少量的預訓練任務上完成的,而是通過不斷引入大量預訓練任務,從而幫助模型高效地學習詞彙、句法和語義表徵。

此外重要的是,ERNIE 2.0 框架能通過多任務學習持續更新預訓練模型,這也就是「連續預訓練」的含義。在每一次微調中,ERNIE 會首先初始化已經預訓練的權重,然後再使用具體任務的數據微調模型。

圖 1:ERNIE 2.0 框架,如上所示 ERNIE 2.0 可以序列地學習不同的任務,並通過微調適應各種新的自然語言理解任務。

注意其中的連續預訓練過程,它可以分為兩個步驟,即構建無監督預訓練任務和通過多任務學習增量地更新 ERNIE 模型。這裡不同的任務是一個序列,因此模型在學習新任務時能記住已經學到過的知識。

如下圖 2 所示為連續預訓練的架構,它包含一系列共享的文本編碼層來編碼上下文信息,這些文本編碼層可以通過循環神經網絡或 Transformer 構建,且編碼器的參數能通過所有預訓練任務更新。

圖 2:ERNIE 2.0 中多任務預訓練的架構。

最後,為了驗證上面這種預訓練方式的有效性,百度的研究者通過一系列無監督自然語言處理任務構建預訓練模型。如下圖 3 所示為 ERNIE 2.0 具體模型結構,我們可以看到它主要包含三類預訓練任務。其中 word-aware 任務將教會模型捕捉詞彙層面的信息,structure-aware 任務將教會模型捕捉句法層面的信息,semantic-aware 任務則負責提供語義方面的信息了。

圖 3:ERNIE 2.0 模型的具體結構,其採用的 7 個任務都可以分到三大類中。

值得注意的是,相比 BERT 等模型,ERNIE 2.0 會帶有一個任務嵌入,這個嵌入對於不同的任務都是唯一的,因此在精調的過程中模型能清楚地知道目前預訓練的任務到底是什麼。

因此,依託該框架的 ERNIE 2.0 預訓練模型不僅實現了 SOTA 效果,而且為開發人員定製自己的 NLP 模型提供了方案。

ERNIE 2.0 效果怎麼樣

百度研究者分別比較了 ERNIE 2.0 和當前最優預訓練模型在中英文任務上的性能。英文任務中,ERNIE 2.0 在自然語言理解數據集 GLUE 的 7 個任務上擊敗了 BERT 和 XLNet。中文上,ERNIE 2.0 在閱讀理解、情感分析、問答等不同類型的 9 個數據集上超越了 BERT,並刷新了 SOTA。

為了方便與 BERT 進行對比,百度研究者使用與 BERT 相同的 transformer 模型設置。ERNIE 2.0 base 模型使用 48 塊英偉達 v100 GPU,large 模型使用了 64 塊英偉達 v100 GPU。ERNIE 2.0 在百度深度學習框架 PaddlePaddle 中實現。

數據

模型訓練所用英文數據是維基百科和 BookCorpus,另有一部分來自 Reddit,此外,百度使用 Discovery 數據作為篇章關係數據。而中文數據則包括來自百度搜尋引擎的百科、新聞、對話、信息檢索和篇章關係數據。具體數據統計情況見下表:

ERNIE 2.0 在英文任務上的性能

ERNIE 2.0 模型在 GLUE 數據集上的性能如下表所示。我們可以從表中看到,ERNIE 2.0_BASE 模型在全部 10 項任務中的性能均超越 BERT_BASE,得到了 80.6 的分數。

ERNIE 2.0_LARGE 在除 MNLI-m 以外的其他任務中的性能均超過 BERT_LARGE 和 XLNet_LARGE。而 ERNIE 2.0LARGE 在全部任務測試集上的性能均超過 BERT_LARGE,得到了 83.6 的分數,比之前的 SOTA 模型 BERT_LARGE 提升了 3.1%。

表 6:模型在 GLUE 上的結果,其中開發集上的結果是五次實驗結果的中位數,測試集結果是通過 GLUE 評估服務完成的。

ERNIE 2.0 在中文任務上的性能

研究者在 9 個中文 NLP 任務上進行了大量實驗,這些任務包括機器閱讀理解、命名實體識別、自然語言推斷、語義相似度、語義分析和問答。

那麼具體效果如何呢?下表展示了 ERNIE 2.0 等模型在這些中文任務上的性能。

表 7:模型在 9 項常規中文 NLP 任務中的結果。模型結果均為五次實驗結果的中位數,粗體字表示 SOTA 結果。

ERNIE 2.0 在全部 9 項任務上的性能均超越 BERT_BASE,且 ERNIE 2.0_LARGE 在這些中文任務上獲得了最優性能,創造了新的 SOTA 結果。

相關焦點

  • 百度多模態模型ERNIE-ViL刷新5項任務紀錄 登頂權威榜單VCR
    機器之心報導機器之心編輯部近日,百度在多模態語義理解領域取得突破,提出知識增強視覺-語言預訓練模型 ERNIE-ViL,首次將場景圖(Scene Graph)知識融入多模態預訓練,在 5 項多模態任務上刷新世界最好效果,並在多模態領域權威榜單 VCR 上超越微軟、谷歌、Facebook 等機構,登頂榜首。
  • 一文讀懂最強中文NLP預訓練模型ERNIE
    基於飛槳開源的持續學習的語義理解框架ERNIE 2.0,及基於此框架的ERNIE 2.0預訓練模型,在共計16個中英文任務上超越了BERT和XLNet, 取得了SOTA效果。本文帶你進一步深入了解ERNIE的技術細節。
  • 中文最佳,哈工大訊飛聯合發布全詞覆蓋中文BERT預訓練模型
    機器之心報導參與:一鳴昨日,機器之心報導了 CMU 全新模型 XLNet 在 20 項任務上碾壓 BERT 的研究,引起了極大的關注。而在中文領域,哈工大訊飛聯合實驗室也於昨日發布了基於全詞覆蓋的中文 BERT 預訓練模型,在多個中文數據集上取得了當前中文預訓練模型的最佳水平,效果甚至超過了原版 BERT、ERINE 等中文預訓練模型。
  • 百度ERNIE語義理解開源套件重磅升級 零基礎也能秒變NLP達人
    整套核心代碼簡單、清晰,使得開發者,尤其是剛入門NLP的新手玩家,可以學習各類NLP任務的finetune,加載舊版本checkpoint、C++ inference API、ERNIE-server等每一個重要功能的細節。同時,新版ERNIE開源套件還為廣大初學者提供了豐富的AI Studio教程,用戶無需自己提供GPU,即可運行ERNIE來完成各類NLP任務,做到了「人人有AI學」。
  • 谷歌大腦CMU聯手推出XLNet,20項任務全面超越BERT
    新智元報導 來源:arxiv、知乎等編輯:大明【新智元導讀】谷歌大腦和CMU聯合團隊提出面向NLP預訓練新方法XLNet,性能全面超越此前NLP領域的黃金標杆BERT,在20個任務上實現了性能的大幅提升,刷新了18個任務上的SOTA結果,可謂全面屠榜!近日,谷歌大腦主任科學家Quoc V.
  • 「金猿技術展」文心ERNIE——基於知識增強的語義理解技術
    該技術由百度申報並參與「數據猿年度金猿策劃活動——2020大數據產業創新技術突破榜榜單及獎項」評選。文心(ERNIE)是一個取得世界級突破的語義理解技術與平臺,依託百度的深度學習平臺飛槳打造,將機器理解語言的水平提升到新的高度,全面刷新了各項NLP任務的世界最好效果,取得了諸多權威語義評測比賽的世界冠軍。
  • 旗魚瀏覽器安卓版 2.0 發布:新!
    旗魚瀏覽器安卓版v2.0正式發布!幾個小時前發布了旗魚瀏覽器電腦版2.0正式版,今天中午12點旗魚瀏覽器iOS版2.0也在App Store審核通過,但是遲遲沒有顯示出來,看來App Store遭遇了抽風,應該是所有App的更新都無法顯示新版本,估計到美國上班時間才能修復吧。
  • 百度輸入法語音能中英文混輸了 這個痛點終於解決
    中關村在線消息:語音輸入法發展這麼多年,一個每天都可能遇到的痛點到現在都沒有解決,那就是中英文混輸,但現在百度輸入法有了新的突破。百度輸入法在今天上午的百度AI開發者大會2019主題演講中,百度語音技術部高級總監高亮展示了百度輸入法語音中英混輸的技術效果。
  • Pytorch-Transformers 1.0 發布,支持六個預訓練框架,含 27 個預...
    上發布了開源 Pytorch-Transformers 1.0,該項目支持 BERT, GPT, GPT-2, Transfo-XL, XLNet, XLM 等,並包含 27 個預訓練模型。為了幫助微調這些模型,我們提供了幾種可以在微調腳本中激活的技術 run_bert_classifier.py 和 run_bert_squad.py:梯度累積(gradient-accumulation),多GPU訓練(multi-gpu training),分布式訓練(distributed training )和16- bits 訓練( 16-bits training)。
  • 推理引擎Paddle Inference改造三要點,ERNIE時延降低81.3%
    近年來對於NLP的研究也在日新月異的變化,有趣的任務和算法更是層出不窮,百度提出知識增強的語義表示模型 ERNIE就是其中的佼佼者。ERNIE在語言推斷、語義相似度、命名實體識別、情感分析、問答匹配等各類NLP中文任務上的模型效果全面超越 Bert,成為NLP中文任務中的主流模型,ERNIE 2.0的論文(https://arxiv.org/abs/1907.12412)也被國際人工智慧頂級學術會議AAAI-2020收錄。
  • 使用BERT和TensorFlow構建搜尋引擎
    wget https://storage.googleapis.com/bert_models/2019_05_30/wwm_uncased_L-24_H-1024_A-16.zip!unzip wwm_uncased_L-24_H-1024_A-16.zip!
  • 大神教程乾貨:使用BERT的多類別情感分析!(附代碼)
    我們需要更新ColaProcessor 類中的方法get_labels(),如下所示,以進行多類文本分類二進位分類的原始代碼def get_labels(self):return [「0」, 「1」]用於多類別文本分類的修改代碼def get_labels(self):return [「0」, 「1」, 「2」, 「3」, 「4」]
  • 教你用BERT進行多標籤文本分類
    所有這些算法都允許我們在大型資料庫(例如所有維基百科文章)上預先訓練無監督語言模型,然後在下遊任務上對這些預先訓練的模型進行微調。這一年裡,在這一領域中最激動人心的事件恐怕要數BERT的發布,這是一種基於多語言轉換器的模型,它已經在各種NLP項目中取得了令人矚目的成果。
  • 百度CES發布Apollo 2.0 英偉達發布自動駕駛晶片Xavier
    「智東西」早報第838期  2018.1.09 周二  #今日要聞#  1、百度CES發布自動駕駛平臺Apollo 2.0  智東西1月9日消息,今日百度在CES發布Apollo 2.0開放平臺,首次開放了安全服務,同時強化了其自定位、感知、規劃決策和雲端仿真等能力,能夠實現簡單城市道路自動駕駛。
  • 詞向量詳解:從word2vec、glove、ELMo到BERT
    目前,詞向量(又叫詞嵌入)已經成為NLP領域各種任務的必備一步,而且隨著bert elmo,gpt等預訓練模型的發展,詞向量演變為知識表示方法,但其本質思想不變。學習各種詞向量訓練原理可以很好地掌握NLP各種方法。生成詞向量的方法有很多種,本文重點介紹word2vec,glove和bert。
  • 谷歌搜索:幾乎所有的英文搜索都用上BERT了
    BERT 是谷歌開源的一款自然語言處理預訓練模型,一經推出就刷新了 11 項 NLP 任務的 SOTA 記錄,登頂 GLUE 基準排行榜。具體到搜尋引擎來說,BERT 可以幫助搜尋引擎更好地理解 web 頁面上的內容,從而提高搜索結果的相關性。BERT 模型中創新性的 架構是一大亮點。
  • 乾貨| BERT fine-tune 終極實踐教程
    另一個是訓練具體任務(task)的fine-tune部分。在開源的代碼中,預訓練的入口是在run_pretraining.py而fine-tune的入口針對不同的任務分別在run_classifier.py和run_squad.py。其中run_classifier.py適用的任務為分類任務。如CoLA、MRPC、MultiNLI這些數據集。
  • 谷歌最強NLP模型BERT,為何炫酷又強大?騰訊程式設計師給你從頭講起
    2.2 某些 head 負責判斷詞的邊界(使得字模型帶有分詞信息)在我們的 query-title 分檔場景中,發現詞粒度的 bert 和字粒度的 bert 最終的表現是差不多的,而對於 rnn 模型來說字粒度的 rnn 很難達到詞粒度 rnn 的效果,我們希望研究一下為什麼詞粒度和字粒度的 bert 表現差不多。
  • Google Chrome 56.0.2924.76 正式版發布
    感謝N軟網的投遞谷歌瀏覽器Chrome Stable穩定版迎來v56正式版首版發布,詳細版本號為