引言
近期,ChatGPT 火遍圈內外,連微博熱搜都出現了它的身影。突然之間,好多許久未聯系的各行各業的同學好友都發來“問候”:ChatGPT 是什么?
其實,ChatGPT 的成功并非一朝一夕,而是 OpenAI 長達 4 年多持續努力、不懈追求取得的成果。從 2018 年的初代 GPT 開始,到 GPT-2、GPT-3、InstructGPT,以及后續一系列變體模型(統稱 GPT-3.5 系列),到如今的 ChatGPT,每一步都是不可或缺的。所以,ChatGPT 不是一次偉大創新的產物,而是許多個階段性創新持續疊加的結果。
本文從初代 GPT 開始,總結整個 GPT 系列的發展演變,主要包括思想演進、模型結構和訓練數據的變化等,如有不嚴謹之處,敬請諒解并指出。
注:
1. 本文內容大部分來源于原始論文,一部分觀點來源于其他技術大佬(文末參考中基本已列出,如有遺漏敬請諒解并指出),少量是個人總結。
2. 本文部分圖是自己總結并畫出,如需引用請注明來源,萬分感謝。
GPT
背景
讓我們把視角回到 2018 年,那個時候 NLP 在深度學習上基本還處于 word2vec 以及為不同任務做定制化深度模型的情況,雖然已經有 ELMo 這類預訓練模型出現,但是其影響力還遠遠不足。在這個背景下,GPT 第一代預訓練語言模型出現了。
GPT 原文標題為 Improving Language Understanding by Generative Pre-Training,即使用通用的預訓練模型來提升語言理解能力(Generative Pre-Training 也可理解為“生成式預訓練”)。GPT 這個名字就來源于 Generative Pre-Training。
從論文標題可以引出了兩個問題:
1. 什么是通用?在學習通用的,遷移性強的文本特征表達時,什么目標函數是有效的?
2. 有了通用的特征表達之后,如何將它遷移到不同下游任務?
GPT 使用了預訓練 + 微調的方式解決了這兩個問題。
模型結構
在預訓練階段,GPT 選擇 transformer 的 decoder 部分作為模型的主要模塊,transformer 是 2017年 google 提出的一種特征抽取模型,GPT 以多層 transformer 堆疊的方式構成了整個預訓練模型結構。
以我們現在的視角來看,選擇 transformer 還是 RNN,這個答案是顯而易見的,但是在當時那個時間點那個環境下,選擇 transformer 還是 RNN 作為預訓練模型結構并不是一個顯而易見的問題。在模型選擇時,作者發現與 RNN 相比,Transformer 具有更加結構化的記憶單元來解決長距離依賴問題,處理更長的文本信息,從而使得學習到的特征在各個任務中的遷移具有更強的魯棒性。
我們都知道,Transformer 模型一開始是用來做 seq2seq 任務的,所以它包含編碼器和解碼器兩個部分;他們兩者的區別主要是,編碼器在抽取序列中某一個詞的特征時能夠看到整個序列中所有的信息,即上文和下文同時看到;而解碼器中因為有 mask 機制的存在,使得它在編碼某一個詞的特征時只能看到自身和它之前的文本信息。GPT 模型選擇了 Transformer 的 decoder,也就是解碼器的部分,也正是因為 GPT 的預訓練目標函數選取的是標準的語言模型目標函數,使得模型在預測某一個詞的時候只考慮上文信息而不參考下文。
大家知道,BERT 在預訓練的時候選擇的不是標準的語言模型作為目標函數,而是一種 mask 語言模型,也就是在預測句子中某一個詞的時候可以同時看到它前后的所有上下文信息,類似于一種完形填空任務,所以 BERT 選擇的是 Transformer 的編碼器模塊。
編碼器和解碼器的選取倒不是 GPT 和 BERT 的區別,它們的區別主要是預訓練目標函數的選取,有人認為 GPT 選擇的是一個更難的訓練目標,它是根據前面的信息去預測下文,預測未來肯定是比完形填空難度要更大的。這也能從某種程度上解釋了為什么相同規模的 GPT 和 BERT 模型,GPT 的效果要比 BERT 差。但是從另一個角度去想,如果能夠把預測未來這個事情做好的話,它最終所能達到的效果的天花板一定是更高的,這可能也是 OpenAI 從一開始到現在一直堅持使用標準語言模型目標函數來做預訓練模型的其中一個原因吧,當然這只是一種猜想。事實證明,從 GPT-3 開始,到最近的 ChatGPT,OpenAI 所取得的令人驚艷的效果也一定程度上證明了他們的選擇的正確性。
模型訓練
訓練數據方面,初代 GPT 使用了 BooksCorpus 數據集,文本大小約 5 GB,包含 7400w+ 的句子。該數據集是由約 7000 本獨立的、不同風格類型的書籍組成。選擇該數據集主要的好處是書籍文本包含大量高質量長句,保證模型學習長距離信息依賴。
模型的一些關鍵參數為:
下游任務微調
如上圖所示,分別例舉了 NLP 中四個常見任務(文本分類、文本蘊含、文本相似度、問答任務)作為下游任務應用到 GPT 模型時,其輸入序列是如何構造的,以及對應的預測層是如何設計的。
總的來說,都是通過在序列前后添加 Start 和 Extract 特殊標識符來表示開始和結束,序列之間添加必要的 Delim 標識符來表示分隔,當然實際使用時不會直接用 “Start/Extract/Delim” 這幾個詞,而是使用某些特殊符號。基于不同下游任務構造的輸入序列,使用預訓練的 GPT 模型進行特征編碼,然后使用序列最后一個 token 的特征向量進行預測。
可以看到,不論下游任務的輸入序列怎么變,最后的預測層怎么變,中間的特征抽取模塊都是不變的,具有很好的遷移能力。
初代 GPT 總結
初代 GPT 到底做了什么?有哪些貢獻?
第一,它是最早一批提出在 NLP 任務上使用 pre-train + fine-tuning 范式的工作。
第二,GPT 的實驗證明了模型的精度和泛化能力會隨著解碼器層數增加而不斷提升,而且目前還有提升空間,如下圖:
第三,預訓練模型具有 zero-shot 的能力,并且能隨著預訓練的進行不斷增強,如下圖:
值得注意的是,上述第二和第三點,也直接預示著后續 GPT-2 和 GPT-3 的出現。
其實 pre-train + fine-tuning 在計算機視覺里面早在好多年前已經成為主流的算法,但是在 NLP 中一直沒有流行起來,主要還是因為在 NLP 里面沒有像 ImageNet 那樣大規模標好的數據集,這也導致相當一段時間內,深度學習在 NLP 的進展相對比較緩慢,直到 GPT 和 BERT 的出現才漸漸打開局面。
如果說使用大規模無標注的文本進行模型的預訓練使 NLP 的發展往前走了一大步,那么 GPT 系列一直在努力推動的 zero-shot 可以說是走了另一大步。
為了進一步驗證 zero-shot 的能力,OpenAI 在 GPT-1 提出一年后,推出了 GPT-2。
GPT-2
背景
GPT-2 原文標題為 Language Models are Unsupervised Multitask Learners,字面意思為語言模型是一種無監督多任務學習器。
標題中的多任務學習與我們常規理解的有監督學習中的多任務不太一樣,這里主要是指模型從大規模數據中學到的能力能夠直接在多個任務之間進行遷移,而不需要額外提供特定任務的數據,因此引出了 GPT-2 的主要觀點:zero-shot。
不論是 GPT-1 還是 BERT,NLP 任務中比較主流的 pre-train + fine-tuning 始終還是需要一定量的下游任務有監督數據去進行額外的訓練,在模型層面也需要額外的模塊去進行預測,仍然存在較多人工干預的成本。GPT-2 想徹底解決這個問題,通過 zero-shot,在遷移到其他任務上的時候不需要額外的標注數據,也不需要額外的模型訓練。
在 GPT-1 中,下游任務需要對不同任務的輸入序列進行改造,在序列中加入了開始符、分隔符和結束符之類的特殊標識符,但是在 zero-shot 前提下,我們無法根據不同的下游任務去添加這些標識符,因為不進行額外的微調訓練,模型在預測的時候根本不認識這些特殊標記。所以在 zero-shot 的設定下,不同任務的輸入序列應該與訓練時見到的文本長得一樣,也就是以自然語言的形式去作為輸入,例如下面兩個任務的輸入序列是這樣改造的:
機器翻譯任務:translate to french, { english text }, { french text }
閱讀理解任務:answer the question, { document }, { question }, { answer }
為什么上述輸入序列的改造是有效的?或者說為什么 zero-shot 是有效的?這里引用原文的一句話:
Our approach motivates building as large and diverse a dataset as possible in order to collect natural language demonstrations of tasks in as varied of domains and contexts as possible.
大概意思是,從一個盡可能大且多樣化的數據集中一定能收集到不同領域不同任務相關的自然語言描述示例,例如下圖中展示了英法互譯任務在自然語言中出現的示例,表明了不同任務的任務描述在語料中真實存在:
所以 GPT-2 的核心思想就是,當模型的容量非常大且數據量足夠豐富時,僅僅靠語言模型的學習便可以完成其他有監督學習的任務,不需要在下游任務微調。
模型結構
在模型結構方面,整個 GPT-2 的模型框架與 GPT-1 相同,只是做了幾個地方的調整,這些調整更多的是被當作訓練時的 trick,而不作為 GPT-2 的創新,具體為以下幾點:
1. 后置層歸一化( post-norm )改為前置層歸一化( pre-norm );
2. 在模型最后一個自注意力層之后,額外增加一個層歸一化;
3. 調整參數的初始化方式,按殘差層個數進行縮放,縮放比例為 1:sqrt{n} ;
4. 輸入序列的最大長度從 512 擴充到 1024;
其中,關于 post-norm 和 pre-norm 可以參考《Learning Deep Transformer Models for Machine Translation》。兩者的主要區別在于,post-norm 將 transformer 中每一個 block 的層歸一化放在了殘差層之后,而 pre-norm 將層歸一化放在了每個 block 的輸入位置,如下圖所示:
GPT-2 進行上述模型調整的主要原因在于,隨著模型層數不斷增加,梯度消失和梯度爆炸的風險越來越大,這些調整能夠減少預訓練過程中各層之間的方差變化,使梯度更加穩定。
最終 GPT-2 提供了四種規模的模型:
其中 117M 參數等價于 GPT-1 模型,345M 參數模型用于對標同期的 BERT-large 模型。
訓練數據與實驗效果
在訓練數據方面,為了保證 zero-shot 的效果,必須要足夠大且覆蓋面廣。所以 GPT-2 專門爬取了大量的網絡文本數據,最后得到的數據集叫 WebText。它選取了 Reddit 上的高質量帖子,最終得到 4500w 網頁鏈接,800w 有效的文本文檔,語料大小為 40G。
在實驗效果上,由于 GPT-2 主要是做 zero-shot,所以在實驗部分,很多的實驗對比都是在無監督的設定下進行的,也就是說他對比的都是無監督的算法。
從上述效果可以看到,GPT-2 在較多任務上對比無監督算法取得了一定的提升,證明了 zero-shot 的能力。但是,在很多任務上與有監督微調的方法相比還是有一些差距的,這可能也是 GPT-2 在當時影響力沒有那么大的一個原因。
與 GPT-1 的區別
整體來看,GPT-2 相比于 GPT-1 有如下幾點區別:
1. 主推 zero-shot,而 GPT-1 為 pre-train + fine-tuning;
2. 訓練數據規模更大,GPT-2 為 800w 文檔 40G,GPT-1 為 5GB;
3. 模型大小,GPT-2 最大 15 億參數,GPT-1為 1 億參數;
4. 模型結構調整,層歸一化和參數初始化方式;
5. 訓練參數,batch_size 從 64 增加到 512,上文窗口大小從 512 增加到 1024,等等;
GPT-3
背景
雖然 GPT-2 主推的 zero-shot 在創新度上有比較高的水平,但是由于其在效果上表現平平,所以在業界并沒有取得比較大的影響力,而 GPT-3 正是為了解決效果上的問題而提出的。GPT-3 不再去追求那種極致的不需要任何樣本就可以表現很好的模型,而是考慮像人類的學習方式那樣,僅僅使用極少數樣本就可以掌握某一個任務,因此就引出了 GPT-3 標題 Language Models areFew-ShotLearners。
這里的 few-shot 不是像之前的方式那樣,使用少量樣本在下游任務上去做微調,因為在 GPT-3 那樣的參數規模下,即使是參數微調的成本也是高到無法估計。
模型結構
在模型結構上,GPT-3 延續使用 GPT 模型結構,但是引入了 Sparse Transformer 中的 sparse attention 模塊(稀疏注意力)。
sparse attention 與傳統 self-attention(稱為 dense attention) 的區別在于:
dense attention:每個 token 之間兩兩計算 attention,復雜度 O(n2)
sparse attention:每個 token 只與其他 token 的一個子集計算 attention,復雜度 O(n*logn)
具體來說,sparse attention 除了相對距離不超過 k 以及相對距離為 k,2k,3k,... 的 token,其他所有 token 的注意力都設為 0,如下圖所示:
使用 sparse attention 的好處主要有以下兩點:
1.減少注意力層的計算復雜度,節約顯存和耗時,從而能夠處理更長的輸入序列;
2.具有“局部緊密相關和遠程稀疏相關”的特性,對于距離較近的上下文關注更多,對于距離較遠的上下文關注較少;
關于 sparse attention 詳情可參考《Generating Long Sequences with Sparse Transformers》。
最終 GPT-3 在訓練過程中得到了如下不同規模的模型:
其中規模最大的模型稱為 GPT-3,模型參數量為 1750 億。
下游任務評估方法
如上圖所示,GPT-3 在下游任務的評估與預測時,提供了三種不同的方法:
Zero-shot:僅使用當前任務的自然語言描述,不進行任何梯度更新;
One-shot:當前任務的自然語言描述,加上一個簡單的輸入輸出樣例,不進行任何梯度更新;
Few-shot:當前任務的自然語言描述,加上幾個簡單的輸入輸出樣例,不進行任何梯度更新;
其中 Few-shot 也被稱為 in-context learning,雖然它與 fine-tuning 一樣都需要一些有監督標注數據,但是兩者的區別是:
1.【本質區別】fine-tuning 基于標注數據對模型參數進行更新,而 in-context learning 使用標注數據時不做任何的梯度回傳,模型參數不更新;
2. in-context learning 依賴的數據量(10~100)遠遠小于 fine-tuning 一般的數據量;
最終通過大量下游任務實驗驗證,Few-shot 效果最佳,One-shot 效果次之,Zero-shot 效果最差:
上圖中,橫坐標為模型參數量,縱坐標為任務精度,圖中大量灰色線表示不同下游任務,橙色/綠色/藍色線是下游任務效果的平均值。
訓練數據
由于 GPT-3 在模型規模上的擴大,在訓練數據方面也必須進行擴充來適配更大的模型使其發揮出相應的能力。
GPT-3 使用了多個數據集,其中最大的是 CommonCrawl,原始未處理的數據達到了 45TB,其實在 GPT-2 的時候他們就有考慮使用這個數據集,但是后來還是覺得這個數據集太臟了所以沒用,但是現在 GPT-3 的模型規模太大了,使得訓練對數據量的需求也增加了很多,他們不得不重新考慮這個數據集。因此,他們必須在這個數據集上做一些額外的數據清洗工作來盡量保證數據的質量。
數據處理主要包括以下幾個部分:
1. 使用高質量數據作為正例,訓練 LR 分類算法,對 CommonCrawl 的所有文檔做初步過濾;
2. 利用公開的算法做文檔去重,減少冗余數據;
3. 加入已知的高質量數據集;
其中“高質量數據”主要是指 BERT、GPT、GPT-2 使用過的數據,最終處理完成后使用的數據規模約 570G。
如上圖所示,在實際實驗過程中,對不同數據集按照一定的比例進行采樣,這個比例不是按照原始數據量多少來劃分的,不然這里基本采樣到的就都是 common crawl 的數據了,可以看到這里 common crawl 的數據量比其他幾個多很多。進行采樣的原因主要考慮到,就算做了一些數據清洗還是覺得 common crawl 的數據質量不如其他幾個。最終采樣的時候,雖然 common crawl 的數據量是其他幾個數據集的上百倍,但是實際占比是 60%,有 40% 的數據是能夠保證質量的。
實驗分析
GPT-3 花了大部分篇幅介紹了各種 NLP 任務上的實驗結果和分析,大家如果對某個任務感興趣的話可以自行閱讀一下論文對應的章節,本文就不做詳細介紹了。
下圖是 GPT-3 的一個重要分析結果:
圖中橫坐標為計算量,可以簡單理解為模型規?;蛘邤祿浚ú恢谷绱耍v坐標為任務精度。可以看到,當我們想要線性的提升一個任務的效果時,往往需要指數級的提升模型的規模和所需的數據量。
GPT-3 的局限性
雖然 GPT-3 取得了非常亮眼的效果,但是出于嚴謹的學術態度,論文里還是客觀的分析了自己的一些局限性:
1.當生成文本長度較長時,GPT-3 還是會出現各種問題,比如重復生成一段話,前后矛盾,邏輯銜接不好等等;
2.模型和結構的局限性,對于某一些任務,比如填空類型的文本任務,使用單向的自回歸語言模型確實存在一定的局限性,這時候如果同時考慮上文和下文的話,效果很可能會更好一些;
3. 預訓練語言模型的通病,在訓練時,語料中所有的詞都被同等看待,對于一些虛詞或無意義的詞同樣需要花費很多計算量去學習,無法區分學習重點;
4.樣本有效性或者利用率過低,訓一個模型幾乎要把整個互聯網上的文本數據全都用起來,這與我們人類學習時所需要的成本存在非常大的差異,這方面也是未來人工智能研究的重點;
5. 有一個不太確定的點是,模型到底是在“學習”還是在“記憶”?我們當然希望它能夠學習,但是在使用數據量如此大的情況下,很難去判斷它到底是什么樣的;
6. 眾所周知,GPT-3 的訓練和使用成本都太大了;
7. GPT-3 跟很多深度學習模型一樣,都是不可解釋的,沒辦法知道模型內部到底是如何作出一系列決策的;
8. 模型最終呈現的效果取決于訓練數據,這會導致模型會出現各種各樣的“偏見”;
某些社會影響 —— 模型“偏見”
GPT-3 可能會被拿來做一些壞事,造成一定的社會影響。比如生成新聞稿,散布一些不實的消息,生成垃圾郵件,釣魚郵件,論文造假之類的。
這里以“種族偏見”和“性別偏見”為例:
上圖展示了模型的“種族偏見”傾向,當給模型輸入“The {種族} woman was very”時,可以根據后續預測詞的概率分布簡單分析出 GPT-3 對不同種族的人具有一定的出詞傾向性。圖中縱坐標的 0 表示一種正常水平,大于 0 表示比較正面的反饋,小于 0 表示比較負面的反饋??梢钥吹絹喼奕嗽谀P偷脑u價里算是比較高的,但是最下面的那條線是黑人,所以當一個模型對不同種族的人的差異有這么大的時候,還是比較可怕的。
上圖展示了模型的“性別偏見”,當給模型輸入 “he was very” 或 “she was very” 時,GPT-3 給出的詞的概率分布具有一定的傾向性,可能會產生一些具有偏見的詞,比如形容男人時經常出現“Lazy”。
雖然 GPT-3 存在上述問題,不過當這些社會問題被拿出來討論時,也側面反映了 GPT-3 的效果及其影響力。
與 GPT-2 的區別
整體來看,GPT-3 相比于 GPT-2 有如下幾點區別:
1.效果上,超出 GPT-2 非常多,能生成人類難以區分的新聞文章;
2.主推 few-shot,相比于 GPT-2 的 zero-shot,具有很強的創新性;
3.模型結構略微變化,采用 sparse attention 模塊;
4.海量訓練語料45TB(清洗后 570GB),相比于 GPT-2 的 40GB;
5.海量模型參數,最大
InstructGPT
背景
GPT-3 雖然在各大 NLP 任務以及文本生成的能力上令人驚艷,但是他仍然還是會生成一些帶有偏見的,不真實的,有害的造成負面社會影響的信息,而且很多時候,他并不按人類喜歡的表達方式去說話。在這個背景下,OpenAI 提出了一個概念“Alignment”,意思是模型輸出與人類真實意圖對齊,符合人類偏好。因此,為了讓模型輸出與用戶意圖更加 “align”,就有了 InstructGPT 這個工作。
InstructGPT 提出了一個理想化語言模型的三大目標:
從做研究的角度來講,其實很多時候人們并不在意“Alignment”問題,只要一個模型在評估的數據集上表現好,那基本就可以說是一個好模型;但是對于工業界來說,一個產品的安全性就顯得尤為重要,歷史上也出現過不止一次因為某個負面 case,引發社會爭議,從而導致整個產品下線的例子,特別是對于大公司來講,出現一次負面 case 通常是比較嚴重的。比如之前 google 和 facebook 就都出現過把照片中的黑人識別成黑猩猩的事件,然后隨之而來的就是產品的整改,公關道歉之類的。所以從這個角度來講,OpenAI 做 InstructGPT 的出發點是非常合理且重要的。
技術方案 —— SFT / RLHF
關于 InstructGPT 的技術方案,原文分為了三個步驟:有監督微調,獎勵模型訓練,強化學習訓練;實際上可以把它拆分成兩種技術方案,一個是有監督微調(SFT),一個是基于人類反饋的強化學習(RLHF),下面我們簡單介紹這兩種技術方案。
SFT(Supervised Fine-Tuning)
本質上來說,SFT 可以理解為人工標注了一批數據,然后去微調 GPT-3。但是值得一提的是,這里標注的數據與 GPT-3 之前用來做下游任務使用的 few-shot 格式,有非常本質的區別。
GPT-3 中的 few-shot 對于同一個下游任務,通常采用固定的任務描述方式,而且需要人去探索哪一種任務表述方式更好。顯然這種模式與真實場景下用戶的使用方式存在較大的 gap,用戶在向 GPT-3 提問時才不會采用某種固定的任務表述,而是隨心所欲地以自己的說話習慣去表達某個需求。InstructGPT 在 SFT 中標注的數據,正是為了消除這種模型預測與用戶表達習慣之間的 gap。在標注過程中,他們從 GPT-3 的用戶真實請求中采樣大量下游任務的描述,然后讓標注人員對任務描述進行續寫,從而得到該問題的高質量回答。這里用戶真實請求又被稱為某個任務的指令,即 InstructGPT 的核心思想“基于人類反饋的指令微調”。
RLHF(Reinforcement Learning from Human Feedback)
基于 SFT 得到的模型被用于后續的 RLHF 做進一步的模型優化。
如上圖所示,以摘要生成任務為例,詳細展示了如何基于人類反饋進行強化學習,最終訓練完成得到 InstructGPT 模型。主要分為三步:
1.收集人類反饋:使用初始化模型對一個樣本生成多個不同摘要,人工對多個摘要按效果進行排序,得到一批排好序的摘要樣本;
2.訓練獎勵模型:使用第1步得到的樣本集,訓練一個模型,該模型輸入為一篇文章和對應的一個摘要,模型輸出為該摘要的得分;
3.訓練策略模型:使用初始化的策略模型生成一篇文章的摘要,然后使用獎勵模型對該摘要打分,再使用打分值借助 PPO 算法重新優化策略模型;
InstructGPT 總結
總的來說,InstructGPT 相對于之前的 GPT 系列,有以下幾點值得注意:
1. 解決 GPT-3 的輸出與人類意圖之間的 Align 問題;
2. 讓具備豐富世界知識的大模型,學習“人類偏好”;
3. 標注人員明顯感覺 InstructGPT 的輸出比 GPT-3 的輸出更好,更可靠;
4. InstructGPT 在真實性,豐富度上表現更好;
5. InstructGPT 對有害結果的生成控制的更好,但是對于“偏見”沒有明顯改善;
6. 基于指令微調后,在公開任務測試集上的表現仍然良好;
7. InstructGPT 有令人意外的泛化性,在缺乏人類指令數據的任務上也表現很好;
GPT 系列進化時間線
上圖展示了從初代 GPT 到 ChatGPT 為止,OpenAI 公布的主要模型及其迭代路線。其中可能存在不太嚴謹的地方,比如 GPT3.5 的劃分。關于 code-davinci 和 text-davinci,以及整個 GPT3.5 的詳細介紹,強烈推薦閱讀這篇博客:拆解追溯 GPT-3.5 各項能力的起源。
討論 & 八卦
最后簡單羅列幾個網絡上被人提及的有趣的問題和八卦,其中每個問題均沒有官方回答,僅僅是大家和個人的一些想法,僅供參考。
OpenAI 為何一直堅持做純語言模型預訓練?
1. 純語言模型上限更高,OpenAI 一直致力于強人工智能;
2. NLG 兼容 NLU,反之不合適,做純語言模型預訓練與模型“大統一”的目標更契合;
3. 與同期競爭對手 BERT 有所區別;
從 InstructGPT 到 ChatGPT,我們是不是本質上還是回到“人工”智能那條路?像 GPT-2 和 GPT-3 那種完全的無監督還是行不通,最終不還是需要人工干預去標數據?
個人不太傾向于這種悲觀態度,我感覺人工智能目前最重要的還是要找到人工和智能之間的平衡點,而不是一味的去追求完全的無監督,無人工代價。
ChatGPT 雖然如此驚艷,但很多人仍然認為它只能算一個玩具,而不是工具?
這里“工具”想表達的意思是不一定給到驚喜,但是一定要保證可用性,不要在一些常規的或簡單的事情上出錯。目前 ChatGPT 還是沒法保證這一點。當然這也是有點見仁見智的,不可否認現在基于 ChatGPT 的插件和應用越來越多,從某種程度上來講,它已經被當成了一種工具在使用。
初代 GPT-3 到底是什么水平?以如今 ChatGPT 的標準來看,初代 GPT-3 是不是從表面上看起來很弱?
后來的實驗證明,初代 GPT-3 有著非常強的潛力。這些潛力后來被代碼訓練、有監督微調和基于人類反饋的強化學習解鎖,最終才展示出極為強大的能力。所以可以說 GPT-3 是后續所有大模型的基石。
GPT-4 什么時候來?
其實網絡上已經有很多關于 GPT-4 的八卦新聞了,網傳 GPT-4 的參數將達到 100萬億,整整比 GPT-3 大了五六百倍,不過好像 OpenAI 官方一直沒有正面回應過 GPT-4 參數量的問題,這個只有等 GPT-4 出來之后才能揭曉了,或許就在今年 2023 年?
審核編輯 :李倩
-
GPT
+關注
關注
0文章
360瀏覽量
15508 -
強化學習
+關注
關注
4文章
268瀏覽量
11305 -
OpenAI
+關注
關注
9文章
1140瀏覽量
6709
原文標題:GPT / GPT-2 / GPT-3 / InstructGPT 進化之路
文章出處:【微信號:zenRRan,微信公眾號:深度學習自然語言處理】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論