大招or刷榜?OpenAI耗資8500萬、1750億參數煉出的GPT3,它真的不香嗎?!

2020-06-04     大數據文摘

原標題:大招or刷榜?OpenAI耗資8500萬、1750億參數煉出的GPT3,它真的不香嗎?!

大數據文摘出品

作者:Andy

要說整個19年自然語言處理界,不,應該說深度學習界的流量巨星,都不得不提OpenAI的GPT2模型。

一放出就在7個Zero-Shot任務上取得SOTA,其強大的文本生成能力讓人震驚,直接彌補了BERT文本生成的缺陷,甚至連它的創造者們 OpenAI 也發言表示「Too Dangerous To Release(太危險了不能公開)」,結果在社交媒體上引起了一片爭論:有挺OpenAI派表示應該對這種模型進行限制,也有反OpenAI派表示就是炒作,「放出來估計也沒啥事」。

當然,這一系列的爭論最終的受益者無疑是OpenAI ,可算是一整年出盡了風頭,從二月到去年十一月都有GPT2的持續報道。

消停了半年,上周,OpenAI 又放了個大招:GPT3突然放出。文摘菌的朋友圈瞬間被刷爆,reddit上也進行了激烈討論。

GPT3之所以能引起這麼大關注,首先當然是爸爸GPT2的功勞。

炒作了整個19年,就那幾個模型還悄咪咪地一點點放出來,從年初一直放到年末。當然GPT2本身在生成式的效果也是毋庸置疑的,所以大家也拿著GPT2搞出了各種腦洞大開的應用,比如用它下棋,還有人把它做成一款文字冒險遊戲等等。

第二,也是GPT3自身特點有異於正常模型的地方,它非常非常非常大,訓練非常非常非常燒錢。大到什麼地步呢,相對於之前最大的T-NLG直接提高了一個量級,這是一個什麼概念,可以看看下圖

其參數量達到1750億,相當於1600個它爺爺GPT1的大小,光把它用fp16半精度載入內存都得300GB,這還不包括實際訓練中需要存儲地梯度等中間變量。因此這也導致它訓練起來非常昂貴,大概要花1200萬美金,按現在匯率摺合成人民幣相當於8500多萬元!!!

甚至因為過於昂貴,導致實驗過程中即使因為數據處理出現bug,卻也沒辦法重新訓,只能在最後評估時進行一些處理。

*其實我想知道最後數據處理的同學心理壓力有多大。

讀到這,一些細心讀者會注意到,怎麼提GPT3不是提它爸爸就是提它尺寸提它多麼壕,都不提它自身特點。就好比相親,只看對方爸爸看對方尺寸(大霧)看對方多壕,卻不關心這人到底怎樣。

那是因為雖然論文長達72頁,但得出的結論幾句話就能概括,尤其是,The Bigger The Better。

論文指路:

https://arxiv.org/abs/2005.14165

下面我們再來細細介紹這個豪橫的GPT3模型。

GPT家族提交史

首先來簡單介紹一下GPT3模型和訓練的一些細節。形式的話,之前有看到一篇《如果BERT系列模型是一個git提交史的話》的博客,非常有意思。

於是,咱們也照貓畫虎來給GPT系列做一個這樣的提交史,不光能回顧一下GPT的發展史,還能更好理解GPT3模型的細節。

初步提交:GPT

- Transformer 編碼器

+模型: 0.11B參數, 12層,768隱層大小,12頭,64頭大小,512上下文長度

+數據:BooksCorpus,1B Word Benchmark

+詞表:BPE 40000

+訓練目標:單向語言模型

提交:Improving Language Understanding by Generative Pre-Training

作者:Radford, Alec, et al

日期:Mon June 11 10: 46: 37 2018 +0000

里程碑提交:GPT2

+模型:1.54B參數, 48層,1600隱層大小,25頭,64頭大小,1024上下文長度

+數據:WebText,抓取 Reddit 上3星以上連結,40GB

+詞表:50,257

+瘋狂PR,Too Dangerous Too Release,階段性飢餓營銷

提交:Language Models are Unsupervised Multitask Learners

作者:Radford, Alec, et al.

