GPT-3:一個令人失望的語言模型

AIBigbull2050發表於2020-09-30
  2020-06-15 15:24:00

本文作者是 GPT-2 的熱心使用者,GPT-2 風靡 AI 領域的那段時間裡,他撰寫了不少相關的文章。然而當 GPT-3 的論文釋出後,身為忠實使用者的他卻感覺到了一些失望,本文他將深扒 GPT-3 中那些令人失望的地方。另注:這篇文章是作者最近在 tumblr 上發表的兩篇文章的彙總。

利益相關:我一直是 GPT-2 的熱心使用者,也寫過很多關於 GPT-2 和 transformer 模型的文章,包括 "human psycholinguists: a critical appraisal" 和 "the transformer … “explained?”。我還用 GPT-2 作為核心元件做了一個 tumblr bot 。

第一部分

這篇論文( )我還沒特別仔細地研究過,但下面幾點是我可以肯定的:

1.1:GPT-3 有多大開創性

“GPT-3”只是 GPT-2 的放大版。換句話說,這只是“就讓 transformers 變大就行了”這種方法的粗暴延伸。自 GPT-2 誕生以來,很多研究小組都在使用這種方法。

論文摘要就這一點講得很清楚:

有一些工作主要是增加語言模型中的引數數量和 / 或計算量,以此作為改進生成或任務效能的手段。[……] 一項工作直接增加了 transformer 模型的大小,並按接近的比例增加了引數量和每個令牌的 FLOPS。這方面的工作讓模型大小不斷擴張:原始論文中有 2.13 億個引數 [VSP+17],3 億個引數 [DCLT18],15 億個引數 [RWC+19],80 億引數 [SPP+19],110 億引數 [RSR+19],最近更是來到了 170 億引數 [Tur20]。

這裡提到的前兩篇論文分別是機器翻譯的原始 transformer(VSP+17)和 BERT(DCLT18)。這兩篇論文之間的引數量還沒膨脹那麼多。

第三篇(RWC+19)是 GPT-2,其引數量擴大到了 5 倍。GPT-2 論文的重點大概就是“雖然看起來這方法很笨很粗暴,但只要你擴大 transformer 就會看到神奇的結果”——而這篇 "GPT-3" 論文的論點還是一樣,只不過數字變得更大了。

“GPT-3”是一個擁有 1750 億個引數的 transformer。數字上這又是一次飛躍,但是基礎架構並沒有太大變化。

從某種意義上說,把它叫做 "GPT-3" 也挺合理的: 它就是 GPT-2 帶起來的這種風氣的延續而已

但換個角度來說,把它叫做“GPT-3”也很礙眼,而且會誤導人。GPT-2(可以說)是一項開創性的進步,因為它第一次向人們展示了大規模的 transformer 擁有多大的力量。現在大家都知道了這個道理,所以 GPT-3 完全稱不上什麼本質上的進步。(既然他們這個新的大模型能叫 "GPT-3",那麼上一段引文裡最後提到的那仨大模型也有資格叫這個名字了。)

1.2:“小樣本學習”

這篇論文好像要討好的就是 NLP 社群,只不過他們完全走反了方向。

GPT-2 論文認為,語言模型(文字預測器)在用作 NLP 基準測試的一些特定任務上可以做得很好,或者在某些場景下“至少不是很糟糕”——即使模型事先並不瞭解這些任務的細節。這主要是為了證明語言模型的能力有多強。

他們在論文中展示的“零樣本(zero-shot)”學習——就是“在文字後新增一句話總結,並將 GPT-2 的續寫(continuation)當作’摘要’來看待”這種東西——又怪又蠢,實踐中沒人想要這麼幹。這種方法更適合用來證明優秀的語言模型 " 無所不能 ",就算不是它們設計目標的任務也能搞定;重點不是說它們在這些任務中 " 表現優秀 ",而是說它們即便沒有充分的準備也能獲得不錯的效能水平。這有點像在誇獎一個小神童。

在 GPT-3 論文中,他們為語言模型引入了一種新方法,以提升模型在標準測試中的表現。現在的關鍵是根據文字的走向來 " 搞清楚 " 它們應該做什麼事情。以前是給模型一個提示(prompt),比如說:

問:法國的首都是哪裡?答:

現在則給出多個提示:

問:法國的首都是什麼?答:巴黎

問:西班牙的首都是什麼?答:馬德里

問:立陶宛的首都是什麼?答:維爾紐斯

問:巴西的首都是什麼?答:

