BERT模型為什麼這麼強?

如果你是一名自然語言處理從業者,那你一定聽說過大名鼎鼎的

BERT 模型

BERT(Bidirectional Encoder Representations From Transformers)模型的“榮耀時刻”是2018年:稱霸機器理解測試SQuAD,橫掃其他10項NLP測試,達成“全面超過人類”成就。

BERT模型使用預訓練和微調的方式來完成自然語言處理(Natural Language Processing,NLP)任務。這些任務包括問答系統、情感分析和語言推理等。

1

為什麼BERT模型這麼強?

BERT模型透過預測遮蔽子詞(先將句子中的部分子詞遮蔽,再令模型去預測被遮蔽的子詞)進行訓練的這種方式在語句級的語義分析中取得了極好的效果。

BERT模型還使用了一種特別的訓練方式(先預訓練,再微調),這種方式可以使一個模型適用於多個應用場景。這使得BERT模型重新整理了11項NLP任務處理的紀錄。

這11項NLP任務處理的紀錄涵蓋了如下

4種場景

,這4種場景也是BERT模型所適用的主要場景。

場景一

:處理類似閱讀理解的任務。

場景二

:處理句子與段落間的匹配任務。

場景三

:提取句子深層語義特徵的任務。

場景四

:基於句子或段落級別的短文字(長度小於512個子詞的文字)處理任務。

目前,BERT模型已成為語言分析和挖掘,以及機器學習等領域中最流行的模型。它具有易於使用、穩定性強等諸多優點。

2

BERT模型與BERTology系列模型

BERT模型的出色表現,引起了業界廣泛而強烈的反響。BERT模型的橫空出世,彷彿是打開了處理NLP任務的“潘多拉魔盒”。隨後湧現了一大批類似於BERT模型的預訓練模型,它們被統稱為BERTology系列模型。例如:

引入了BERT模型中的雙向上下文資訊的廣義自迴歸模型——

XLNet模型

引入了BERT模型訓練方式和目標的

RoBERTa和SpanBERT模型

結合了多工及知識蒸餾(Knowledge Distillation)、強化BERT模型功能的

MT-DNN模型

BERTology系列模型一般都基於BERT模型改造而來,程式碼量不大,邏輯也不復雜。

但是,其極大規模的資料量、訓練強度和模型容量,以及利用無監督模型的訓練方式,使得其能力空前強大,在某些領域甚至已超過人類。但在日常中,常用BERT模型來代指本來的BERT模型和BERTology系列模型。這裡的的BERT模型就是這樣一種泛指。

例如,在不同型別的文章(包括散文、小說、新聞、科技文章等)資料集上訓練出的GPT-3模型,可以寫出不同風格的文章。它可以寫出詩集、散文,甚至“金庸風格”的小說、新聞稿等。

3

學好自然語言處理的4件套

要想弄懂、學透BERT模型,需要腳踏實地從BERT模型的技術體系來了解其內部所涉及的技術棧,再根據技術棧中的內容一步步地進行了解和掌握。

BERT模型是由“Transformer模型中的編碼器(Encoder)+雙向(正向序列和反向序列)結構”組成的。因此,一定要熟練掌握Transformer模型的Encoder。這屬於神經網路部分的知識。

另外,BERT模型的主要創新點是其獨特的預訓練方法,這種方法使用Masked Language Model和Next Sentence Prediction兩種方法分別捕捉“詞語”和“句子”級別的表示。這部分知識涵蓋深度學習的訓練模型知識和NLP領域的部分知識。

學好自然語言處理需要“4件套”:

神經網路的基礎知識。

NLP的基礎知識。

程式設計框架的使用。

BERT模型的原理及應用。

其中,前3部分是基礎,這部分內容可以幫助讀者“吃透”BERT模型;最後1部分是昇華,這部分內容可以幫助讀者開闊思路、增長見識,使讀者能夠真正駕馭BERT模型,活學活用,完成NLP任務。

4

學好自然語言處理的前提條件

學習本書,要求讀者具有Python基礎,並熟悉Matplotlib和Numpy庫的使用。

讀者不用擔心自己數學基礎不足、不懂神經網路原理等問題,PyTorch已經將這些底層演算法統統封裝成了高階介面,使用者可以非常方便、快捷地利用它們進行開發。本書重點介紹如何快速使用PyTorch的這些介面來實現深度學習模型。

5

自然語言處理的技術趨勢

早先人們常使用卷積神經網路、迴圈神經網路來處理自然語言任務,但Transformer模型的誕生改變了這個情況。

Transformer模型使用的是全新的注意力機制,達到了比卷積神經網路和迴圈神經網路更好的效果。而BERT模型則是在Transformer模型基礎上的又一次最佳化,直接使NLP模型的效能達到前所未有的高度。

BERT模型已經成為自然語言處理的主流技術。

BERT模型是一種無監督的預訓練語言模型。人們以BERT模型為基礎,對其進行了結構調整、效能最佳化、再訓練等,產生了許多在專業領域中表現更佳的模型。這些模型被統一稱為BERTology系列模型。

BERTology系列模型在NLP的多種場景中都發揮了驚人的效果。從某種角度講,BERTology系列模型所涉及的技術是當今NLP領域的主流技術。

1. 基於超大規模的高精度模型

從BERT模型到RoBERTa模型、GPT模型,再到GPT-2模型、GPT-3模型,模型效果的提升已經證明了——用更多的資料可以“跑”出更強大、更通用的預訓練模型。

近年來,英偉達、谷歌、Open-AI相繼放出的“巨無霸”模型有MegatronLM(含83億個引數)、T5(含110億個引數)、GPT-3(含1500億個引數)。

當然,“巨無霸”模型的能力並不僅僅停留在精度上,它們甚至可以透過語義互動的方式直接完成NLP任務。

2. 基於超小規模的高精度模型

快速發展的深層神經網路,在過去的十年中徹底改變了NLP領域。

另外,諸如保護使用者隱私、消除網路延遲、啟用離線功能、降低運營成本等問題,要求模型能執行在裝置終端,而不是資料中心。這種需求推動了小規模NLP模型的迅速發展。

BERT模型逐漸在往“大規模”和“小規模”兩個極端發展。如何用盡可能少的引數取得和“大模型”接近的效果,同時讓訓練速度和預測速度翻倍,是一個很實際、很有價值的課題。

華為諾亞方舟實驗室釋出的TinyBERT模型、北京大學的FastBERT模型,在這方面都取得了矚目的成績。

3. 基於小樣本訓練的模型

在實際業務場景中,中小AI企業往往容易出現數據量不足的問題。

例如,使用者需要訂製一個客服機器人,但只有100個標準問題,這麼小的資料集不足以支撐模型的訓練。

對於這類問題,除花費高成本找標註團隊製造資料外,還可以透過遷移學習、小樣本學習的方法來讓模型透過少量樣本進行學習,從而獲得較強的泛化能力。這些學習已經成為近年的研究熱點之一。

TAG: 模型BERTNLP訓練神經網路