1750億參數,史上最大AI模型GPT-3上線:不只會寫文章、答題,還懂數學 - 知乎

「咱們訓練了 GPT-3,一種具備 1750 億參數的自迴歸語言模型,這個數字比以往任何非稀疏語言模型都多 10 倍。咱們在 few-shot 狀況下測試了它的性能。」

本週五,OpenAI 提出的 GPT-3 在社交網絡上掀起了新一陣風潮。它的參數量要比 2 月份剛剛推出的、全球最大深度學習模型 Turing NLP 大上十倍,並且不只能夠更好地答題、翻譯、寫文章,還帶有一些數學計算的能力。這樣強大的深度學習,不由讓人產生一種錯覺:真正的 AI 要來了嗎?git

首先,GPT-3 最使人驚訝的仍是模型體量,它使用的最大數據集在處理前容量達到了 45TB。根據 OpenAI 的算力統計單位 petaflops/s-days,訓練 AlphaGoZero 須要 1800-2000pfs-day,而 OpenAI 剛剛提出的 GPT-3 用了 3640pfs-day,看來擁有微軟無限算力的 OpenAI,如今真的是隨心所欲了。github

研究者們但願 GPT-3 可以成爲更通用化的 NLP 模型,解決當前 BERT 等模型的兩個不足之處:對領域內有標記數據的過度依賴,以及對於領域數據分佈的過擬合。GPT-3 致力於可以使用更少的特定領域,不作 fine-tuning 解決問題。算法

和往常同樣,GPT-3 當即放出了 GitHub 項目頁面,不過目前僅是一些生成樣本和數據集,尚未代碼:https://github.com/openai/gpt-3網絡

不過上傳的沒有那麼快其實情有可原,在 issue 裏有人道出了真相:參數這麼多,若是按照 GPT-2 十五億參數等於 6G 這麼算的話,GPT-3 模型可能要 700G,老硬盤還裝不下,不是正常人能玩的轉的。架構

2019 年 3 月機器學習先驅,阿爾伯塔大學教授 Richard S. Sutton 著名的文章《苦澀的教訓》裏開篇就曾說道:「70 年的人工智能研究史告訴咱們,利用計算能力的通常方法最終是最有效的方法。」機器學習

GPT-3 的提出或許會讓開發者落淚,大學老師沉默,黃仁勳感到肩上擔子更重了。還記得幾周前剛剛結束的 GTC 2020 嗎,英偉達 CEO 的 Keynote 上有一頁講最近幾年來人工智能領域裏最大的深度學習模型:函數

英偉達表示,自 2017 年末發佈 Tesla V100 以後,訓練最大模型的算力需求增加了 3000 倍。在這裏面 GPT-2 也不在最高的位置了,微軟今年 2 月推出的 Turing NLG(170 億參數)、英偉達的 Megatron-BERT(80 億參數)排名前列。GPT-3 要放進這個表裏,尺度表還要再向上挪一挪。佈局

另有網友吐槽,GPT-3 共 72 頁的論文長度也使人絕望:性能

下一次更大的模型,論文長度怕不是要破百了。

不過巨大的參數量帶來的文本生成效果也是頗爲可觀的,讓咱們來看看 GPT-3 究竟能不能實現寫新聞、寫小說,甚至寫論文的能力吧。學習

GPT-3:我是 GPT-2 的「究極進化版」

2019 年初,OpenAI 發佈了通用語言模型 GPT-2,可以生成連貫的文本段落,在許多語言建模基準上取得了 SOTA 性能。這一基於 Transformer 的大型語言模型共包含 15 億參數、在一個 800 萬網頁數據集上訓練而成。GPT-2 是對 GPT 模型的直接擴展,在超出 10 倍的數據量上進行訓練,參數量也多出了 10 倍。

然而,長江後浪推前浪。昨日,OpenAI 發佈 GPT-3 模型,1750 億參數量,足足是 GPT-2 的 116 倍。

