天天看點

從GPT到chatGPT(三):GPT3(二)GPT3(二)

GPT3(二)

前言

因為上一篇文章 從GPT到chatGPT(三):GPT3(一)閱讀量挺高,給了我繼續更新對該論文進行解讀的莫大動力。這篇文章主要講原論文的第三章(Results),講的是GPT3在9個不同類型的資料集上表現如何。其實對于包括我在内的大多數讀者或工程師來說,模型的實際效果才是最重要的,是以也很有必要好好地來看看這一章的内容。另外,下文中我盡可能以翻譯為主,個人了解為輔的方式來進行,是以會以作者的第一人稱來叙述。

正文

在前文中 從GPT到chatGPT(三):GPT3(一)我們提到了有8個參數量大小不同的GPT3模型,除此以外,再加上6個更小的語言模型,我們可以去驗證 [KMH+20]提出的模型在有效訓練後,語言模組化性能(由交叉損失函數度量)和模型參數大小遵循幂律,如圖一所示。人們可能會擔心,交叉熵損失的提升僅僅來自于對訓練語料庫的虛假細節進行模組化。然而,我們将在以下幾節中看到,交叉熵損失的改善會在廣泛的自然語言範圍内帶來一緻的性能提高。

從GPT到chatGPT(三):GPT3(二)GPT3(二)

圖一 接下來,我們将用8個GPT3模型在9個不同類型的資料集上測試性能。

1 Language Modeling, Cloze, and Completion Tasks

在本節中,我們測試GPT-3在傳統的語言模組化任務上的性能,以及涉及預測單個感興趣的單詞、完成句子或段落,或在可能完成的文本之間進行選擇的相關任務

1.1 Language Modeling

我們在[RWC+19]中測量的Penn Tree Bank(PTB)[MKM+94]資料集上計算zero-shot困惑度(perplexity)。我們在這項工作中省略了4個與維基百科相關的任務,因為它們完全包含在我們的訓練資料中,我們還省略了10億個單詞的基準測試,因為我們的訓練集中包含了大量資料集。PTB避開了這些問題,因為它早于現代網際網路。

我們最大的GPT3模型在PTB上到達了新的SOTA,比原SOTA模型大幅提高了15%,達到了20.50的困惑,表一所示。注意,由于PTB是一個傳統的語言模組化資料集,是以它沒有明确的示例來定義one-shot或few-shot評估,是以我們隻測量zeo-shot。

從GPT到chatGPT(三):GPT3(二)GPT3(二)

表一

1.2 LAMBADA

LAMBADA資料集[PKL+16]測試了文本中長期依賴性的模組化——該模型被要求預測需要閱讀一段上下文的句子的最後一個單詞。最近有人提出,語言模型的不斷擴充正在使這個困難的基準任務的回報率逐漸下降。[BHT+20]反思了最近兩項最新研究成果([SSP+19]和[Tur20])之間模型尺寸翻倍所取得的1.5%的微小改進,并認為“繼續以數量級的方式擴充硬體和資料尺寸不是前進的道路”。但是,我們發現,這條路仍然充滿希望,在zero-shot設定下,GPT-3在LAMBADA上達到76%,比以前的技術水準提高了8%!!!如表二所示:

從GPT到chatGPT(三):GPT3(二)GPT3(二)

表二

LAMBADA還展示了少鏡頭學習的靈活性,因為它提供了一種解決該資料集典型問題的方法。雖然LAMBADA中的完成總是句子中的最後一個單詞,但标準語言模型無法知道這個細節。是以,它不僅為正确的結尾賦予了機率,也為段落的其他有效延續賦予了機率。這個問題在過去已經通過停止詞過濾器[RWC+19](禁止“繼續”詞)得到了部分解決。少數鏡頭設定反而讓我們将任務“框”成完形填空測試,并讓語言模型從示例中推斷出隻需要完成一個單詞。我們使用以下空白格式填寫:

從GPT到chatGPT(三):GPT3(二)GPT3(二)

GPT-3在few-shot設定中實作了86.4%的準确率,比以前的SOTA提高了18%以上。我們觀察到,few-shot性能随着模型尺寸的增加而顯著提高,如圖2所示。另外,one-shot總是比zero-shot的效果更差,也許這是因為所有模型仍然需要幾個示例來識别模式。

從GPT到chatGPT(三):GPT3(二)GPT3(二)

圖二 值得注意的是,對測試集污染的分析表明,我們的訓練資料中似乎存在大量LAMBADA資料集——然而,第4章中進行的分析表明對性能的影響微不足道。 (這個坑看來隻能以後再填了)

1.3 HellaSwag

HellaSwag資料集[ZHB+19]涉及選擇故事或指令集的最佳結尾。這些例子對語言模型來說是困難的,而對人類來說是容易的(準确率達到95.6%)。GPT-3在zero-shot中實作了78.1%的準确性,在few-shot中達到了79.3%的準确性,超過了fine-tune的1.5B參數語言模型[ZHR+19]的75.4%的準确性,但仍遠低于fine-tune的多任務模型ALUM實作的85.6%的SOTA效果,如表二所示。