日期:Thu Feb 14 17: 35: 48 2019 +0000

最近提交:GPT3

+模型:175B參數, 96層,12288隱層大小,96頭,128頭大小,2048上下文長度

+模型:沒說細節的 sparse attention layers

+數據:60% Common Crawl (清洗過的),22% WebText2,8% Books1,8% Books2,3% Wikipedia,合計 700 GB

提交:Language Models are Few-Shot Learners

作者:Brown, Tom B., et al.

日期:Thu May 28 15: 43: 40 2020 +0000

可以看到GPT3相比起GPT2的變化可能就是給模型增大,數據增多,這和GPT1到GPT2的變化差不多。而從GPT1到GPT2時發生這樣的變化還是很值得關注的,因為之前沒人知道給單向Transformer語言模型量級提高很大,再用高質量語料來訓,就能獲得很好的生成模型。這也是為什麼GPT都沒啥人關注,直到被BERT點名出來吊打,才有人知道有GPT這東西,一看還就只是一個Transformer解碼器。

那麼 GPT3值得關注的地方到底在什麼地方呢,那就在它厚厚的實驗分析和細節內容里了。

總結一下目前對於GPT3持贊同和反對態度的兩方意見,接下來文摘菌帶大家詳細看看這個模型的優劣勢。

正方:不失美味!整體表現出的泛化性很有價值

對於GPT3全面的實驗分析,大部分人還是買帳的。

特別GPT3主要在三個設定下進行的大量 NLP 實驗,其中包括Zero-Shot(沒有樣本,只是在上下文給出一段自然語言描述),One-shot(在上下文中給出一個樣本),還有Few-Shot(在上下文中給出一些樣本)。而一般大家比較關心的預訓練模型精調,論文里根本都沒怎麼做,直接留給未來研究了。

論文中一個最關鍵的結論就是,開篇說的那句,大家都知道的,The Bigger The Better. 對於所有的測試評估,幾乎都是越大模型表現越好,而且隨著模型的大小連續跨越4個量級都還沒有停下來的趨勢。而對比起來,精調只在一個任務上有提高,甚至會導致過擬合和災難性遺忘。

之後一個很有意思的點是,GPT2就已經有提到過的,生成虛假文本的實驗。論文中發現當模型參數量提高到175B這個量級時,人們基本上就不太能分別出是一條新聞是GPT3生成的還是真正的新聞了。看圖上就能看到50%相當於蒙著眼瞎猜,而GPT3則差不多52-53%左右,對比起來GPT2體量的差不多在62-63%左右。

這樣的結論無疑讓之前就引起的GPT2生成虛假信息擔心更加劇,因此文中也對GPT2放出一年後,其被用於散播虛假信息相關進行了分析。結果發現當然不是最早說的 「Too Dangerous Too Release「,即使放出來也沒發生什麼大事,因為GPT2可控生成太難了。當然文中,也提到現在語言模型已經強到這個地步,真的要用起來也只是時間問題,怎麼找到更好方法利用強大的生成能力。

除了上面兩點,GPT3最讓人impressive的還是它整體表現出來的泛化性,其中無論是Zero-Shot,One-Shot,還是Few-Shot,都沒有任何訓練過程。

也就是說實際測試中,完全在訓練沒看過的數據上進行預測,而同時還能表現出來一定性能。而且它展示出只要提高模型大小,這個過程可能還沒到個頭。這就不盡讓人開始想,如果繼續不斷增大,是不是最終能夠達到人類的泛化性

最近微軟又給OpenAI造了台超級計算機,恐怕OpenAI還要一條路走到黑。不過這也非常有意思,可以實際驗證一下The Bitter Lesson,還有語言模型通往智能的極限。

反方:好像吞了一盤蠟燭,沒給AI底層技術帶來任何推動

當然,既然有看完浮想聯翩的,也有看完GPT3失望無比的:什麼玩意兒,又沒有什麼大的創新,得出的結論也是大家差不多都知道的,簡直味如嚼蠟。

其中最重要的一點,GPT3相比起GPT2沒有什麼本質上的突破,模型架構還是一樣,訓練目標也都一樣。變化的只是模型大小,數據多少,而這些在這個後BERT時代並不是什麼新奇創舉。當然在GPT2的時候還是很讓人感到很新鮮,因為沒什麼人這麼做。

