應用

技術

物聯(lián)網世界 >> 物聯(lián)網新聞 >> 物聯(lián)網熱點新聞
企業(yè)注冊個人注冊登錄

開啟NLP新時代的BERT模型,是怎么一步步封神的?

2018-12-13 09:54 腦極體

導讀:不僅號稱谷歌最強NLP模型的BERT如約開源了,而且最新版本還支持中文,可以用于中文命名實體識別的Tensorflow代碼!最關鍵的是,這個強大的模型還橫掃11項記錄,“閱讀理解超過人類”。

圖片來源:視覺中國

圖片來源:視覺中國

NLP領域的伸手黨們,上個月簡直像在過年!

不僅號稱谷歌最強NLP模型的BERT如約開源了,而且最新版本還支持中文,可以用于中文命名實體識別的Tensorflow代碼!最關鍵的是,這個強大的模型還橫掃11項記錄,“閱讀理解超過人類”。

谷歌團隊的Thang Luong更直接宣告:BERT模型開啟了NLP的新時代?!癇ERT在手,天下我有”的既視感啊!

人工智能漫長的發(fā)展史上,能夠讓行業(yè)“鑼鼓喧天,鞭炮齊鳴”的算法模型還真不多見。不過,在跟風成為這個模型的舔狗之前,我們先來扒下它的外衣,看看到底有沒有那么神奇。

什么是BERT模型?

這個讓全球開發(fā)者們?yōu)橹畾g欣鼓舞的新模型,全稱是Bidirectional Encoder Representation from Transformers,即對Transformer的雙向編碼進行調整后的算法。

這種預訓練模型所針對的核心問題,就是NLP的效率難題。

眾所周知,智能語音交互要理解上下文、實現通順的交流、準確識別對象的語氣等等,往往需要一個準確的NLP模型來進行預測。

但越是精準的模型,越是依賴于海量的訓練語料,往往需要人工來進行標注和制作,因此,通過某種模型來預訓練一個語言模型,幫助進行超大規(guī)模的表征學習,就成了一種靠譜且被廣泛采用的方法。

而傳統(tǒng)采用的預訓練模型,比如AI2的 ELMo,以及OpenAI的fine-tune transformer,也同樣需要通過人力標注來制作訓練數據。

譬如說常用的中文漢字有3500個,詞匯數量50萬,制作中文語言預訓練模型的參數數量自然也就十分龐大,中文的預訓練模型需要對每個都進行人工標注,這就又陷入了“有多人工就有多少智能”的死胡同。

那么,呱呱落地的BERT為什么能解決這一問題呢?它的優(yōu)勢主要體現在三個方面:

1. BERT擁有一個深而窄的神經網絡。transformer的中間層有2018,BERT只有1024,但卻有12層。因此,它可以在無需大幅架構修改的前提下進行雙向訓練。由于是無監(jiān)督學習,因此不需要人工干預和標注,讓低成本地訓練超大規(guī)模語料成為可能。

開啟NLP新時代的BERT模型,是怎么一步步封神的?

2. BERT模型能夠聯(lián)合神經網絡所有層中的上下文來進行訓練。這樣訓練出來的模型在處理問答或語言推理任務時,能夠結合上下文理解語義,并且實現更精準的文本預測生成。

3. BERT只需要微調就可以適應很多類型的NLP任務,這使其應用場景擴大,并且降低了企業(yè)的訓練成本。BERT支持包括中文在內的60種語言,研究人員也不需要從頭開始訓練自己的模型,只需要利用BERT針對特定任務進行修改,在單個云TPU上運行幾小時甚至幾十分鐘,就能獲得不錯的分數。

用一些開發(fā)者的話來說,就是BERT的“效果好到不敢相信”,這也是其快速躥紅的核心原因。

BERT是如何工作的?

這樣厲害的模型,是怎樣被訓練出來的呢?主要分為五個步驟:

首先,將語料中的某一部分詞匯遮蓋住,讓模型根據上下文雙向預測被遮蓋的詞,來初步訓練出通用模型。

然后,從語料中挑選出連續(xù)的上下文語句,讓transformer模型來識別這些語句是否連續(xù)。

這兩步合在一起完成預訓練,就成為一個能夠實現上下文全向預測出的語言表征模型。

最后,再結合精加工(fine tuning)模型,使之適用于具體應用。

而BERT應用起來也非常簡單,具體到什么程度呢?個人開發(fā)者可以在任意文本語料庫上完成“預測下一句”之類的任務。

只需要進行數據生成,把整個輸入文件的純文本做成腳本保存到內存,就可以用BERT進行預訓練了。