GPT-3 的論文做者多達 31 人,來自 OpenAI、約翰霍普金斯大學的 Dario Amodei 等研究人員證實了在 GPT-3 中,對於全部任務,模型無需進行任何梯度更新或微調,而僅經過與模型的文本交互指定任務和少許示例便可得到很好的效果。

GPT-3 在許多 NLP 數據集上均具備出色的性能,包括翻譯、問答和文本填空任務,這還包括一些須要即時推理或領域適應的任務,例如給一句話中的單詞替換成同義詞,或執行 3 位數的數學運算。

固然,GPT-3 也能夠生成新聞報道的樣本,咱們很難將機器寫的文章與人類寫的區分開來。

新聞生成

據《華盛頓郵報》報道,通過兩天的激烈辯論,聯合衛理公會贊成了一次歷史性的分裂:要麼創立新教派,要麼則在神學和社會意義上走向保守。大部分參加五月份教會年度會議的表明投票同意增強任命 LGBTQ 神職人員的禁令,並制定新的規則「懲戒」主持同性婚禮的神職人員。可是反對這些措施的人有一個新計劃:2020 年他們將造成一個新教派「基督教衛理公會」。
《華盛頓郵報》指出,聯合衛理公會是一個自稱擁有 1250 萬會員的組織,在 20 世紀初期是「美國最大的新教教派」,可是近幾十年來它一直在萎縮。此次新的分裂將是該教會歷史上的第二次分裂。第一次發生在 1968 年,當時大概只剩下 10% 的成員組成了「福音聯合弟兄會」。《華盛頓郵報》指出,目前提出的分裂「對於多年來成員不斷流失的聯合衛理公會而言,來得正是時候」,這「在 LGBTQ 角色問題上將該教派推向了分裂邊緣」。同性婚姻並非分裂該教會的惟一問題。2016 年,該教派因跨性別神職人員的任命而分裂。北太平洋地區會議投票禁止他們擔任神職人員,而南太平洋地區會議投票容許他們擔任神職人員。

這肯定不是報刊記者撰寫的短新聞嗎?

GPT-3 用實力告訴你答案:不是。

給出標題「聯合衛理公會贊成這一歷史性分裂」和子標題「反對同性戀婚姻的人將建立本身的教派」,GPT-3 生成了上述新聞。

就問你能不能看出來?反正我認輸……

在 OpenAI 的測試中,人類評估人員也很難判斷出這篇新聞的真假,檢測準確率僅爲 12%。

不過,GPT-3 也有失手的時候。好比對於 GPT-3 生成的下列短文,人類判斷真僞的準確率達到了 61%!

根據 OpenAI 的統計,人類對 GPT-3 175B 模型生成的約 500 詞文章的判斷準確率爲 52%,不過相比於 GPT-3 control 模型(沒有語境和不斷增長的輸出隨機性且只具有 1.6 億參數的模型),GPT-3 175B 生成的文本質量要高得多。果真很暴力啊!

「牙牙學語」,GPT-3 的造句能力

給出一個新單詞及其定義,造出一個新句子。難嗎?這須要你理解單詞的意義及適用語境。OpenAI 研究者測試了 GPT-3 在這一任務上的能力:給出一個不存在的單詞(如「Gigamuru」),令 GPT-3 使用它造句。

咱們來看 GPT-3 的生成結果:

給出新單詞「Gigamuru」(表示一種日本樂器)。

GPT-3 給出的句子是:叔叔送了我一把 Gigamuru,我喜歡在家彈奏它。

嚴絲合縫,很是合理,完美!

再看一個動詞例子:

給出新單詞「screeg」(揮劍,擊劍)。

GPT-3 造出的句子是:咱們玩了幾分鐘擊劍,而後出門吃冰淇淋。

也還不錯。

接下來,咱們再來看 GPT-3 的其餘能力。

語法糾錯

給出一句帶有語法錯誤的話,讓 GPT-3 進行修改。

第一個例子中,原句裏有兩個並列的動詞「was」和「died」,GPT-3 刪除系動詞「was」,將其修改成正確的句子。

