1. 預(yù)訓(xùn)練模型簡介? ?
?
過去這三年,對自然語言是大放異彩的三年,它的一個標志就是基于注意力機制的神經(jīng)網(wǎng)絡(luò)在自然語言理解任務(wù)中大量應(yīng)用。從大規(guī)模的語料數(shù)據(jù)到強有力的算力支持,加上深度學(xué)習(xí)算法模型,把自然語言帶到一個全新的階段。
預(yù)訓(xùn)練模型,則是使自然語言處理由原來的手工調(diào)參、依靠算法專家深度參與的階段,進入到可以大規(guī)模、可復(fù)制的工業(yè)化實施的階段。而且預(yù)訓(xùn)練模型從單語言、擴展到多語言、多模態(tài)任務(wù)。一路銳氣正盛,所向披靡。
預(yù)訓(xùn)練模型把遷移學(xué)習(xí)很好地用起來了,讓我們感到眼前一亮。這和小孩子讀書一樣,一開始語文、數(shù)學(xué)、化學(xué)都學(xué),讀書、網(wǎng)上游戲等,在腦子里積攢了很多。當(dāng)他學(xué)習(xí)計算機時,實際上把他以前學(xué)到的所有知識都帶進去了。如果他以前沒上過中學(xué),沒上過小學(xué),突然學(xué)計算機就不懂這里有什么道理。這和我們預(yù)訓(xùn)練模型一樣,預(yù)訓(xùn)練模型就意味著把人類的語言知識,先學(xué)了一個東西,然后再代入到某個具體任務(wù),就順手了,就是這么一個簡單的道理。
2. 為什么需要預(yù)訓(xùn)練語言模型?
自然語言處理(NLP),目的是使得計算機具備人類的聽、說、讀、寫、譯、問、答、搜索、摘要、對話和聊天等能力,并可利用知識和常識進行推理和決策,并支持客服、診斷、法律、教學(xué)等場景。自然語言理解,被認為是 AI 皇冠上的明珠。一旦有突破,則會大幅度推動 AI 在很多重要場景落地。
預(yù)訓(xùn)練首先通過自監(jiān)督學(xué)習(xí)從大規(guī)模數(shù)據(jù)中獲得與具體任務(wù)無關(guān)的預(yù)訓(xùn)練模型,從而體現(xiàn)某一個詞在一個特定上下文中的語義表征。第二個步驟是微調(diào),針對具體的任務(wù)修正網(wǎng)絡(luò)。訓(xùn)練數(shù)據(jù)可以是文本、文本-圖像對、文本-視頻對。預(yù)訓(xùn)練模型的訓(xùn)練方法可使用自監(jiān)督學(xué)習(xí)技術(shù)(如自回歸的語言模型和自編碼技術(shù))。可訓(xùn)練單語言、多語言和多模態(tài)的模型。此類模型可經(jīng)過微調(diào)之后,用于支持分類、序列標記、結(jié)構(gòu)預(yù)測和序列生成等各項技術(shù),并構(gòu)建文摘、機器翻譯、圖片檢索、視頻注釋等應(yīng)用。
為什么我們要做預(yù)訓(xùn)練模型?首先,預(yù)訓(xùn)練模型是一種遷移學(xué)習(xí)的應(yīng)用,利用幾乎無限的文本,學(xué)習(xí)輸入句子的每一個成員的上下文相關(guān)的表示,它隱式地學(xué)習(xí)到了通用的語法語義知識。第二,它可以將從開放領(lǐng)域?qū)W到的知識遷移到下游任務(wù),以改善低資源任務(wù),對低資源語言處理也非常有利。第三,預(yù)訓(xùn)練模型在幾乎所有 NLP 任務(wù)中都取得了目前最佳的成果。最后,這個預(yù)訓(xùn)練模型+微調(diào)機制具備很好的可擴展性,在支持一個新任務(wù)時,只需要利用該任務(wù)的標注數(shù)據(jù)進行微調(diào)即可,一般工程師就可以實現(xiàn)。
3. 預(yù)訓(xùn)練語言模型的SOTA進展
自 2018 年谷歌發(fā)布 BERT 以來,預(yù)訓(xùn)練語言模型(Pre-trained Language Models,PLMs)逐漸成為自然語言處理(NLP)領(lǐng)域的主流模型。實踐表明,預(yù)訓(xùn)練語言模型(plm)對各種下游NLP任務(wù)(如文本分類、語義相似度、語義角色標注、機器閱讀理解、對話生成)是有益的。
在 GPU 多機多卡并行算力和海量無標注文本數(shù)據(jù)的雙重支持下,預(yù)訓(xùn)練模型實現(xiàn)了參數(shù)規(guī)模與性能齊飛的局面,取得了人工智能和深度學(xué)習(xí)領(lǐng)域的革命性突破。國際著名互聯(lián)網(wǎng)企業(yè)和研究機構(gòu)互相競爭,將模型規(guī)模和性能不斷推向新的高度。
2020年,OpenAI 公司發(fā)布的 GPT-3 模型更是一炮而紅,將預(yù)訓(xùn)練模型在文本處理領(lǐng)域的應(yīng)用推向了一個極致。它可以促進幾個下游的中文自然語言處理任務(wù),如對話、文章生成、完形填空和語言理解。大量實驗表明, GPT-3 在小樣本(甚至是零樣本)學(xué)習(xí)的情況下,對許多NLP任務(wù)都有很好的處理效果。
在人工智能與深度學(xué)習(xí)領(lǐng)域圍繞超大規(guī)模預(yù)訓(xùn)練模型展開的“軍備競賽”日益白熱化,成為對海量數(shù)據(jù)、并行計算、模型學(xué)習(xí)能力的全方位考驗。
預(yù)訓(xùn)練模型規(guī)模以平均每年10倍的速度增長
(最后一列計算時間為使用單塊NVIDIA V100 GPU訓(xùn)練的估計時間。M-百萬,B-十億)
預(yù)訓(xùn)練模型研究發(fā)展圖
4. GPT-3的特點
海量訓(xùn)練數(shù)據(jù)
GPT-3的與眾不同之處在于它的運行規(guī)模和完成一系列令人難以置信的任務(wù)。第一版GPT于2018年發(fā)布,包含1.17億個參數(shù)。2019年發(fā)布的GPT-2包含15億個參數(shù)。相比之下,GPT-3擁有1750億個參數(shù),比其前身多100倍,比之前最大的同類NLP模型要多10倍。
GPT-3的訓(xùn)練數(shù)據(jù)集也十分龐大,包含近1萬億單詞量的CommonCrawl數(shù)據(jù)集、網(wǎng)絡(luò)文本、數(shù)據(jù)、維基百科等數(shù)據(jù),數(shù)據(jù)量達到了45TB,整個英語維基百科(約600萬個詞條)僅占其訓(xùn)練數(shù)據(jù)的0.6%。訓(xùn)練數(shù)據(jù)的其他部分來自數(shù)字化書籍和各種網(wǎng)頁鏈接。不僅包括新聞文章、食譜和詩歌之類的內(nèi)容,還包括程序代碼、科幻小說、宗教預(yù)言等各種你可以想象到的任何文字。上傳到互聯(lián)網(wǎng)的文本類型都可能成為其訓(xùn)練數(shù)據(jù),其中還包括不良內(nèi)容。比如偽科學(xué)、陰謀論、種族主義等等,這些內(nèi)容也會投喂給AI。
模型使用代價高
GPT-3的模型參數(shù)量達到了驚人的1750億個,據(jù)官方介紹,訓(xùn)練費用已經(jīng)達到了驚人的1200萬美元。但由于OpenAI并沒有公布詳細的訓(xùn)練費用明細,GPT-3模型的訓(xùn)練費用到底是多少依然是個謎。不過就算按市場上最便宜的GPU云服務(wù)的價格計算,模型的訓(xùn)練費用也超過460萬美元,再加上模型迭代和調(diào)優(yōu)的過程,耗費千萬美元以上看來也所言非虛。
看到這里,可能大部分同學(xué)就要問了,我訓(xùn)練不起模型,難道我還用不起嗎?不好意思,一般人還真用不起。
因為,OpenAI公司并沒有開源GPT-3,甚至沒有放出模型的下載鏈接,而是采用了開放API的方式供用戶使用,OpenAI提供了4種收費模式:
??????? 1)自由探索Explore版 (我等):可以免費使用3個月,或者10萬token,哪個先到按哪個算,占著不用可不行。
??????? 2)Create版(普通用戶): 100美元一個月,200萬token每月,超出的部分1k token按8美分計算;
??????? 3)Build版(VIP): 400美元一個月,1000萬token每月,超出的部分1k token按6美分計算;
??????? 4)Scale版(尊享版):如果你是也就是生產(chǎn)級的大規(guī)模用戶,聯(lián)系官方就好,有專人服務(wù)。
按照這個定價策略,也就是說低于100美元/月基本就別想使用該服務(wù)了。如果你對模型效果不滿意,想要微調(diào),不好意思,那是大客戶專享功能,微調(diào)目前只向 Scale 定價層的客戶開放。
5. ?GPT-3 到底有多牛?
雖然OpenAI公司在GPT-3的開源方面的態(tài)度不太友好,但畢竟人家的模型自己說了算,且從效果來看,有驕傲的資本。那么相較于之前的GPT-2,這次GPT-3有哪些明顯的進步呢?
從訓(xùn)練方式來說,與之前版本并沒有什么不同,GPT-3依舊延續(xù)之前的單向語言模型訓(xùn)練方式,只不過就是訓(xùn)練數(shù)據(jù)和參數(shù)有了幾個數(shù)量級的提升。但從實際的效果來看,GPT-3的嘗試至少驗證了一點,就是將一個深度神經(jīng)網(wǎng)絡(luò)不斷增大,它確實可以變得更加的聰明。
相較于當(dāng)前的BERT模型,GPT-3主要能夠解決兩個問題,一個是避免對各領(lǐng)域內(nèi)的標注數(shù)據(jù)的過分依賴,一個是避免對各領(lǐng)域數(shù)據(jù)分布的過度擬合,從而調(diào)教出一個更通用、更泛化的NLP模型。GPT-3的主要目標是用更少的領(lǐng)域數(shù)據(jù),還有去掉微調(diào)步驟去解決問題。
(圖源:李宏毅《深度學(xué)習(xí)人類語言處理》)
直觀來理解就是如圖所示,GPT-3就是要拿掉Fine-tune(微調(diào))這個環(huán)節(jié),也拿到Task-Specific的示例資料,來直接對特殊的領(lǐng)域問題進行回答。
基于此,研究者們使用GPT-3在不同形式下進行了推理效果的測試,包括Zero-shot、One-shot、Few-shot三種,但是這三種形式都是不需要經(jīng)過Fine-tuning的。因為GPT-3選擇的是單向transformer,所以它在預(yù)測新的token時,會對之前的examples進行編碼。
那么,測試結(jié)果如何呢?
從各領(lǐng)域的42項基準測試中的平均表現(xiàn)來看,隨著參數(shù)量的不斷加大,其正確率在不斷提升(當(dāng)然有人會質(zhì)疑,模型提升了10倍參數(shù)量,正確率才提升不到1倍),其中Few Shot的表現(xiàn)是最好的。
而在封閉式的Trivia QA問答中,GPT-3的Few-Shot的表現(xiàn)已經(jīng)可以好過經(jīng)過Fine-tuned SOTA的成績。此外在SuperGLUE測試上面也能達到超過當(dāng)前SOTA的表現(xiàn),以及生成非常逼真的文章,甚至能達到人類難以分辨是機器還是人類協(xié)作的程度。
那么,在當(dāng)前人們調(diào)用OpenAI開放的API接口之后,我們已經(jīng)可以看到GPT-3的一系列的有趣案例了。
GPT-3現(xiàn)在能夠出色地完成翻譯、問答和完形填空任務(wù),能夠很好執(zhí)行兩位、三位的數(shù)學(xué)加減運算。還可以基于文本的描述生成代碼、網(wǎng)站。
(GPT-3將自然語言生成了代碼和圖形按鈕)
可以為文本轉(zhuǎn)換不同文體樣式,比如把口語化變?yōu)闀嬲Z,把日常語言變?yōu)榉晌臅;蛘甙逊睒s的法律語言變成日常語言,比如那些長長的“用戶協(xié)議”。
(GPT-3將日常語言轉(zhuǎn)換為法律文書)
當(dāng)然,GPT-3的主業(yè)更在于生成文本內(nèi)容,比如段子、新聞、小說,甚至給出主題和關(guān)鍵詞,都可以有模有樣地編出一篇完整的論文。
(僅給出標題和開頭,GPT-3就完成了論文)
在和人類的多輪對話中,GPT-3表現(xiàn)也相當(dāng)出色。比如下面這個名為Kosmopol的程序員和GPT-3展開了一段關(guān)于人類、AI與神的存在關(guān)系的“神秘”討論。
(聊到最后程序員表示,“我現(xiàn)在已經(jīng)沒有任何疑問”)
從現(xiàn)在網(wǎng)絡(luò)上所發(fā)布出來的GPT-3的各項表現(xiàn)來看,GPT-3似乎在任何文本生成相關(guān)的領(lǐng)域都能發(fā)揮作用了。
6.?中文預(yù)訓(xùn)練模型簡介
ERNIE
基于 Transformers 的雙向編碼表示(BERT)在多個自然語言處理任務(wù)中取得了廣泛的性能提升。在預(yù)訓(xùn)練語言模型時,需要對語料進行 mask 操作,使模型在看不見 token 的情況下對 mask 的詞語進行預(yù)測。
BERT 模型主要是聚焦在針對字或者英文word粒度的完形填空學(xué)習(xí)上面,沒有充分利用訓(xùn)練數(shù)據(jù)當(dāng)中詞法結(jié)構(gòu),語法結(jié)構(gòu),以及語義信息去學(xué)習(xí)建模。比如 “我要買蘋果手機”,BERT 模型 將 “我”,“要”, “買”,“蘋”, “果”,“手”, “機” 每個字都統(tǒng)一對待,隨機mask,丟失了“蘋果手機” 是一個很火的名詞這一信息,這個是詞法信息的缺失。同時 我 + 買 + 名詞 是一個非常明顯的購物意圖的句式,BERT 沒有對此類語法結(jié)構(gòu)進行專門的建模,如果預(yù)訓(xùn)練的語料中只有“我要買蘋果手機”,“我要買華為手機”,哪一天出現(xiàn)了一個新的手機牌子比如栗子手機,而這個手機牌子在預(yù)訓(xùn)練的語料當(dāng)中并不存在,沒有基于詞法結(jié)構(gòu)以及句法結(jié)構(gòu)的建模,對于這種新出來的詞是很難給出一個很好的向量表示的。
為了利用這種思想提升預(yù)訓(xùn)練模型在中文的表現(xiàn),百度發(fā)布了知識增強的表示模型 ERNIE,ERNIE 通過對訓(xùn)練數(shù)據(jù)中的詞法結(jié)構(gòu),語法結(jié)構(gòu),語義信息進行統(tǒng)一建模,極大地增強了通用語義表示能力,在多項任務(wù)中均取得了大幅度超越BERT的效果。
CPM
北京智源人工智能研究院和清華大學(xué)研究團隊合作開展大規(guī)模預(yù)訓(xùn)練模型開源計劃,清源 CPM(Chinese Pretrained Models)是該計劃下的以中文為核心的大規(guī)模預(yù)訓(xùn)練模型。首期開源內(nèi)容包括26 億參數(shù)規(guī)模的中文語言模型 (CPM-LM) 和217億參數(shù)規(guī)模的結(jié)構(gòu)化知識表示模型 (CPM-KM),可應(yīng)用于中文自然語言理解、生成任務(wù)以及知識計算應(yīng)用,所有模型免費向?qū)W術(shù)界和產(chǎn)業(yè)界開放下載,供研究使用。
與已有的中文預(yù)訓(xùn)練模型相比,本次發(fā)布的清源 CPM 大規(guī)模預(yù)訓(xùn)練模型具有以下特點:
1)學(xué)習(xí)能力強:能夠在多種自然語言處理任務(wù)上,進行零次學(xué)習(xí)或少次學(xué)習(xí)達到較好的效果。
2)語料豐富多樣:收集大量豐富多樣的中文語料,包括百科、小說、對話、問答、新聞等類型。
3)行文自然流暢:基于給定上文,模型可以續(xù)寫出一致性高、可讀性強的文本,達到現(xiàn)有中文生成模型的領(lǐng)先效果。
4)模型規(guī)模大:本次發(fā)布的 CPM-LM 的參數(shù)規(guī)模為 26 億,預(yù)訓(xùn)練中文數(shù)據(jù)規(guī)模100 GB,使用了 64 塊 V100 GPU 訓(xùn)練時間約為 3 周。CPM-KG 的參數(shù)規(guī)模分別為217億,預(yù)訓(xùn)練結(jié)構(gòu)化知識圖譜為 WikiData 全量數(shù)據(jù),包含近 1300 個關(guān)系、8500萬實體、4.8 億個事實三元組,使用了 8 塊 V100 GPU 訓(xùn)練時間約為 2 周。
7. 清源CPM效果
在“故事生成”演示中,用戶可以任意填寫一段初始文本,讓模型去預(yù)測后續(xù)內(nèi)容。這些初始文本可以是任意文體:例如小說、說明文、議論文、天氣預(yù)報、體育報道、新聞報道,甚至是對話、知識問答以及數(shù)字推理,清源 CPM 都能仿照前文的風(fēng)格和規(guī)律行文如流。在此舉幾個例子驗證此單一預(yù)訓(xùn)語言練模型的多功能性。
CPM 預(yù)訓(xùn)練語言模型只需要對一個常識性問題的學(xué)習(xí),就能依照規(guī)律提問和正確回答:
能夠根據(jù)前文真實的天氣預(yù)報,像模像樣地繼續(xù)報道天氣預(yù)報(不保證正確性):
還能做一定的數(shù)理推理,模型的自動推理特性完全可以應(yīng)用在電子表格軟件中:
甚至可以續(xù)寫紅樓夢片段:
8. 小結(jié)
通過以上對預(yù)訓(xùn)練模型的初步分析,我們可以看到該領(lǐng)域的發(fā)展其實才剛剛起步,隨著基于預(yù)訓(xùn)練模型的不斷增多,對預(yù)訓(xùn)練模型的需求會越來越多,要求也會越來越高,相信在不久的將來,我們會迎來預(yù)訓(xùn)練模型及其應(yīng)用的春天。特別是中文領(lǐng)域預(yù)訓(xùn)練模型的發(fā)展,會在工業(yè)界和學(xué)術(shù)界雙向推動下,將迎來百花齊放的局面。