文章回顧了近幾年NLP的升級歷程,從三個階段的發展帶我們梳理了NLP演進的脈絡。
自然語言處理(NLP)技術正在生活的方方面面改變著我們的生活。客廳的智能音箱在跟你每天的對話中飛速進步,甚至開始跟你「插科打諢」來適應你的愛好習慣。
- 電商客服總是能在第一時間回復,可能處理完你的問題,你也並未發覺TA可能只是一個智能客服。現實版的「圖靈測試」每天都在發生。
- 經常查閱外文資料的你也許早已習慣網頁或幾家搜索引擎的一鍵翻譯,譯文的質量好到讓你覺得學外語的時間純屬浪費。
- 閑來無聊當你刷信息流或者短視頻,總是事後發現沉迷其中的時間越來越多,其實背後正是自然語言演算法平台在根據你的瀏覽習慣、注意力時長來進行的優化推薦。
由果溯因,我們希望簡單回顧近幾年NLP的躍遷升級,沿著這條技術洪流一直溯源。回到水源充沛、水系林立的技術源頭,來理解NLP演進的脈絡。
NLP兩強爭霸:OpenAI與GPT-2的「倔強」進擊
關注NLP的人們一定知道,2018年是NLP領域發展的大年。2018年6月,OpenAI發表了題為《Improving Language Understanding by Generative Pre-Training》的論文,提出基於「預訓練語言模型」的GPT,它首先利用了Transformer網路代替了LSTM作為語言模型,並在12個NLP任務中的9個任務獲得了SOTA的表現。但種種原因GPT並未獲得更大關注。
GPT的基本處理方式是在大規模語料上進行無監督預訓練,再在小得多的有監督數據集上為具體任務進行精細調節(fine-tune)的方式,不依賴針對單獨任務的模型設計技巧,可以一次性在多個任務中取得很好的表現。
直到10月,谷歌的BERT(Bidirectional Encoder Representation from Transformers)問世,一經發布便得到各界廣泛關注。BERT模型在11項NLP任務中奪得SOTA的表現,更是令谷歌技術人員宣告「BERT開啟了NLP新時代」的宣言。
而BERT其實採用了和GPT完全相同的兩階段模型,首先是無監督的語言模型預訓練;其次是使用Fine-Tuning模式解決下游任務。其不同之處在於BERT在預訓練階段採用了類似ELMO的雙向語言模型,且使用了更大數據規模用於預訓練。
BERT在改造NLP下游任務(包括序列標註,比如中文分詞、詞性標註、命名實體識別、語義角色標註等;第二類是分類任務,比如文本分類、情感計算等;句子關係判斷,比如Entailment,QA,語義改寫,自然語言推理等;生成式任務,比如機器翻譯、文本摘要、寫詩造句、看圖說話等)上面,強大的普適性和亮眼的任務表現,成為它爆紅NLP的底氣。
僅僅四個月後,OpenAI發布GPT-2。這一大規模無監督NLP模型,可以生成連貫的文本段落,刷新了7大數據集SOTA表現,並且能在未經預訓練的情況下,完成閱讀理解、問答、機器翻譯等多項不同的語言建模任務。
首先,CPT-2、BERT與GPT一樣,延續Transformer的Self-Attention(自注意)作為底層結構。OpenAI研究人員對無監督數據訓練的堅持也許來自於這樣一個思路:監督學習會造成語言模型僅能處理特定任務表現很好,而在泛化能力表現很差;而單純依靠訓練樣本的增加,很難有效實現任務擴展。
因此,他們選擇在更通用的數據集基礎上使用自注意力模塊遷移學習,構建在 zero-shot 情況下能夠執行多項不同NLP任務的模型。
與BERT的不同在於,CPT-2模型結構仍然延續了GPT1.0的「單向語言模型」。GPT-2似乎只有一個目標:給定一個文本中前面的所有單詞,預測下一個單詞。這一點倔強堅持,可以看出OpenAI的解決思路。它選擇把Transformer模型參數擴容到48層,包含15億參數的Transformer模型,找到一個800 萬網頁(WebText)數據集作為無監督訓練數據。
簡單說,GPT-2 就是對 GPT 模型的直接擴展,在超出 10 倍的數據量上進行訓練,參數量也多出了 10 倍。這讓GPT-2採用更加直接「暴力」的方式,單靠提升模型參數容量和增加訓練數據的數量來超過BERT。
GPT-2作為一個文本生成器,只要在開始輸入隻言片語,這個程序會根據自己的判斷,決定接下來應該如何寫作。簡言之,GPT-2作為通用語言模型,可以用於創建AI 寫作助手、更強大的對話機器人、無監督語言翻譯以及更好的語音識別系統。OpenAI 設想,人們可能出於惡意目的利用GPT-2來生成誤導性新聞、網上假扮他人欺詐、在社交媒體自動生產惡意或偽造內容、自動生產垃圾或釣魚郵件等內容。
所以,OpenAI在發布GPT2的同時就宣稱「這種強力的模型有遭到惡意濫用的風險」,選擇不對訓練模型做完整開源,這一舉動引來機器學習&自然語言處理界研究人員的激烈討論。無論是被外界嘲諷為對自家產品的「過分自負」,還是OpenAI出於PR目的的「故意炒作」,GPT-2 「刻意製造假新聞」的實力確實驚艷到了業內眾人。各位吃瓜群眾一邊實力吐槽,一邊又迫不及待想探究GPT-2的強大生成能力。
經過將近一年時間, GPT-2在謹慎開源和開發者的「嘗鮮」參與中,進行著眼花繚亂的更新演進。
GPT-2階段開源:帶給開發者的土味狂歡
伴隨爭議和開發者高漲的呼聲,OpenAI仍然出於謹慎考慮,選擇了分階段開源。8月以後,它分階段發布了「小型的」1.24 億參數模型(有 500MB 在磁碟上),「中型的」3.55 億參數模型(有 1.5GB 在磁碟上 ),以及 7.74 億參數模型(有 3GB 在磁碟上 )。
直到11月6日,它正式放出GPT-2最後一個部分的包含15億參數的最大版本的完整代碼。一直到完整版本公布,OpenAI並未發現任何明確的代碼、文檔或者其他濫用實證,也就是說一直擔心的「GPT-2遭到濫用」的結果並沒有發生,但OpenAI仍然認為,全面版本發布同時也會讓惡意人士有機會進一步提高檢測逃避能力。
所以,伴隨著GPT-2不同版本的陸續公布,OpenAI自身與多家復現GPT-2模型的團隊進行交流,驗證GPT-2的使用效果,同時也在避免濫用語言模型的風險,完善檢測文本生成的檢測器。
同時,OpenAI也還在與多家研究機構合作,比如對人類對語言模型產生的數字信息的敏感性的研究,對惡意利用GPT-2的可能性的研究,對GPT-2生成文本的統計可檢測性的研究。無論OpenAI出於怎樣的謹慎,隨著不同容量參數模型的發布,外界開發人員已經迫不及待進行各種方向的探索了。
2019年4月,Buzzfeed 數據科學家 Max Woolf使用Python封裝了具有 1.17 億超參數的「較小」版本的 OpenAI GPT-2 文本生成模型進行微調和生成腳本,開源了一個「GPT-2 精簡版」,從而更好地幫助人們生成一段文本,裡面可以給出很多出人意料的內容。
在OpenAI逐步開源的過程里,來自布朗大學的兩位研究生就率先自己動手複製出一個 15 億參數量的 GPT-2,並將其命名為 OpenGPT-2。過程中,他們使用自己的代碼從零開始訓練 GPT-2 模型大約只花費了 5 萬美元。所用的數據集也儘可能參照OpenAI論文里公開的方法。
有很多熱心網友的測試后表示,OpenGPT-2 的輸出文本效果優於 OpenAI 的 GPT-2 7.74 億參數版本。當然,也有人認為,並沒有比GPT-2模型生成的文本效果更好。
同時在國內,一個位於南京名叫「Zeyao Du」的開發者,在GitHub上開源了的GPT-2 Chinese,可以用來寫詩、新聞、小說和劇本,或是訓練通用語言模型。這一能夠實現逆天效果GPT-2模型,用到了15億個參數。目前他開源了預訓練結果與 Colab Demo 演示,只需要單擊三次,人們就可以生成定製的中文故事。
GPT-2模型還有更多嘗試。一個新加坡高中生Rishabh Anand開源了一個輕量級GPT-2「客戶端」——gpt2-client,它是一個GPT-2 原始倉庫的包裝器,只需5行代碼就可以實現文本生成。
來自中國的幾個研究者正在用GPT模型生成高質量的中國古典詩歌。比如論文里提到的一首《七律·一路平安》:「一聲天際雁橫秋,忽夢青城舊友游。路入青林無去馬,手攜黃牒有歸舟。平生志業商山老,何日公卿漢署留。安得相從話疇昔,一樽同醉萬山頭」。
一場平平淡淡的送別,寫得就飽含滄桑、充滿離愁。不難讓人懷疑:這個語言模型是否真的有了感情?
GPT-2模型還可以用在音樂創作上。OpenAI推出一種用於生成音樂作品的深層神經網路——MuseNet,正是GPT-2語言模型Sparse Transformer相同的通用無監督技術,允許MuseNet根據給定的音符組預測下一個音符。該模型能夠用10種不同的樂器製作4分鐘的音樂作品,並且能夠從巴赫,莫扎特,披頭士樂隊等作曲家那裡了解不同的音樂風格。它還可以令人信服地融合不同的音樂風格,以創造一個全新的音樂作品。
最讓筆者感興趣的是一位開發者通過GPT-2做出的一款AI文字冒險遊戲——「AI地牢」。通過多輪文本對話, AI就可以幫你展開一段意想不到的「騎士屠龍」征途或者「都市偵探」之旅。在未來的遊戲產業中,AI創造的故事腳本,也許可能更具想象力?
GPT-2發布的一年裡,以上開源帶來的應用足以稱之為眼花繚亂。喧鬧與繁榮背後,除了在在開源風險上的小心謹慎,OpenAI還面臨著哪些難題?
NLP的土豪賽:OpenAI聯姻微軟后的 GPT-2商業化
其實,我們從BERT和GPT-2的演進趨勢,可以看出人類利用更大容量的模型、無監督的無限訓練,可以去創造更多更好的合乎人類語言知識的內容。但這也同樣意味著要依靠超級昂貴的GPU計算時間、超大規模GPU機器學習集群、超長的模型訓練過程。這意味著這種「燒錢」模式,使得NLP的玩家最終會更加向頭部公司聚集,成為少數土豪玩家的賽場。
可以預見,如果今年OpenAI再推出GPT-3.0,大概率還是會選擇單向語言模型,但會採取更大規模的訓練數據和擴充模型,來與BERT硬剛。NLP應用領域的成績也會再次刷新。
但從另一個側面看到,如此「燒錢」的語言訓練模型的研發,尚無清晰的商業化應用前景。OpenAI也不得不面臨著「遵循技術情懷的初衷」還是「為五斗米折腰」的商業化的艱難選擇。
答案應該已然明了。就在2019年7月,OpenAI接受了微軟的10億美元投資。根據官方說法,OpenAI將與微軟合作,共同為微軟Azure雲平台開發新的人工智慧技術,並將與微軟達成一項排他性協議,進一步擴展大規模人工智慧能力,「兌現通用人工智慧(AGI)的承諾」。
其實質正是OpenAI在人工智慧研究上的「燒錢」與其商業化的尷尬,使得它更需要這樣一筆來自微軟的「贊助」。就以擁有15億參數的GPT-2模型為例,它使用256塊TPU v3訓練,每小時都要花費2048美元。可以預見,如果我們還想期待GPT-3.0的發布,其費用將主要就花在雲端的計算資源上面。
微軟將成為OpenAI獨家雲計算供應商,OpenAI的人工智慧技術也要通過Azure雲輸出。未來,OpenAI將把部分技術授權給微軟,然後由微軟把這些技術商業化,並將其出售給合作夥伴。
這筆巨額費用的支持,讓OpenAI有了更充足的底氣。如上面所總結的,GPT-2在8月份後繼續開始分步驟發布不同量級的參數模型,並在11月全部開源。顯然GPT-2未來在商業化方向上,可以更多的藉助微軟Azure的加持。比如可以未來更好的與Office365協作,參與到辦公協助的自動化文本寫作當中,參與語法錯誤修復,也可以建立更自然真實的問答系統。
曾經年少愛追夢,一心只想往前飛。AGI的理想也需要在商業實踐中照進現實。可以預見,2020年,谷歌面對微軟&OpenAI的組合,將給NLP商業化帶來更多波瀾。
作者:腦極體,微信公眾號:腦極體