導(dǎo)讀:不僅號稱谷歌最強(qiáng)NLP模型的BERT如約開源了,而且最新版本還支持中文,可以用于中文命名實體識別的Tensorflow代碼!最關(guān)鍵的是,這個強(qiáng)大的模型還橫掃11項記錄,“閱讀理解超過人類”。
圖片來源:視覺中國
NLP領(lǐng)域的伸手黨們,上個月簡直像在過年!
不僅號稱谷歌最強(qiáng)NLP模型的BERT如約開源了,而且最新版本還支持中文,可以用于中文命名實體識別的Tensorflow代碼!最關(guān)鍵的是,這個強(qiáng)大的模型還橫掃11項記錄,“閱讀理解超過人類”。
谷歌團(tuán)隊的Thang Luong更直接宣告:BERT模型開啟了NLP的新時代。“BERT在手,天下我有”的既視感啊!
人工智能漫長的發(fā)展史上,能夠讓行業(yè)“鑼鼓喧天,鞭炮齊鳴”的算法模型還真不多見。不過,在跟風(fēng)成為這個模型的舔狗之前,我們先來扒下它的外衣,看看到底有沒有那么神奇。
什么是BERT模型?
這個讓全球開發(fā)者們?yōu)橹畾g欣鼓舞的新模型,全稱是Bidirectional Encoder Representation from Transformers,即對Transformer的雙向編碼進(jìn)行調(diào)整后的算法。
這種預(yù)訓(xùn)練模型所針對的核心問題,就是NLP的效率難題。
眾所周知,智能語音交互要理解上下文、實現(xiàn)通順的交流、準(zhǔn)確識別對象的語氣等等,往往需要一個準(zhǔn)確的NLP模型來進(jìn)行預(yù)測。
但越是精準(zhǔn)的模型,越是依賴于海量的訓(xùn)練語料,往往需要人工來進(jìn)行標(biāo)注和制作,因此,通過某種模型來預(yù)訓(xùn)練一個語言模型,幫助進(jìn)行超大規(guī)模的表征學(xué)習(xí),就成了一種靠譜且被廣泛采用的方法。
而傳統(tǒng)采用的預(yù)訓(xùn)練模型,比如AI2的 ELMo,以及OpenAI的fine-tune transformer,也同樣需要通過人力標(biāo)注來制作訓(xùn)練數(shù)據(jù)。
譬如說常用的中文漢字有3500個,詞匯數(shù)量50萬,制作中文語言預(yù)訓(xùn)練模型的參數(shù)數(shù)量自然也就十分龐大,中文的預(yù)訓(xùn)練模型需要對每個都進(jìn)行人工標(biāo)注,這就又陷入了“有多人工就有多少智能”的死胡同。
那么,呱呱落地的BERT為什么能解決這一問題呢?它的優(yōu)勢主要體現(xiàn)在三個方面:
1. BERT擁有一個深而窄的神經(jīng)網(wǎng)絡(luò)。transformer的中間層有2018,BERT只有1024,但卻有12層。因此,它可以在無需大幅架構(gòu)修改的前提下進(jìn)行雙向訓(xùn)練。由于是無監(jiān)督學(xué)習(xí),因此不需要人工干預(yù)和標(biāo)注,讓低成本地訓(xùn)練超大規(guī)模語料成為可能。
2. BERT模型能夠聯(lián)合神經(jīng)網(wǎng)絡(luò)所有層中的上下文來進(jìn)行訓(xùn)練。這樣訓(xùn)練出來的模型在處理問答或語言推理任務(wù)時,能夠結(jié)合上下文理解語義,并且實現(xiàn)更精準(zhǔn)的文本預(yù)測生成。
3. BERT只需要微調(diào)就可以適應(yīng)很多類型的NLP任務(wù),這使其應(yīng)用場景擴(kuò)大,并且降低了企業(yè)的訓(xùn)練成本。BERT支持包括中文在內(nèi)的60種語言,研究人員也不需要從頭開始訓(xùn)練自己的模型,只需要利用BERT針對特定任務(wù)進(jìn)行修改,在單個云TPU上運行幾小時甚至幾十分鐘,就能獲得不錯的分?jǐn)?shù)。
用一些開發(fā)者的話來說,就是BERT的“效果好到不敢相信”,這也是其快速躥紅的核心原因。
BERT是如何工作的?
這樣厲害的模型,是怎樣被訓(xùn)練出來的呢?主要分為五個步驟:
首先,將語料中的某一部分詞匯遮蓋住,讓模型根據(jù)上下文雙向預(yù)測被遮蓋的詞,來初步訓(xùn)練出通用模型。
然后,從語料中挑選出連續(xù)的上下文語句,讓transformer模型來識別這些語句是否連續(xù)。
這兩步合在一起完成預(yù)訓(xùn)練,就成為一個能夠?qū)崿F(xiàn)上下文全向預(yù)測出的語言表征模型。
最后,再結(jié)合精加工(fine tuning)模型,使之適用于具體應(yīng)用。
而BERT應(yīng)用起來也非常簡單,具體到什么程度呢?個人開發(fā)者可以在任意文本語料庫上完成“預(yù)測下一句”之類的任務(wù)。
只需要進(jìn)行數(shù)據(jù)生成,把整個輸入文件的純文本做成腳本保存到內(nèi)存,就可以用BERT進(jìn)行預(yù)訓(xùn)練了。
通過一段簡單代碼,預(yù)訓(xùn)練20步左右,就能得到一個基礎(chǔ)的NLP任務(wù)模型。如果想在實際應(yīng)用中有更好的表現(xiàn),訓(xùn)練10000步以上也不會花費很長時間。
從上述實驗成果來看,似乎可以直接得出結(jié)論:BERT開啟了一個NLP的新世界!
以前我們總是吐槽機(jī)器翻譯、自然語言理解等NLP技術(shù)都是“實驗室的人工智能,生活中的“人工智障”,而且每個廠商的語音產(chǎn)品似乎都停留在用論文和跑分隔空叫板,實際應(yīng)用場景上體驗感其實差異并不明顯。
但BERT的出現(xiàn),不僅讓機(jī)器語言理解上有了更好的效果,尤其是上下文理解和文本生成上,表現(xiàn)十分驚艷。更重要的是,它為自然語言處理技術(shù)帶來的新想象空間。
封神之前,BERT還要面對哪些問題?
說到這里,是不是已經(jīng)有種“有條件要上BERT,沒有條件創(chuàng)造條件也要上BERT”的感覺了?
別急,BERT模型看起來很美好,但并不是一枚誰拿來都能快速見效的“救心丸”,至少有三點需要額外注意:
一是開銷巨大,在GPU上跑一次成本很高,而Google推薦的云TPU價格雖然低廉(500美元),卻需要兩周時間。
二是數(shù)據(jù)規(guī)模要求高。如果沒有足夠龐大的訓(xùn)練語料,很難在針對性開發(fā)中復(fù)現(xiàn)同樣的評測效果。
三是BERT無法單獨完成計算問題,需要后續(xù)任務(wù)補(bǔ)全推理和決策環(huán)節(jié)。而且BERT本身是無監(jiān)督學(xué)習(xí),因此不能直接用于解決NLP問題,往往需要結(jié)合現(xiàn)有的有監(jiān)督學(xué)習(xí)以避免算法歧視或偏見。
目前看來,BERT的魅力雖然讓開發(fā)者和企業(yè)們難以抗拒,但也存在著諸多門檻,想要見效并不是一朝一夕的事兒。但它能夠被人吹爆,并不僅僅只是因為算法和數(shù)據(jù)上的突破,真正的價值還是隱藏在對產(chǎn)業(yè)端的推動力量。
BERT帶來的想象空間
眾所周知,自然語言處理技術(shù)被稱為AI領(lǐng)域的明珠,但在產(chǎn)業(yè)端,智能語音企業(yè)對于自家技術(shù)的競爭力,不是宣傳又在SQuAD這樣的頂級賽事中跑了多少分,就是基于各自的數(shù)據(jù)集大吹特吹準(zhǔn)確率。但是,彼此之間的數(shù)據(jù)往往都十分焦灼,很難真正拉開差距。
而BERT的出現(xiàn),顯然為智能語音技術(shù)公司的競爭帶來了全新的關(guān)鍵要素,那就是效率,以及成本。
BERT的橫空出世,抹平了訓(xùn)練語料的人工標(biāo)注成本,讓超大規(guī)模的模型訓(xùn)練不再遙不可及,從而使得產(chǎn)業(yè)端研發(fā)出交互更友好、理解力更高的語音交互產(chǎn)品成為了可能。
另一方面,在垂直應(yīng)用端,多種語言支持和低成本地針對性訓(xùn)練,讓BERT可以很快在垂直領(lǐng)域進(jìn)行部署,大大提升了智能語音的配置效率和應(yīng)用范圍,為NLP的產(chǎn)業(yè)端實錘落地提供了長期發(fā)展的支撐力量。
解決了模型和應(yīng)用的問題,NLP領(lǐng)域的新賽道自然就落在了語料和算力上。
想要借助BERT訓(xùn)練出更精準(zhǔn)、更好的應(yīng)用模型,考驗著企業(yè)的兩方面能力:一個是訓(xùn)練語料的規(guī)模;一個是強(qiáng)大算力的支撐。
BERT使用了超大的數(shù)據(jù)集(BooksCorpus 800M + English Wikipedia 2.5G單詞)和超大的算力(對應(yīng)于超大模型)來在相關(guān)的任務(wù)上做預(yù)訓(xùn)練。未來,是否有足夠的訓(xùn)練語料來復(fù)現(xiàn)同樣的效果,又是否足夠的GPU(背后就是錢)來支撐跑BERT,將是智能語音技術(shù)企業(yè)拉開身位的關(guān)鍵。
總而言之,BERT在NLP界還是個新生事物,但已經(jīng)有了封神的潛質(zhì)。比此前的解決方案更優(yōu)秀,更有發(fā)展?jié)摿Α?/p>
不過,對數(shù)據(jù)規(guī)模和算力的要求,以及與自身業(yè)務(wù)的耦合,也在無形中提升著智能語音的門檻和成本。
從這個角度看,最終能夠借助BERT拉開競爭區(qū)位的,要么是搜狗、阿里、百度這樣以搜索、電商為主業(yè)的大數(shù)據(jù)“富一代”,要么是憑借強(qiáng)大效率與業(yè)務(wù)創(chuàng)新實現(xiàn)“彎道超車”的新獨角獸,接下來恐怕可以激發(fā)不少新腦洞和解題思路。
無論如何,BERT的出現(xiàn),終于讓專注“跑分”和“隔空叫板”的NLP領(lǐng)域,多了一些更有趣的想象力。