本文對BERT的原理、技術細節以及如何應用于實際場景中,做了簡明扼要的介紹。看完本文相信您會對BERT為什么被認為是當前最好的NLP模型、實現原理以及適用場景有所了解。
目前最好的自然語言預訓練方法無疑是BERT。它的工作流程分為兩步:
首先,使用大量未標記的數據,以預訓練、也就是無人監督的方式學習語言表達。
然后,使用少量經過標記的訓練數據對模型進行fine-tune,以監督學習的方式,執行多種監督任務。
預訓練機器學習模型已經在包括視覺、自然語言處理在內的各個領域取得了成功。
詳解BERT及其原理
BERT是Bidirectional Encoder Representations from Transformers的縮寫,是一種新型的語言模型,通過聯合調節所有層中的雙向Transformer來訓練預訓練深度雙向表示。
它基于谷歌2017年發布的Transformer架構,通常的Transformer使用一組編碼器和解碼器網絡,而BERT只需要一個額外的輸出層,對預訓練進行fine-tune,就可以滿足各種任務,根本沒有必要針對特定任務對模型進行修改。
BERT將多個Transformer編碼器堆疊在一起。Transformer基于著名的多頭注意力(Multi-head Attention)模塊,該模塊在視覺和語言任務方面都取得了巨大成功。
BERT的先進性基于兩點:首先,使用Masked Langauge Model(MLM)和Next Sentense Prediction(NSP)的新預訓練任務;其次,大量數據和計算能力滿足BERT的訓練強度。
相比之下,像Word2Vec、ELMO、OpenAI GPT等傳統SOTA生成預訓練方法,使用從左到右的單向訓練,或者淺雙向,均無法做到BERT的雙向性。
MLM
MLM可以從文本執行雙向學習,即允許模型從單詞前后相鄰的單詞,學習每個單詞的上下文,這是傳統方法做不到的。
MLM預訓練任務將文本轉換為符號,并使用符號表示作為訓練的輸入和輸出。15%的符號隨機子集在訓練期間被屏蔽(類似被隱藏起來),目標函數則用來預測符號識別的正確率。
這與使用單向預測作為目標、或使用從左到右和從右到左訓練,來近似雙向性的傳統訓練方法形成了對比。
但是MLM中的BERT屏蔽策略,將模型偏向于實際的單詞,還沒有數據顯示這種偏見對訓練所產生的影響。
NSP
NSP使得BERT可以通過預測上下句之間是否連貫來得出句子之間的關系。
給出50%正確上下句配對,并補充50%的隨機上下句配對,然后對模型進行訓練。
MLM和NSP是同時進行的。
數據和TPU/GPU runtime
BERT的訓練總共使用了33億單詞。其中25億來自維基百科,剩下8億來自BooksCorpus。
訓練使用TPU完成,GPU估算如下所示。
使用2500-392000標記的樣品進行fine-tune。重要的是,100K以上訓練樣本的數據集在各種超參數上表現出強大的性能。
每個fine-tune實驗在單個云TPU上運行1小時,在GPU上需要運行幾個小時不等。
結果顯示,BERT優于11項NLP任務。在SQUAD和SWAG兩個任務中,BERT成為第一個超越人類的NLP模型!
BERT能夠解決的實際任務類型
BERT預訓練了104種語言,已在TensorFlow和Pytorch中實現并開源。Clone地址:
https://github.com/google-research/Bert
BERT可以針對幾種類型的任務進行fine-tune。例如文本分類、文本相似性、問答、文本標簽、如詞性、命名實體識別等。
但是,預訓練BERT是很貴的,除非使用類似于Nvidia V100這樣的TPU或GPU。
BERT人員還發布了一個單獨的多語種模型,該模型使用整個維基百科的100種語言進行訓練,性能比單語種的低幾個百分點。
-
編碼器
+關注
關注
45文章
3647瀏覽量
134711 -
自然語言
+關注
關注
1文章
288瀏覽量
13359 -
nlp
+關注
關注
1文章
489瀏覽量
22052
原文標題:3分鐘看懂史上最強NLP模型BERT
文章出處:【微信號:AI_era,微信公眾號:新智元】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論