第二個例子中,原句裏 likes 後的 ourselves 是 we 的反身代詞,而這裏 like 這一動做的執行者是 Leslie,所以 likes 後即便要用反身代詞,也應該是 himself,而另外一個改法是將反身代詞改爲 we 的賓格 us,即「咱們認爲 Leslie 喜歡咱們」。

Bingo!GPT-3 答對了。

看完 GPT-3 的糾錯效果,真是英語老師欣慰,學生慚愧……

GPT-3 還能作計算題?

不止英語老師欣慰,數學老師也跑不了。GPT-3 能夠執行簡單的計算。

OpenAI 研究人員在如下 10 項任務中測試了 GPT-3 作簡單計算的能力,且無需任何任務特定的訓練。

這十項任務分別是:兩位數加減法、三位數加減法、四位數加減法、五位數加減法、兩位數乘法,以及一位數混合運算。

用於測試 GPT-3 計算能力的十項任務。

在這十項任務中,模型必須生成正確的答案。對於每項任務,該研究生成包含 2000 個隨機實例的數據集,並在這些實例上評估全部模型。

下圖展現了 GPT-3(few-shot)在這十項計算任務上的性能。從圖中能夠看到,小模型的性能較差,即便是擁有 130 億參數的模型(僅次於擁有 1750 億的 GPT-3 完整版模型)處理二位數加減法的準確率也只有 50% 左右,處理其餘運算的準確率還不到 10%。

GPT-3 在多個語言建模任務中的表現

GPT-2 發佈時在多個領域特定的語言建模任務上實現了當前最佳性能。如今,咱們來看參數和成本大量增長後的 GPT-3 效果如何。

OpenAI 在多項任務中對 GPT-3 的性能進行了測試,包括語言建模、補全、問答、翻譯、常識推理、SuperGLUE 等任務。具體結果以下表所示:

不一樣模型在全部任務上的性能,以及任務的 SOTA 性能(包括模型規模、訓練細節等信息)。

GPT-3 技術解析

近期大量研究工做代表,經過對大量文本進行預訓練,而且針對特定任務進行微調,模型的性能能夠在許多 NLP 任務以及基準測試中得到顯著提高。

最近,OpenAI 團隊訓練了 GPT-3(這是一個具備 1750 億參數的自迴歸語言模型,參數量是以前任何非稀疏語言模型的 10 倍),並在少樣本(few-shot)環境下對其性能進行了測試。在全部任務中,GPT-3 無需進行任何額外的梯度更新或微調,徹底只經過模型與文本的交互,便可直接應用於特定任務與少樣本 demo。

GPT-3 在許多 NLP 數據集上均有出色的性能,包括翻譯、問答和內容填充任務,以及多項須要實時推理或域適應的任務,如利用新單詞造句或執行三位數運算等。GPT-3 生成的新聞文章足以以假亂真,使人類評估員難以分辨。

不過,GPT-3 也有缺點。該研究團隊發現 GPT-3 (few-shot) 在文本合成和多個 NLP 數據集上的性能不夠好,還存在一些結構和算法上的缺陷。另外一個語言模型大多會有的缺陷「預訓練樣本效率較低」的問題它也有,GPT-3 在預訓練期間閱讀的文本比人一輩子讀的還要多。此外,還有可解釋性問題等。

預訓練方法

OpenAI 團隊使用的基礎預訓練方法包括模型、數據與訓練三部分。GPT-3 的訓練過程與 GPT-2 相似,但對模型大小、數據集大小與多樣性、訓練長度都進行了相對直接的擴充。關於語境學習,GPT-3 一樣使用了與 GPT-2 相似的方法,不過 GPT-3 研究團隊系統地探索了不一樣的語境學習設定。

OpenAI 團隊明確地定義了用於評估 GPT-3 的不一樣設定,包括 zero-shot、one-shot 和 few-shot。

  • Fine-Tuning (FT):微調是近幾年來最爲經常使用的方法,涉及在指望任務的特定數據集上更新通過預訓練模型的權重;
  • Few-Shot (FS):在該研究中指與 GPT-2 相似的,在推理階段爲模型提供少許任務演示,但不容許更新網絡權重的情形;
  • One-Shot (1S):單樣本與小樣本相似,不一樣的是除了對任務的天然語言描述外,僅容許提供一個任務演示;
  • Zero-Shot (0S):零次樣本除了不容許有任何演示外與單樣本相似,僅爲模型提供用於描述任務的天然語言指示。