對 NLP 社群來說,"GPT-3" 中值得關注的一點是,語言模型在標準測試集上的表現可以比我們想的要強很多,途徑就是這種多提示方法和更大的引數量。將這兩種方式結合起來後,你甚至可以在一部分任務中獲得最頂尖的成績。

我覺得有些人會認為這是很重要的,他們會覺得這表明 transformer 語言模型具備像人類那樣,只需很少的資料就 " 迅速抓住重點 " 的能力。這和 Gary Marcus 的某些看法也有關係。

但在 " 直接學習(learning on-the-fly)" 這個層面,這篇論文似乎完全沒興趣可言,這很古怪。論文中有一大堆圖表,展示的都是各種引數條件下的效能表現, 總之就是為了說明越大越好。但是我只找到了一個圖表展示的是和引數 K 相關的效能表現,K 就是提示中不同任務示例的數量。

而且這張圖展示的資料並沒那麼好看:

GPT-3:一個令人失望的語言模型

一個任務示例的表現要好於零個示例(GPT-2 論文就是零),但示例數量繼續增長下去就沒什麼效果了;顯然這裡 " 越大越好 " 的理論沒怎麼生效。

奇怪的是,這張圖的標題說明了這些是開發資料集的結果,因此不能直接與水平線給出的測試集結果對比——可他們還是這麼畫了!他們的確在其他地方報告了 SuperGLUE 的測試集結果,但是隻適用於 K=32。此外,這張圖缺少誤差線也是個問題。

1.3:基準測試

他們在這篇論文中談的全是如何在測試集的某些指標上取得出色的成績。

所以我說它就是為了討好 NLP 社群:整個社群都用這些指標衡量自己的水平,因此理所當然地,社群“必須”重視這些結果。可是到這一步,這就有點像古德哈特定律的樣子了(為刷分而刷分)。

GPT-2 並不是因為在這些任務上表現出色才脫穎而出的。它之所以有那麼高的地位,是因為它是一個非常好的語言模型,展示了一種對語言的全新理解方式。它在標準測試中做的好不好對我來說沒那麼重要,強調這一點就好像是習慣用右手的人只用左手畫了一幅畫(還畫得不怎麼樣),以此來證明他多有藝術天賦一樣。

GPT-2 的優秀之處並不在於它擅長“回答問題”,而在於它擅長所有任務,因此只盯著 " 回答問題 " 就顯得目光很短淺了。

GPT-2 為 transformer 帶來的進步太大了,所以社群甚至建立了一個新的基準測試“SuperGLUE”,因為以前的黃金標準(GLUE)現在顯得太簡單了。

GPT-3 實在沒什麼進步,甚至在 SuperGLUE 上表現都不怎麼樣。它也就相當於把人的右手綁背後還能勉強畫一幅畫的水平。

可能有人會說,10 歲的數學神童並沒有證明什麼新定理,但是他用 10 分鐘就能在高考數學捲上拿到不錯的成績,這難道不算是突破性的進步嗎?

也許是吧?有那麼一點?

1.4:煩惱

我思考這篇論文思考得越多,它就越讓我心煩意亂。本來 transformer 是非常有趣的事物。可是在 2020 年,這可能是關於 transformer 最無趣的論文了。

第二部分

2.1:再談“小樣本學習”

初讀時,我以為論文中只有一個圖展示了效能隨 K(小樣本數量)變化的情況,但我沒注意論文第 4 頁的圖 1.2。

這張圖比前文提到的那張給的資料要好些,但並不足以改變我的看法,那就是作者並沒有多大興趣來展示在文字走向上的 " 漸進式學習 "。

他們試圖用圖 1.2 證明的論點是,更大的模型會帶來更多的漸進式學習,因此,他們的整體策略——“使用大模型 + 小樣本學習以提升基準測試表現”——是讓兩個部分(大型模型,少量學習)產生一加一大於二的效果。

同樣,如果你關心的是 NLP 基準測試上的成績,那他們的說法還是很有趣的。但就整體的語言理解水平而言,我看不到有什麼明顯的進展。

2.2:關於新穎詞

他們其中一項實驗,“學習和使用新單詞”給我留下了深刻的印象,但其他實驗就沒這效果了。可是這篇論文並沒有在這裡著墨很多,這讓我很奇怪。(這部分在第 3.9.5 節和表 3.16。)這個任務與 Wug 測試聯絡很緊密——這也是 Gary Marcus 在批評 GPT-2 時很關注的一件事:

[人類的提示]“farduddle”的意思是快速地蹦蹦跳跳。這個詞的例句:

[GPT-3 延續] 有一天我和妹妹玩耍時,她越玩越興奮,開始撒歡兒似的蹦蹦跳跳。

語言學家研究人類兒童時就會涉及這類任務,過去的 NLP 模型在這方面表現很差。這方面的進展本應該得到最高的認可。作者顯然提到了他們在這方面取得的成就,但卻只是隨口一提:論文說他們嘗試了 6 次並全部成功(100%的準確度?!),但他們顯然沒把它當回事,並沒有在較大的樣本上重複實驗,測一個真實指標,並展示 w/r/t 引數下的表現,等等。可是他們在其他 40 項任務上都做了這套流程,而我覺得那些任務根本沒這麼有趣,真是讓人困惑!

2.3:關於抽象推理

除了常見的 NLP 基準測試外,他們還嘗試了一些“綜合或定性”任務(第 3.9 節)。他們的目標是闡明“小樣本學習”中學習的實際作用:

在小樣本(或單樣本和零樣本)設定下探究 GPT-3 的能力範圍的一種方法,是賦予它要求執行簡單的即時計算推理的任務,識別一種新穎的模式,即不太可能在訓練中發生,或迅速適應異常任務。

這裡的“綜合或定性”任務是:

  • 各種形式的簡單算術(例如“加兩個 2 位數”)
  • 對單個單詞的字母所做的各種解謎 / 反轉等任務
  • SAT 類比

感覺這項工作的理論基礎還不夠牢固,所以解釋起來很困難。

拿算術任務來說。我們先認可作者的前提,那就是模型不僅儲存了一些算術問題的查詢表,而且還可以即時“解決問題”。這樣,模型在這裡可能有兩種狀態(也可能是同時做的):

  1. 在訓練文字中看到許多相關數字後,模型可能已經在內部開發出了一個真正的算術模型,並且正在應用該模型來解決你我會遇到的問題;
  2. 它可能為各種抽象任務發展出了一些通用推理能力,進而可以將算術作為更通用的問題類別的特殊情況來做處理(比如說,如果有合適的提示,它也會考慮很多算術符號沒有實際含義的場景。)

只要第 1 種情況出現了,小樣本學習中的多次提示就沒什麼意義了:如果模型知道真正的(不是虛假的)算術是如何進行的(它從文字中學到了這一點),那麼再多的示例也無助於 " 定位任務 "。就是說,如果它只學會了真實的算術,就不需要告訴它“在這個任務中,+ 號是加號的標準含義”,因為它的能力就是基於這一假設的。

因此,如果我們在這裡主要看到的是第 1 種情況,那麼這個演示就並不能像作者想的那樣展示小樣本學習的意義。

如果是第 2 種情況,那麼小樣本提示確實很重要:它們在可能的形式系統的大空間中“定位了符號的含義”。但是這種情況太瘋狂了:它意味著語言模型獲得了更加一般化的智力,這可不是什麼小事情。

我不覺得作者的目的是要證明這一點。如果他們認為語言模型是通用的推理機,為什麼不強調這一點呢?人們已經充分探索過 transformer 的抽象推理能力,並且沒理由認為非常大型的特定於語言的模型可以發展出強大的通用推理能力。(當然了,也可以認為這種能力是作者的方法沒能檢測出來的文字識別 / 記憶能力的某種變體。)

我覺得作者應該是把任務分解為“知道如何做”和“知道我們現在正在做”兩個部分。用文字訓練模型可以告訴它如何做(真實的)算術,而小樣本提示會告訴模型“現在我們正在做(真實的)算術,不是你學會的其他那些內容”。

但如果你想探索這個方向,算術是非常糟糕的選項!作者在此處使用了 K=50,也就是說他們為模型提供了 50 個簡單的數學問題的正確示例,以使其“定位任務”。但如果需要 50 個示例這麼多的話,沒人可以完成這項任務。

第 50 個示例包含哪些第 49 個示例中所沒有的資訊?這裡我們要排除什麼內容?難道是要排除大部分時間都像加法的陷阱系統嗎?" 加法,只是 52 實際等於 37,其他都一樣?" 當模型必須學習真正的加法時,我們真的應該排除它嗎?

我不知道作者在這裡想做什麼,我想他們自己也許也不知道。

編者注:最後附上圖靈獎得主 Geoffrey Hinton 對 GPT-3 的評價—— 鑑於 GPT-3 在未來的驚人前景,可以得出結論:生命、宇宙和萬物的答案,就只是 4.398 萬億個引數而已。

原文連結:







來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2725289/,如需轉載,請註明出處,否則將追究法律責任。

相關文章