通過一段簡單代碼,預訓練20步左右,就能得到一個基礎的NLP任務模型。如果想在實際應用中有更好的表現,訓練10000步以上也不會花費很長時間。

開啟NLP新時代的BERT模型,是怎么一步步封神的?

從上述實驗成果來看,似乎可以直接得出結論:BERT開啟了一個NLP的新世界!

以前我們總是吐槽機器翻譯、自然語言理解等NLP技術都是“實驗室的人工智能,生活中的“人工智障”,而且每個廠商的語音產品似乎都停留在用論文和跑分隔空叫板,實際應用場景上體驗感其實差異并不明顯。

但BERT的出現,不僅讓機器語言理解上有了更好的效果,尤其是上下文理解和文本生成上,表現十分驚艷。更重要的是,它為自然語言處理技術帶來的新想象空間。

封神之前,BERT還要面對哪些問題?

說到這里,是不是已經有種“有條件要上BERT,沒有條件創(chuàng)造條件也要上BERT”的感覺了?

別急,BERT模型看起來很美好,但并不是一枚誰拿來都能快速見效的“救心丸”,至少有三點需要額外注意:

一是開銷巨大,在GPU上跑一次成本很高,而Google推薦的云TPU價格雖然低廉(500美元),卻需要兩周時間。

二是數據規(guī)模要求高。如果沒有足夠龐大的訓練語料,很難在針對性開發(fā)中復現同樣的評測效果。

三是BERT無法單獨完成計算問題,需要后續(xù)任務補全推理和決策環(huán)節(jié)。而且BERT本身是無監(jiān)督學習,因此不能直接用于解決NLP問題,往往需要結合現有的有監(jiān)督學習以避免算法歧視或偏見。

目前看來,BERT的魅力雖然讓開發(fā)者和企業(yè)們難以抗拒,但也存在著諸多門檻,想要見效并不是一朝一夕的事兒。但它能夠被人吹爆,并不僅僅只是因為算法和數據上的突破,真正的價值還是隱藏在對產業(yè)端的推動力量。

BERT帶來的想象空間

眾所周知,自然語言處理技術被稱為AI領域的明珠,但在產業(yè)端,智能語音企業(yè)對于自家技術的競爭力,不是宣傳又在SQuAD這樣的頂級賽事中跑了多少分,就是基于各自的數據集大吹特吹準確率。但是,彼此之間的數據往往都十分焦灼,很難真正拉開差距。

而BERT的出現,顯然為智能語音技術公司的競爭帶來了全新的關鍵要素,那就是效率,以及成本。

BERT的橫空出世,抹平了訓練語料的人工標注成本,讓超大規(guī)模的模型訓練不再遙不可及,從而使得產業(yè)端研發(fā)出交互更友好、理解力更高的語音交互產品成為了可能。

另一方面,在垂直應用端,多種語言支持和低成本地針對性訓練,讓BERT可以很快在垂直領域進行部署,大大提升了智能語音的配置效率和應用范圍,為NLP的產業(yè)端實錘落地提供了長期發(fā)展的支撐力量。

解決了模型和應用的問題,NLP領域的新賽道自然就落在了語料和算力上。

想要借助BERT訓練出更精準、更好的應用模型,考驗著企業(yè)的兩方面能力:一個是訓練語料的規(guī)模;一個是強大算力的支撐。

BERT使用了超大的數據集(BooksCorpus 800M + English Wikipedia 2.5G單詞)和超大的算力(對應于超大模型)來在相關的任務上做預訓練。未來,是否有足夠的訓練語料來復現同樣的效果,又是否足夠的GPU(背后就是錢)來支撐跑BERT,將是智能語音技術企業(yè)拉開身位的關鍵。

總而言之,BERT在NLP界還是個新生事物,但已經有了封神的潛質。比此前的解決方案更優(yōu)秀,更有發(fā)展?jié)摿Α?/p>

不過,對數據規(guī)模和算力的要求,以及與自身業(yè)務的耦合,也在無形中提升著智能語音的門檻和成本。

從這個角度看,最終能夠借助BERT拉開競爭區(qū)位的,要么是搜狗、阿里、百度這樣以搜索、電商為主業(yè)的大數據“富一代”,要么是憑借強大效率與業(yè)務創(chuàng)新實現“彎道超車”的新獨角獸,接下來恐怕可以激發(fā)不少新腦洞和解題思路。

無論如何,BERT的出現,終于讓專注“跑分”和“隔空叫板”的NLP領域,多了一些更有趣的想象力。