zero-shot、one-shot、few-shot 設置與傳統微調方法的對比。

上圖以英-法翻譯任務爲例,展現了四種方法。該研究將重點放在 zero-shot、one-shot 和 few-shot 上,其目的並不是將它們做爲競品進行比較,而是做爲不一樣的問題設置。OpenAI 團隊特別強調了 few-shot 結果,由於其中許多結果僅僅略微遜色於 SOTA 微調模型。不過,用 one-shot 甚至有時是 zero-shot 與人類水平進行對比彷佛最爲公平,這也是將來工做的重要目標之一。

模型和架構

該研究使用了和 GPT-2 相同的模型和架構,包括改進的初始設置、預歸一化和 reversible tokenization。區別在於 GPT-3 在 transformer 的各層上都使用了交替密集和局部帶狀稀疏的注意力模式,相似於 Sparse Transformer [CGRS19]。

爲了研究性能對模型大小的依賴性,該研究訓練了 8 種不一樣的模型大小,涵蓋 3 個數量級,從 1.25 億參數到 1750 億個參數不等,具有 1750 億個參數的模型即爲 GPT-3。

先前的研究 [KMH+20] 代表,在有足夠訓練數據的狀況下,驗證損失的縮放比例應該近似爲模型大小的光滑冪律函數。這項研究訓練了多個不一樣大小的模型,這使得研究者能夠對驗證損失和下游語言任務檢驗該假設。

表 2.1 展現了 8 個模型的大小和架構。這裏 n_params 表示可訓練參數總量,n_layers 表示層數,d_model 表示每一個瓶頸層中的單元數量(在該研究中前饋層老是瓶頸層大小的 4 倍,即 d_ff = 4 ∗ d_model),d_head 表示每一個注意力頭的維度。全部的模型均使用 n_ctx = 2048 tokens 的語境窗口。

表 2.1:該研究所訓練 8 個模型的大小、架構和超參數信息。全部模型一共使用了 3000 億 token。

爲了最大程度地減小節點之間的數據傳輸,該研究從深度和寬度兩個方向進行跨 GPU 模型分割。而後基於跨 GPU 模型佈局的計算效率和負載平衡選擇每一個模型精確的架構參數。先前的研究 [KMH+20] 代表,在合理範圍內,驗證損失對這些參數並非特別敏感。

訓練數據集

下表介紹了 GPT-3 訓練過程當中所用的數據集。

表 2.2:用於訓練 GPT-3 的數據集。

OpenAI:其實咱們也有點玩不起了

最開始是訓練不動,後來 finetune 不起,如今到了 GPT-3 模型的時代,咱們連 forward 也要不起了。

你確定想問這樣一個問題:訓練 GPT-3 模型須要花多少錢?咱們目前還只能粗略地估計——訓練一個 BERT 模型租用雲算力要花大概 6912 美圓,訓練 GPT-2 每小時要花費 256 美圓,但 OpenAI 一直沒有透露一共要花多少小時。

相比之下,GPT-3 須要的算力(flops)是 BERT 的 1900 多倍,因此這個數字應該是千萬美圓級別的,以致於研究者在論文第九頁說:咱們發現了一個 bug,但沒錢再去從新訓練模型,因此先就這麼算了吧。

但即便這樣它的效果依然驚人。

GPT-3 的實驗結果,彷佛驗證了 Richard Sutton 去年頗具爭議的論斷,他在《苦澀的教訓》的最後寫道:「咱們應該從苦澀的教訓中學到一點:通用方法很是強大,這類方法會隨着算力的增長而繼續擴展,搜索和學習彷佛正是這樣的方法。」

關於 GPT-3 的更多詳情,參見論文:https://arxiv.org/abs/2005.14165

相關文章
相關標籤/搜索