GPT3這樣並沒有給AI底層技術帶來任何推動,毫無疑問讓人看得很乏味。

打個比方就是,比如某些石油大國很有錢,可以投入很多錢和工程能力去修超級高樓,雖然刷新了最高樓記錄,但對於修樓技術可能並沒帶來什麼推動,也沒有人會質疑沒有修出這個高樓的美國就沒有能力去修。

這種單純的堆量級而帶來的所謂SOTA提高,意義不大,反而會讓人忽視很多更底層值得去研究的問題。

最近就有文章指出,很多引人注目的AI領域進展其實都是虛的。比如今年MLSys對81種剪枝算法調研發現,十年間可能並沒有什麼提升。還有去年關於搜尋引擎中信息檢索算法調研發現,真正里程碑其實在2009年就提出。此外最近一篇關於損失函數對比的論文發現,準確率自2006年其實就沒有提高。

同樣的,如果從模型架構,損失函數,優化策略來看GPT3,難免會感到失望,因為幾乎沒有太多變化。況且在GTP2這麼高調的情況下,對GPT3期望也不免過高。

此外,還有有些其他點,比如說過度強調參數量級與指標的對比,而沒有對few-show這些裡面的一些參數K做足夠探索,還有GPT3在一些Benchmark上的表現的並不好,比如說在SuperGLUE上。

結語

整體來說,我個人對GPT3持有的觀點還是比較正向,因為研究有很多方向,而GPT3相當於給模型大小這個方向推到了極致,而且它也在驗證The Bitter Lesson里提到的觀點,一個簡單可放大的算法,加上大量算力就可以產生不一樣的效果。事實上,它在這篇論文中展示的泛化能力分析,就可以看到這樣一種將語言模型推到極致後帶來的不同。讓人不禁想,再推下去,是否能夠真正到達人類級別的泛化力。

雖然很多大牛認為這條所謂AGI路走不太通,所以現在都在提倡自監督學習或神經生物學啟發的方法。但這也並不說明這條路的探索是無意義的,即使失敗,從中獲得的知識也必定有助於找到正確的方向

至於對GPT3反面的一些觀點,這並不只是GPT3這個模型的問題,這是當前整個NLP預訓練語言模型時代的問題,大家發現與其一頓操作猛如虎,定睛一看原地杵的提出一些新算法,還不如直接在預訓練模型這樣基本上能一定保證收益的方向上發力,收益更明顯。但這帶來的也是算力需求的飆升,只有大實驗室和大公司才有錢來研究,而沒錢沒設備的就只能坐在下面看神仙打架流口水(沒錯說的就是我)。

但這也有好處,會讓那些沒資源的小實驗室去更深地思考為什麼這些技巧架構有用,同時能否想出替代的方法

此次OpenAI重金砸出GPT3,到底是一桌美味佳肴,還是一碗糠咽菜?你有什麼看法,歡迎在評論區討論~

相關報道:

https://www.lesswrong.com/posts/ZHrpjDc3CepSeeBuE/gpt-3-a-disappointing-paper

https://leogao.dev/2020/05/29/GPT-3-A-Brief-Summary/

https://www.reddit.com/r/MachineLearning/comments/gsivhg/r_language_models_are_fewshot_learners/

https://singularityhub.com/2020/05/31/microsoft-just-built-a-world-class-supercomputer-exclusively-for-openai/

https://web.archive.org/web/20200603035349/https://venturebeat.com/2020/06/01/ai-machine-learning-openai-gpt-3-size-isnt-everything/

https://web.archive.org/web/20200529051002/https://www.sciencemag.org/news/2020/05/eye-catching-advances-some-ai-fields-are-not-real

https://www.gwern.net/newsletter/2020/05#

https://dl.acm.org/doi/abs/10.1145/3331184.3331340

https://proceedings.mlsys.org/book/296.pdf

https://arxiv.org/abs/2003.08505

文章來源: https://twgreatdaily.com/zh-tw/8U9YfnIBiuFnsJQVGQWZ.html