日常生活讓 AI 幫忙完成一些任務,已經不是新鮮事。智慧音箱 AI,可以告訴你「明天天氣怎麼樣」;翻譯軟體 AI,能準確翻譯一大段話甚至一篇文章;寫作 AI 則會作文。
但它們都只能做一件事,翻譯 AI 寫不了作文,回答 AI 也不會翻譯。它們更像一件件獨立工具,而不是一個智慧體。真正智慧的 AI 應該長怎麼樣?應該是通用的,既可以回答、寫文章,也能搞定翻譯。
最近在矽谷受熱捧的 GPT-3,就是這種 AI。回答、寫文章、翻譯都不在話下,還能寫程式碼、算公式、做表格、畫圖。
▲ GPT-3 甚至會設計看起來像西瓜的按鈕。
GPT-3 其實是語言模型。所謂語言模型,就是讓機器理解並預測人類語言的技術。如果說以前的語言模型是專才,那 GPT-3 就是通才,且樣樣都做得不錯。
當仔細回顧和整理它的誕生故事時會發現,AI 領域的明顯趨勢正浮出水面:要訓練有顛覆性進步的模型,最終比較的是資料量和演算力規模,意味著這行業的門檻越來越高,最終可能導致 AI 技術的競爭變成少數「燒得起錢」大公司的遊戲。
GPT-3 的故事要從 2018 年說起。
2018 年初,艾倫人工智慧研究所和華盛頓大學的研究人員提出 ELMo(Embedding from Language Models)模型。之前的模型無法理解上下文,不能根據語境判斷一個多義詞的正確含義,ELMo 第一次解決了這個問題。
訓練 ELMo 模型的過程,研究人員採用關鍵的方法──預先訓練。通常訓練一個模型需要大量經人工標註的數據。而在標註數據很少的情況下,訓練出來的模型精確度很差。
預先訓練則擺脫對標註數據的依賴,用大量沒有標註的語料訓練(即無監督學習),得到一套模型參數,再把這套模型參數應用於具體任務。這種模式訓練出來的語言模型證明了,在自然語言處理(以下簡稱 NLP)任務能達成很好的效果。可以說,預先訓練的成功,開創了自然語言研究的新模式。
2018 年 6 月,在 ELMo 基礎上,OpenAI 提出 GPT。GPT 全稱 Generative Pre-training,字面意思是「生成式預先訓練」。
GPT 同樣基於預先訓練模式,但和 ELMo 不同的是,加入第二階段訓練:精調(Fine-tuning,又稱「微調」),開創了「預先訓練+精調」先河。所謂精調,即在第一階段訓練好的模型基礎上,使用少量標註語料,針對具體 NLP 任務調整(即有監督學習)。
除了開創「預先訓練+精調」模式,GPT 還在特徵提取器採用更強大的 Transformer。所謂特徵提取器,就是用來提取語義特徵。Google 在 2017 年推出的 Transformer,比 ELMo 所用的特徵提取器 RNN,在綜合效果和速度方面有優勢。且資料量越大,越能突顯 Transformer 的優點。
GPT 在預先訓練階段設計一層 Transformer(層數越多規模越大),並且使用「單向語言模型」為訓練任務。上文說到,ELMo 模型能理解上下文,上文和下文的資訊都充分利用。而 GPT 和之後的更新版,堅持用單向語言模型,只使用上文資訊。
GPT 的設計思路奠定之後更新的基礎,但由於規模和效果沒有很出眾,風頭很快被 2018 年底亮相的 BERT 蓋過。
▲ 冷知識:ELMo 和 BERT 都是美國兒童節目《芝麻街》角色的名字。
BERT 由 Google 打造,刷新 11 項 NLP 任務的最好程度,顛覆整個 NLP 領域。BERT 的成功其實有 GPT 的功勞,它們大框架基本相同,都採用「預先訓練+精調」模式。差別在於,GPT 是單向語言模型,而 BERT 採用雙向語言模型。
BERT 雖然取得了巨大成功,但有兩個缺點。一,雖然採用無監督學習和有監督學習結合(即「預先訓練+精調」)模式,但還是少不了特定領域一定數量的標註數據。二,因領域標註數據有限,會導致 BERT 模型過於擬合(模型太死板,只適用訓練數據),難以應用到其他領域,即通用能力不足。
2019 年 2 月亮相的 GPT-2 解決了 BERT 的缺點。為了擺脫對標註數據的依賴,OpenAI 在設計 GPT-2 模型時,基本上採用無監督學習(即預先訓練),減少精調階段有監督學習的比重,嘗試在一些任務不精調。
其次,為了增強通用性,OpenAI 選擇範圍更廣、品質更高的數據,用 800 萬網頁的語料(40GB)訓練,幾乎涵蓋所有領域。此外,OpenAI 還增加 GPT-2 模型的規模,把參數增加到 15 億,是 GPT(1.17 億個參數)的 10 倍,是 BERT-Large(BERT 規模較大版,有 3 億個參數)的 5 倍。
GPT-2 亮相後,很快吸引整個 NLP 領域的目光。做具體 NLP 任務時(如問答、翻譯和摘要),用的都是預先訓練階段的模型,都能較好完成任務。特別是給予短文接續寫下去方面,表現十分出色。
沿著大規模預先訓練的思路,OpenAI 繼續「大水漫灌」,用更多無標註數據、更多參數和更多演算力訓練模型,終於在 2020 年 5 月推出 GPT-3。7 月,又開發了 API(應用程序接口),讓更多開發者調用 GPT-3 的預先訓練模型,徹底轟動整個 NLP 圈。
堆人、堆演算力規模
從 GPT-1 的「平平無奇」到 GPT-3 的突破,充分體現了什麼叫「大力出奇蹟」。
首先看人力。初代 GPT 的論文只有 4 位作者,GPT-2 論文有 6 位作者。到了GPT-3,論文作者猛增為 31 位。
▲ GPT-3 論文足足有 31 位作者。
且 31 位作者分工明確,有人負責訓練模型,有人負責收集和過濾數據,有人負責做具體的自然語言任務,有人負責開發更快的 GPU 內核,跟公司不同部門間合作沒啥區別。
▲ 31 位作者的分工就寫了整整一頁。
再看演算力。從初代 GPT 到 GPT-3,演算法模型基本沒有變化,都是基於 Transformer 預先訓練,但訓練資料量和模型規模十倍、千倍增長。相應地,所需演算力也越來越誇張。初代 GPT 在 8 個 GPU 訓練一個月就行,而 GPT-2 需要在 256 個 Google Cloud TPU v3 訓練(每小時 256 美元),訓練時長未知。
到 GPT-3,演算力費用已經是千萬美元等級。據 GPT-3 論文,所有模型都是在高頻寬電腦叢集的輝達 V100 GPU 訓練,訓練費用預估為 1,200 萬美元。
甚至成本過高,研究者發現一個 Bug 的情況下,沒有再訓練一次,而是把涉及部分排除於論文外。
▲ 研究人員發現一個 Bug,但由於成本問題沒有解決。
顯然,沒有強大的演算力(其實相當於財力)支持,GPT-3 根本不可能訓練出來。那麼,OpenAI 的演算力支持源自何處?這要說回一筆投資。2019 年7 月,微軟向 OpenAI 注資10 億美元。雙方協定,微軟提供 OpenAI 演算力支持,而 OpenAI 則將部分 AI 智慧財產權授權給微軟商業化。
2020 年 5 月,微軟推出專為 OpenAI 設計的超級電腦。託管在 Azure 上,包含超過 28.5 萬個處理器內核和 1 萬 GPU,每個顯卡服務器的連接速度為 1 秒 400Gbps。性能在超級電腦排名可排到前五。
最後再說 OpenAI 這家機構。馬斯克和原 Y Combinator 總裁山姆‧奧特曼主導成立於 2015 年的 OpenAI,原是純粹的非營利 AI 研究組織,但經過一次轉型和架構調整,加上引入微軟投資,現在已成為混合營利與非營利性質的企業。
一直以來,OpenAI 的目標都是創建「通用人工智慧」(Artificial General Intelligence,AGI),就像文章開頭所說,AGI 是勝任所有智力任務的 AI。
打造 AGI 的路有兩條,一是開發更強大的演算法,另一種是在現有演算法基礎上規模化。OpenAI 就是第二條路的信仰者。2019 年,OpenAI 核算自 2012 年來所有模型的計算量,包括 AlexNet 和 AlphaGo,發現最大規模 AI 模型所需演算力,已增長 30 萬倍,每 3.4 個月翻一倍。而摩爾定律指出,晶片性能翻倍週期是 18~24 個月。這就意味著,最大規模 AI 模型對演算力需求的增長,遠超過晶片性能提升。
毫無疑問,演算力已成為 NLP 研究甚至 AI 研究的壁壘。有網友指出,GPT-3 僅是開始,隨著這類工作逐步常態化,類似 OpenAI 的機構很可能形成系統性的 AI 技術壟斷。
(本文由 PingWest 授權轉載;首圖來源:shutterstock)