1.4 StoryCloze

我們接下來在StoryCloze 2016資料集[MCH+16]上評估GPT-3,這涉及為五個句子長的故事選擇正确的結尾句子。這裡,GPT-3在zero-shot中達到83.2%,在few-shot中(K=70)達到87.7%。這仍然比使用基于BERT的模型[LDL19]的微調SOTA低4.1%,但比之前的zero-shot模型提高了大約10%,如表二所示。

2 Closed Book Question Answering

在本節中,我們衡量GPT-3回答有關廣泛事實知識的問題的能力。

由于可能的查詢量巨大,通常通過使用資訊檢索系統和文本生成模型(根據輸入的query和檢索系統召回的文本)來查找/生成相關文本來完成此任務。由于此設定允許系統搜尋并條件化可能包含答案的文本,是以稱為“開卷”。[RS20]最近證明,一個大型語言模型可以在不依賴輔助資訊的情況下,以驚人的速度直接回答問題。他們将這種限制性更強的評估設定稱為“閉卷”。他們的研究表明,更高容量的模型也可以表現得更好,我們用GPT-3測試了這一假設。

我們在[RS20]中的三個資料集上評估GPT-3:Natural Questions[KPR+19]、WebQuestions[BCFL13]和TriviaQA[JCWZ17],使用相同的分割。請注意,我們使用的few-shot、one-shot和zero-shot評估比以前的閉卷QA工作更為嚴格:除了不允許外部内容輔助外,也不允許對問答資料集本身進行微調。

GPT3和一些SOTA模型的對比如下表三所示:

從GPT到chatGPT(三):GPT3(二)GPT3(二)

表三

可以看到,在TriviaQA資料集上,GPT3甚至超過了fintune的模型和"開卷"的模型。

但是在NAtrualQS和WebQS資料集上,效果要差一些,而且我們發現從zero-shot到few-shot,效果提升十分明顯。我們猜測可能是GPT3的訓練資料分布和這兩個資料集差距較大,是以效果較差,而且通過few-shot,GPT3也在努力試圖适應這兩個資料集的分布。

3 Translation

如第上一篇文章所述,我們的大部分資料都是從原始Common Crawl中導出的,隻有基于品質的過濾。盡管GPT-3的訓練資料仍然主要是英語(按字數計算占93%),但它也包含7%的其他語言文本。這些語言記錄在補充材料中。為了更好地了解翻譯能力,我們還擴充了我們的分析,以包括另外兩種常用語言,德語和羅馬尼亞語。

現有的無監督機器翻譯方法通常将一對單語資料集上的預處理與反向翻譯[SHB15]結合起來,以受控的方式橋接兩種語言。相比之下,GPT-3從以自然方式将多種語言混合在一起的訓練資料中學習,在單詞、句子和文檔級别将它們組合在一起。GPT-3還使用一個單獨的訓練目标,該目标不是為任何任務特别定制或設計的。然而,我們的一次/幾次拍攝設定與之前的無監督工作沒有嚴格的可比性,因為它們使用了少量成對的示例(1或64)。這對應于多達一頁或兩頁的上下文訓練資料。(個人了解這段話,就是說GPT3不是專門拿來做翻譯任務的,是以和專門的翻譯模型進行對比不太公平,而且GPT3訓練語料是多國語言,且英語占了絕大部分,是以效果差是很正常的。)

結果見表四。zero-shot的GPT-3,僅接收任務的自然語言描述,仍然不如最近的無監督NMT結果。然而,僅為每個翻譯任務提供一個示例示範,就可以将性能提高7個BLEU以上,并與之前的工作接近競争性能。GPT-3在few-shot下進一步提高了另一個4 BLEU,達到先前的無監督NMT工作的平均性能。GPT-3在性能上有明顯的偏差,這取決于語言方向。對于所研究的三種輸入語言,GPT-3在翻譯成英語時顯著優于先前的無監督NMT工作,但在另一方向翻譯時表現不佳。En-Ro的性能是一個明顯的異常值,比之前的無監督NMT工作差很多。由于重複使用GPT-2的位元組級BPE标記器,這可能是一個弱點,GPT-2是為幾乎完全英語的訓練資料集開發的。對于Fr-En和De-En來說,few-shot的GPT-3能夠超過我們所能找到的最佳監督結果,但由于我們對文獻的不熟悉,以及這些是非競争性基準,我們懷疑這些結果是否代表了真正的技術水準。對于Ro-En,few-shotGPT-3隻比SOTA少不到0.5BLEU,這是通過組合無監督預訓練、對608K标記示例的監督微調和反向翻譯實作的[LHCG19b]。

從GPT到chatGPT(三):GPT3(二)GPT3(二)

表四

繼續閱讀