2020年5月底OpenAI發佈了有史以來最強的NLP預訓練模型GPT-3,最大的GPT-3模型參數達到了1750億個參數。論文《Language Models are Few-Shot Learners》長達74頁已發佈在arXiv。微信
視頻講解:架構
有網友估算最大的GPT-3模型大小大約有700G,這個大小即便OpenAI公開模型,咱們通常的電腦也沒法使用。通常須要使用分佈式集羣才能把這個模型跑起來。雖然OpenAI沒有公佈論文的花費,不過有網友估計這篇論文大約花費了上千萬美圓用於模型訓練。
分佈式
如此驚人的模型在模型的設計上和訓練上有什麼特別之處嗎?答案是沒有。做者表示GPT-3的模型架構跟GPT-2是同樣的,只是使用了更多的模型參數。模型訓練也跟GPT-2是同樣的,使用預測下一個詞的方式來訓練語言模型,只不過GPT-3訓練時使用了更多的數據。
ide
既然這樣,那這隻怪獸特別之處是什麼?GPT-3論文的核心在於下圖:
學習
通常的NLP模型都是先預訓練一個語言模型,而後再使用這個語言模型來進行Fine-tuning完成不一樣的任務。好比可使用文本分類數據集Fine-tuning一個專門用於文本分類的NLP模型;可使用翻譯數據集Fine-tuning一個專門用於翻譯的數據集;可使用問答數據集Fine-tuning一個專門用於問答的數據集等等。人工智能
而GPT-3只訓練了一個語言模型,沒有針對任何任務進行Fine-tuning。可是卻能夠完成多項NLP任務,而且每一項任務均可以獲得很好的效果。如上圖所示,GPT-3做者提出了三種模型預測方式,Zero-shot,One-shot,Few-shot。spa
Zero-shot表示直接告訴GPT-3要作的事,而後讓它給出結果。好比告訴它"Translate English to French:cheese=>",模型就會輸出跟翻譯獲得的法文。.net
One-shot表示給模型提出要求後給它舉一個實際的例子:翻譯
Few-shot表示給模型提出要求後給它舉多個實際的例子:設計
GPT-3神奇的地方就在於咱們不須要Fine-tuning模型去學習翻譯的任務,它就能夠本身學會翻譯。
一樣的道理,做者使用GPT-3作了大量的實驗,完成了大量NLP任務,好比做者用它來完成了填空,翻譯,問答,閱讀理解等任務而且都取得了不錯的效果。並且它還能夠用來作數學計算好比給它輸入「Q:What is 48 plus 76?A:」,它會輸出「124」。
從圖標中咱們能夠看到兩位數三位數的加減法作的還不錯,位數過高的話準確率就會下降不少。畢竟這個模型的訓練過程當中歷來沒有學過數學,它只學習過根據前面的句子來預測後面一個詞。因此它可以從詞的預測中學習到基本的數學運算也是挺神奇的一件事。
另外它還能夠進行文章生成,而且基本上達到了人類很難判別真假的水平。給它傳入文章Title,它就能夠生成文章內容:
告訴它一個詞的用法,還能讓它進行造句:
告訴它什麼是正確的英文語法,什麼是錯誤的英文語法,它還能夠進行語法糾錯:
總結:
如今NLP任務的常規作法都是預訓練一個語言模型,而後使用語言模型對不一樣任務進行Fine-tuning,通常Fine-tuning後的一個模型就只能完成一個專門的任務。而GPT-3就像是一個全能選手,基本上全部NLP的任務它均可以勝任而且能夠獲得不錯的效果,這對NLP領域將來的發展來講多是一個新的啓發。
公衆號後臺回覆今天日期:200609,便可下載論文。
想學AI點擊下方閱讀原文:
👇
本文分享自微信公衆號 - AI MOOC人工智能平臺(AIMOOC_XLAB)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。