解析ChatGPT背后的技術(shù)演進
1、自然語言理解與語言模型
1.1 自然語言處理
自然語言處理 (NLP) 是人工智能 (AI) 的一個分支。它能夠使計算機理解、生成和處理人類語言,建立在機器語言和人類語言之間溝通的橋梁,以實現(xiàn)人機交流的目的,涉及到語言學、計算機科學以及人工智能等交叉學科。
回顧NLP的主要發(fā)展歷程,可大致分為三個階段:
- 上世紀80年代之前,人工智能萌芽階段,主要是基于規(guī)則的語言系統(tǒng);
- 80年代之后,從機器學習的興起到神經(jīng)網(wǎng)絡的引入,帶動了NLP的快速發(fā)展和商業(yè)化;
- 2017年至今,基于Attention注意力機制構(gòu)建的Transformer模型開啟了大語言模型時代;
自然語言處理
NLP可分為自然語言理解(Natural Language Understanding, NLU)和自然語言生成(Natural Language Generation, NLG)兩大部分。
自然語言理解(NLU)就是希望機器像人一樣,具備正常人的語言理解能力,由于自然語言在理解上有很多難點(多樣性、奇歧義性,知識依賴以及語言的上下文等),所以 NLU 是至今還遠不如人類的表現(xiàn)。
自然語言生成(NLG)是為了跨越人類和機器之間的溝通鴻溝,將非語言格式的數(shù)據(jù)轉(zhuǎn)換成人類可以理解的語言格式,如文章、報告等。
自然語言處理是是計算機科學領域與人工智能領域中的一個重要方向,被譽為“人工智能皇冠上的明珠”。
NLP領域世界級大師
近幾年自然語言處理的發(fā)展迅猛,尤其是2017年Transformer提出后,在NLP領域得到了普遍應用,都獲得了不錯的效果。其實,在人類尚未明了大腦是如何進行語言的模糊識別和邏輯判斷的情況下,NLP要想有突破性的進展,依然還有很長的路要走。
NLP文本處理的多種困難
1.2 語言模型
2、語言模型的發(fā)展演進
語言模型的研究范式變化是從規(guī)則到統(tǒng)計,從統(tǒng)計機器學習到基于神經(jīng)網(wǎng)絡的深度學習,這同時也是自然語言處理(NLP)發(fā)展的歷史。
語言模型發(fā)展演進
2.1 統(tǒng)計語言模型
從語言模型的鏈式定義公式來看,由于涉及到的參數(shù)量巨大,計算條件概率困難。隨后引入Markov Assumption,解決參數(shù)空間大的問題。在詞語共現(xiàn)的長度選擇做出了讓步,N-gram ML的定義為:
N較大時:
- 提供了更多的上下文信息,語境更具區(qū)分性;
- 參數(shù)多,計算代價大,需要訓練語料多,參數(shù)估計不可靠;
N較小時:
- 上下文信息少,語境不具區(qū)分性;
- 參數(shù)少、計算代價小、需要訓練語料少、參數(shù)預估可靠;
困惑度隨著N的變化而變化,N越大,參數(shù)量級以指數(shù)級增長,而困惑度越小。
2.2 神經(jīng)網(wǎng)絡語言模型
NNLM模型結(jié)構(gòu):
神經(jīng)網(wǎng)絡語言模型結(jié)構(gòu)圖
- 延續(xù)了Markov Assumption,即固定長度的歷史詞;
- 詞映射到低維空間,解決了維度災難問題;
- 詞泛化能力提升(如:相似性、類比性);
- 相似性:“movie”、“film”和“video”詞語義相近;
- 類比性:“中國” + “北京” = “日本” + “東京”;
- 三層結(jié)構(gòu):Word Embedding Layer、Hidden Layer 和 Output Layer;
缺點:
- 固定長度的歷史,缺失long term的依賴;
另外,NNLM的出現(xiàn),直接催生了詞向量化工具word2vec,從此進入詞的向量化階段。是將自然語言表示的單詞轉(zhuǎn)換為計算機能夠理解的向量形式的技術(shù)。有了一個詞的向量之后,各種基于向量的計算就可以實施,如用向量之間的相似度來度量詞之間的語義相關性。其基于的分布式假設就是出現(xiàn)在相同上下文的詞意思應該相近。Word Embedding也有其局限性,比如:難以對詞組做分布式表達;無法解決多義詞問題。此外,Word Embedding對于應用場景的依賴很強,所以針對特殊的應用場景可能需要重新訓練,這樣就會很消耗時間和資源。
word2vec的網(wǎng)絡結(jié)構(gòu)與NNML類似,在目標詞和上下文的預測上,分為倆種,分別為CBOW(上下文信息-> 中間詞)模型和Skip-gram(中間詞-> 上下文信息)模型。
word2vec技術(shù)原理
2.3 RNN
循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network, RNN)是一類以序列(sequence)數(shù)據(jù)為輸入,在序列的演進方向進行遞歸(recursion)且所有節(jié)點(循環(huán)單元)按鏈式連接的網(wǎng)絡結(jié)構(gòu)。
RNN網(wǎng)絡結(jié)構(gòu)圖
RNN設計上打破了神經(jīng)網(wǎng)絡語言模型的限制,認為詞與詞上下文信息決定了詞的語義信息,而非像前饋神經(jīng)網(wǎng)絡同N-gram一樣,每個詞只依賴前個詞,從而限制了前饋神經(jīng)網(wǎng)絡語言模型的性能;
缺點:
- 梯度消失或者爆炸(由多級偏導數(shù)連乘導致)
RNN在自然語言處理任務中,例如語音識別、語言建模、機器翻譯等領域有應用,也被用于各類時間序列預報。
2.4 LSTM
長短期記憶(Long short-term memory, LSTM),顧名思義,它具有記憶長短期信息的能力的神經(jīng)網(wǎng)絡。在1997年由Hochreiter 和 Schmidhuber 提出,在深度學習在2012年興起后,LSTM又經(jīng)過了若干代大牛的迭代,形成了比較系統(tǒng)且完整的LSTM框架,并在很多領域得到了廣泛應用。
LSTM提出的動機是為了解決上面我們提到的RNN長期依賴問題,并解決長序列訓練過程中的梯度消失和梯度爆炸問題。相比普通的RNN,LSTM能夠在更長的序列中有更好的表現(xiàn)。從RNN模型的結(jié)構(gòu)看,隨著詞的增加,之前比較長的時間片的特征會被覆蓋。因此,rnn喪失了學習連接較遠的信息的能力。長期依賴產(chǎn)生的原因是當神經(jīng)網(wǎng)絡的節(jié)點經(jīng)過許多階段的計算后,特征信息被覆蓋造成的。
例如: “小李今天上午參加了一個有趣的班級活動,在哪里有許多有趣的朋友,大家一起暢聊學習生活,共同跳舞唱歌,他覺得非常開心?!保八爸傅木褪恰靶±睢?,由于詞距離較遠,“小李”的語義信息已衰減,因此“小李”和“他”具有長依賴問題。
LSTM的核心是單元狀態(tài)(Cell State),由三個門機制來控制Cell狀態(tài),這三個門分別稱為遺忘門、輸入門和輸出門。LSTM是通過Gate機制控制特征的流通和損失;
LSTM網(wǎng)絡結(jié)構(gòu)如下:
LSTM網(wǎng)絡結(jié)構(gòu)圖
遺忘門: LSTM的第一步就是決定Cell狀態(tài)需要丟棄哪些信息。這部分操作是通過一個稱為遺忘門的 sigmoid 單元來處理的。它通過和信息來輸出一個 0-1 之間的向量,該向量里面的 0-1 值表示單元狀態(tài)中的哪些信息保留或丟棄多少。0表示不保留,1表示都保留。 遺忘門如下圖所示。
LSTM-遺忘門
輸入門: 用于更新單元狀態(tài)。首先,將先前的隱藏狀態(tài)和當前輸入傳遞給 sigmoid 函數(shù)。這決定了通過將值轉(zhuǎn)換為0到1來更新哪些值。0表示不重要,1表示重要。還將隱藏狀態(tài)和當前輸入傳遞給 tanh 函數(shù),將它們壓縮到-1和1之間以幫助調(diào)節(jié)網(wǎng)絡。然后將 sigmoid 輸出與 tanh 輸出相乘。如下圖所示:
LSTM-輸入門
??輸出門: 輸出門決定下一個隱藏狀態(tài)是什么。隱藏狀態(tài)也用于預測。首先,將先前的隱藏狀態(tài)和當前輸入傳遞給 sigmoid 函數(shù)。然后將新的單元狀態(tài)傳遞給 tanh 函數(shù)。將 tanh 輸出與 sigmoid 輸出相乘,以決定隱藏狀態(tài)應攜帶的信息。它的輸出是隱藏狀態(tài)。然后將新的單元狀態(tài)和新的隱藏狀態(tài)傳遞到下一個時間步。如下圖所示:
LSTM-輸出門
缺點:
- 超長序列時,LSTM的性能仍不理想;
- 計算效率低下;
LSTM長短期神經(jīng)網(wǎng)絡的主要應用于:
- 文本生成:訓練語言模型,在給定一些前綴的情況下生成合理的文本;
- 語音識別:可以識別說話人的聲音,也可以用來識別說話的語音;
- 機器翻譯:seq2seq翻譯模型,可以把一種語言翻譯成另一種語言;
- 時間序列預測:預測時間序列數(shù)據(jù),比如股票價格,天氣預報等;
2.5 ELMo
Word Embedding的杰出代表word2vec,本質(zhì)上是靜態(tài)的詞向量,即訓練完單詞的語義就固定了,不會跟著上下文場景的變化而改變。為了解決這個問題,出現(xiàn)了ELMO(Embedding from Language Models)的訓練方案。ELMO采用了典型的兩階段過程,第一個階段利用語言模型進行預訓練;第二個階段是在做下游任務時,從預訓練網(wǎng)絡中提取對應單詞的網(wǎng)絡各層的Word Embedding作為新特征補充到下游任務中。通過加入雙層雙向的LSTM網(wǎng)絡結(jié)構(gòu),ELMo引入上下文動態(tài)調(diào)整單詞的embedding后,多義詞問題得到了解決。另外,ELMo最早提出預訓練機制。
ELMo模型結(jié)構(gòu)圖
損失函數(shù):
損失函數(shù)由倆部分組成,分別是前向的LSTM語言模型的損失函數(shù) 和 后向的LSTM語言模型的損失函數(shù)之和,認為詞的語義信息是由詞以及詞的上下文信息來決定。
- 動態(tài)詞向量的提出,多義詞方面的得到極大改善;
例如:"我中午吃了一個蘋果。” 和 “上周我買了一部蘋果手機?!?中的蘋果,相同的詞,但具有不同的語義。 - 較早提出預訓練的概念;
缺點:
- 特征抽取能力欠缺,ELMo使用了LSTM而不是Transformer(當時transformer已經(jīng)被提出),Transformer提取特征的能力是要遠強于LSTM;
- 訓練時間長;
2.6 Transformer
Transformer是由谷歌公司提出的一種基于自注意力機制的神經(jīng)網(wǎng)絡模型,用于處理序列數(shù)據(jù)。在自然語言處理中,序列數(shù)據(jù)的輸入包括一系列文本、語音信號、圖像或視頻等。傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(RNN、LSTM)模型已經(jīng)在這些任務中取得了很好的效果,但是該模型存在著兩個主要問題:一是難以并行計算,需要訓練時間長;二是難以捕捉長距離依賴關系。為了解決這些問題,Transformer模型應運而生。
??2017年,Google機器翻譯團隊發(fā)表的經(jīng)典之作:《Attention is All You Need》中,完全拋棄了RNN和CNN等網(wǎng)絡結(jié)構(gòu),而僅僅采用Attention機制來進行機器翻譯任務,并且取得了很好的效果,隨后注意力機制也成為了研究與應用熱點。
Transformer經(jīng)典論文:Attention Is All Your Need
在介紹Transformer之前,我們先了解一下Attention機制、Self-Attention以及殘差網(wǎng)絡等。
2.6.1 Attention機制
2014年,Bengio團隊提出Attention機制,后來被廣泛應用于深度學習中的各個領域。例如在計算機視覺方向用于捕捉圖像上的感受野、NLP中用于定位關鍵token或者特征、以及隨后的Bert與GPT系列模型,都在隨后的NLP任務中取得到 state-of-the-art 的效果。
Attention機制計算流程:
Attention機制的計算邏輯大致分為三步:
優(yōu)勢:
- 可并行計算;
- 一步到位獲取全局與局部聯(lián)系,不像rnn有長依賴的局限性;
- 參數(shù)少,模型復雜度低;
缺點:
- 沒法捕捉位置信息,即沒法學習序列中的順序關系,為隨后 position embedding 的出現(xiàn)埋下來伏筆;
在transformer中,采用的是Self-Attention機制。在Attention機制中,當Q=K=V時,就是Self-Attention,主要體現(xiàn)輸入數(shù)據(jù)中的各部分的關聯(lián)。
2.6.2 殘差網(wǎng)絡(ResNet)
在深度網(wǎng)絡的學習中,網(wǎng)絡深度越深,能夠獲取的信息越多,而且特征也越豐富。但是現(xiàn)實中隨著網(wǎng)絡的加深,優(yōu)化效果反而越差,測試數(shù)據(jù)和訓練數(shù)據(jù)的準確率反而降低了。這是由于網(wǎng)絡的加深會造成梯度爆炸和梯度消失的問題。針對此類問題,由微軟實驗室中的何凱明等在2015年提出了ResNet網(wǎng)絡,緩解了該問題,并斬獲當年ImageNet競賽中分類任務第一名,目標檢測第一名。獲得COCO數(shù)據(jù)集中目標檢測第一名,圖像分割第一名。
??殘差網(wǎng)絡的特點是容易優(yōu)化,并且能夠通過增加相當?shù)纳疃葋硖岣邷蚀_率。其內(nèi)部的殘差塊使用了跳躍連接,緩解了在深度神經(jīng)網(wǎng)絡中增加深度帶來的梯度消失問題。網(wǎng)絡結(jié)構(gòu)如下:
殘差網(wǎng)絡結(jié)構(gòu)
- 殘差網(wǎng)絡的輸出 = 直接映射部分 + 殘差部分
??
- 為什么有效?
- “寬而淺”
- “窄而深”,需要網(wǎng)絡優(yōu)化,避免梯度消失;
- 殘差連接使得信息前后向傳播更加順暢,解決梯度消失問題;
- Ensemble model,降低方差;
2.6.3 Position Embedding
Transformer中的position embedding的作用是在序列模型中引入單詞位置信息,以幫助模型更好地理解序列中的單詞順序和位置關系,從而提高模型的性能和準確性。
在Transformer中,使用的是Sinusoidal Position Embedding,屬于絕對位置編碼,優(yōu)點是編碼簡單,不占用參數(shù)空間;缺點是限制了最大輸入長度。針對絕對位置編碼的缺點,在隨后的引入了相對位置編碼(Bert中應用) 和 旋轉(zhuǎn)位置編碼(RoFormer中應用)。
位置編碼:
- 絕對位置編碼:Sinusoidal Function(sin/cos),不隨著模型參數(shù)進行學習更新;
- 相對位置編碼:位置ID的embedding編碼,在模型參數(shù)中,隨著梯度得以訓練學習;
- 旋轉(zhuǎn)位置編碼:RoPE等,結(jié)合了絕對位置編碼 和 相對位置編碼的有點;
2.6.4 Transformer原理
Transformer與傳統(tǒng)的循環(huán)神經(jīng)網(wǎng)絡(RNN)和卷積神經(jīng)網(wǎng)絡(CNN)不同,Transformer僅使用自注意力機制(self-attention)來處理輸入序列和輸出序列。在模型中包含了多層encoder和decoder,每一層都由多個注意力機制模塊和前饋神經(jīng)網(wǎng)絡模塊組成。encoder用于將輸入序列編碼成一個高維特征向量表示,decoder則用于將該向量表示解碼成目標序列。通過不斷堆疊多個自注意力層和前饋神經(jīng)網(wǎng)絡層,可以構(gòu)建出Transformer模型。在Transformer模型中,還使用了殘差連接和層歸一化等技術(shù)來加速模型收斂和提高模型性能。網(wǎng)絡結(jié)構(gòu)圖如下:
Transformer的encoder、decoder模塊
Multi-Head Attention
自注意力機制的計算過程包括三個步驟:
- 計算注意力權(quán)重:計算每個位置與其他位置之間的注意力權(quán)重,即每個位置對其他位置的重要性;
- 計算加權(quán)和:將每個位置向量與注意力權(quán)重相乘,然后將它們相加,得到加權(quán)和向量;
- 線性變換:對加權(quán)和向量進行線性變換,得到最終的輸出向量;
對于Transformer模型的訓練,通常采用無監(jiān)督的方式進行預訓練,然后再進行有監(jiān)督的微調(diào)。在預訓練過程中,通常采用自編碼器或者掩碼語言模型等方式進行訓練,目標是學習輸入序列的表示。在微調(diào)過程中,通常采用有監(jiān)督的方式進行訓練,例如在機器翻譯任務中,使用平行語料進行訓練,目標是學習將輸入序列映射到目標序列的映射關系。
Transformer 中 Multi-Head Attention 中由多個 Self-Attention的拼接,可以捕獲單詞之間多種維度上的相關系數(shù) attention score。
Transformer模型的缺點:
- 需要較大的數(shù)據(jù)集來訓練;
- 計算復雜度較高,需要更多的計算資源,比如GPU等;
- 可解釋性差;
在自然語言處理的任務中,Transformer模型真正改變了我們處理文本數(shù)據(jù)的方式,推動了自然語言處理發(fā)展,包括Google的BERT、OpenAI的GPT系列模型都采用Transformer來提取特征。
2.7 BERT
BERT的全稱為Bidirectional Encoder Representation from Transformers,是一個預訓練的語言表征模型。它強調(diào)了不再像以往一樣采用傳統(tǒng)的單向語言模型或者把兩個單向語言模型進行淺層拼接的方法進行預訓練,而是采用新的masked language model(MLM),以致能生成深度的雙向語言表征。模型結(jié)構(gòu)圖如下:
BERT模型結(jié)構(gòu)圖
BERT的輸入構(gòu)成
- MLN 通過上文+下文 -> 中間詞,重在理解;而NSP重在生成;
- 12 Layers,hidden tokens: 1024;
- ”深而窄” 比 “淺而寬” 的模型更好;
- 采用雙向Transformers進行預訓練,生成深層的雙向語言表征,進一步挖掘上下文所帶來的豐富語義;
- 預訓練后,只需要對增加的輸出層進行fine-tune,就可以在各種各樣的下游任務中取得 state-of-the-art 表現(xiàn);
- 開啟了“預訓練 + 參數(shù)微調(diào)”的研究范式;
值得一提的是論文發(fā)表時提及在11個NLP(Natural Language Processing,自然語言處理)任務中獲得了新的state-of-the-art的結(jié)果,尤其是在機器閱讀理解頂級水平測試SQuAD1.1中表現(xiàn)出驚人的成績,全部兩個衡量指標上全面超越人類。
3、GPT系列模型簡介
隨著ChatGPT火遍圈內(nèi)外,連微博熱搜都出現(xiàn)了它的身影。突然之間,好多許久未聯(lián)系的各行各業(yè)的同學好友都發(fā)來“問候”:ChatGPT 是什么? 其實,ChatGPT 的成功并非一朝一夕,而是 OpenAI長達4年多持續(xù)努力、不懈追求取得的成果。從2018年的初代GPT-1開始,到GPT-2、GPT-3、InstructGPT,GPT-4,到如今的GPT-4,每一步都是不可或缺的。所以,ChatGPT不是一次偉大創(chuàng)新的產(chǎn)物,而是許多個階段性創(chuàng)新持續(xù)疊加的結(jié)果。
GPT系列模型的發(fā)展過程
3.1 GPT-1
2018年6月,OpenAI公司發(fā)布了GPT模型的初代版本,GPT-1運用了Transformer的Decoder框架中MaskSelf-attention機制。GPT-1在訓練方式上仍依賴于數(shù)據(jù)標注和模型微調(diào),同時GPT-1的語言泛化能力仍然不足,因此可以說GPT-1更接近于處理特定語言任務的專家模型,而非通用的語言模型。GPT-1的模型訓練采取的是二段式的訓練模式,第一階段利用無監(jiān)督學習進行預訓練,使用未標記的數(shù)據(jù)生成語言模型;第二階段則根據(jù)特定的下游任務來對模型進行人工微調(diào),比如分類任務、自然語言推理、語義相似度、問答和常識推理等任務。因此相較于此前NLP模型,GPT-1實際上還是一個半監(jiān)督式學習的語言模型。GPT-1在多種語言任務方面都有不錯的效果,在自然語言推理、分類、問答、對比相似度的多種測評中均超越了之前的模型。同時,GPT-1的語言泛化能力仍然不足,無法解決通用的語言任務,且和同時代的BERT模型比較的話,GPT-1在能力上要遜色于BERT。
GPT-1的模型結(jié)構(gòu)
模型結(jié)構(gòu):
- 12層 transformer decoder + 768維隱向量
- Optimizer: Adam
- Tokens:1024
損失函數(shù):
優(yōu)勢:
- 特征抽取器首次使用了強大的 Transformer,能夠捕捉到更長的記憶信息;
- Auto-regressive Language Model,根據(jù)當前信息生成下一刻的信息,適用于自然語言生成任務(NLG);
- 預訓練(無監(jiān)督)+ finetune(有監(jiān)督);
- GPT為基于預訓練的自然語言處理模型的發(fā)展提供了新的思路和方法;
劣勢
- 模型泛化能力欠缺;
- Fine-tune 需要數(shù)據(jù)量大,耗時耗力,難快速擴展;
- GPT-1 最大的問題就是同傳統(tǒng)的語言模型是一樣是單向的;
3.2 GPT-2
2019年2月,GPT-2正式發(fā)布,相較于GPT-1,GPT-2舍棄了模型微調(diào),直接通過大規(guī)模數(shù)據(jù)進行預訓練,讓模型開始具備解決多種語言任務的能力,實現(xiàn)一個泛化能力更強的語言模型,這也開始讓模型的通用性得以充分展現(xiàn)。盡管此前GPT-1在特定任務上已經(jīng)取得了不錯的效果,但實際上這類模型都需要針對單個語言任務使用大量的標注數(shù)據(jù)和模型微調(diào),因此也只能在解決特定語言任務時才能發(fā)揮作用。而GPT-2的泛化能力就體現(xiàn)在,能夠讓模型應用到不同的任務,而不需要做專門的訓練。這也更符合人腦處理語言信息的過程,因為人腦既可以讀小說,也可以看新聞,能執(zhí)行不同的語言處理任務,而且這種能力是相互關聯(lián)的。而人腦在獲取一個語句的信息時,這個信息是通用的,因此我們所期望的一個通用的語言模型,既可用于分類任務,也可以用于問答和常識推理等任務。
GPT-1和GPT-2的網(wǎng)絡結(jié)構(gòu)對比:
GPT-1和GPT-2的網(wǎng)絡結(jié)構(gòu)對比
模型參數(shù)
- 48層transformer decoder + 1600維隱向量
- Optimizer:Adam
- 字典大?。?0257
- tokens:1024
- 在每一個self-attention之后都添加了Layer Normalization
- 殘差層的初始化值用1/sqrt(N)進行縮放,N為殘差層個數(shù)
損失函數(shù):
從損失函數(shù)可以看出,相比與GPT-1拋棄了對task的有監(jiān)督微調(diào)損失部分,損失函數(shù)只針對語言模型的生成部分,開啟了NLG的新篇章。
優(yōu)勢:
- 更多的訓練語料;
- 通用化設計:不定義模型應該做什么任務,模型會自動識別出來需要做什么任務;
- 提出了zero-shot learning;
劣勢
- 模型學習遠遠不夠,人類學習是不需要大量樣本的,且有能力做到融會貫通;
- 不支持fine-tune;
3.3 GPT-3
2020年5月,GPT-3正式發(fā)布,GPT-3在訓練方式上創(chuàng)新性的引入了In-context學習(上下文學習),即在訓練模型時,在輸入的文本中加入一個或多個示例,引導模型輸出相對應內(nèi)容。比如:“請把以下中文翻譯成英文:蘋果=>apple;自然語言處理的發(fā)展歷程”就是一個典型的帶有一個示例的輸入文本。而In-context學習包含了三種模式,分別為Zero-shotLearning(零樣本學習)、One-shotLearning(單樣本學習)和Few-shotLearning(少樣本學習),zero-shot就是沒有示例只給提示,one-shot是只給一個范例,few-shot則給多個范例,實際上zero-shot在表達方式上已經(jīng)接近于人類的語言表達方式。In-context學習的優(yōu)點在于,輸入規(guī)范化的語言模板,從人類的例子和類比中去學習,無需進行模型微調(diào)和數(shù)據(jù)標注,特別是大量的標注數(shù)據(jù)需要很高的人工成本。引入In-context學習后,從最終實際效果來看,GPT-3在few-shot上有非常強勁的表現(xiàn),但同時one-shot和zero-shot的效果還不夠優(yōu)秀。
GPT-3在Few-shot上有很好的表現(xiàn)
GPT-3參數(shù)量相較于GPT-2提升了兩個數(shù)量級,達到了1750億,數(shù)據(jù)集在處理前容量達到了45TB,成了真正意義上的超大語言模型。GPT-3在許多NLP任務上相較于GPT-2及其他語言模型有更多出色表現(xiàn),特別是機器翻譯、聊天問答和文本填空。同時是在海量參數(shù)和訓練數(shù)據(jù)的支撐下,GPT-3的開始能夠完成一些比較困難的NLP任務,比如GPT-3也可以生成新聞報道和撰寫文章,并且很難將機器寫的文章與人類寫的辨別開來,甚至GPT-3在編寫SQL查詢語句,React或者JavaScript代碼也有十分優(yōu)異的表現(xiàn)。而在GPT-3強大能力的背后是對算力的巨大消耗,GPT-3的計算量達到了BERT-base的上千倍,根據(jù)OpenAI公司披露數(shù)據(jù),GPT-3的訓練費用超過1200萬美元,因此到這一階段就能看出,大語言模型逐漸成為了只有巨頭才能參與的游戲。
GPT-3 網(wǎng)絡結(jié)構(gòu)圖:
GPT-3模型網(wǎng)絡結(jié)構(gòu)圖
損失函數(shù)為:
- 預訓練(無監(jiān)督) + Fine-tune;
- Meta-learning + 增加參數(shù)模型;
- Sparse attention;
- prompt learning,One-shot
- Few-shot;
- 典型代表模型:Davinci、Curie、Babbage、Ada;
- 優(yōu)先使用內(nèi)置模型,one-shot、few-shot提升可靠性;
Zero-shot、One-shot和Few-shot的區(qū)別
缺點:
- 生成長文本時存在自相矛盾、不合邏輯,在一些任務上沒有體現(xiàn)理解能力;
- 模型太大,訓練不高效,缺乏解釋性,存在偏見;
GPT-3 應用到了更大的訓練數(shù)據(jù),參數(shù)模型更是達到了1750億,并對GPT-3生成的多個結(jié)果進行人工標注,用強化學習將標注的結(jié)果進行再次學習,得到更加相對一致、準確的生成結(jié)果。
GPT-3引入人工標注結(jié)果
GPT-1、GPT-2和GPT-3的訓練數(shù)據(jù)和參數(shù)量級對比
3.4 ChatGPT
OpenAI公司在GPT-3與ChatGPT之間發(fā)布了多個迭代版本,其中包括:2021年7月推出了Codex系列;2022年1月,引入RLHF(基于人工反饋的強化學習)得到了InstructGPT;2022下半年,推出了融合Codex和InstructGPT的ChatGPT,使用了基于人類反饋的強化學習的版本指令微調(diào)模型。ChatGPT相較于GPT-3,不僅是在文本生成等方面展現(xiàn)出了非常強大的能力,與人類對話的智能感大幅提升,而且海量數(shù)據(jù)和參數(shù)的支撐下,模型在邏輯推理與思維鏈等方面能力開始涌現(xiàn)。ChatGPT可以完成許多相對復雜的語言任務,可以完成包括自動文本生成、自動問答、多輪對話等,并且能夠主動承認錯誤,質(zhì)疑不正確的問題等。此外,ChatGPT還能編寫和調(diào)試計算機程序。
ChatGPT訓練流程
強化學習訓練流程
- 來源于兄弟模型InstructGPT;
- ChatGPT核心技術(shù)HFRL(Human Feedback Reinforcement Learning),本質(zhì)就是如何把機器的知識與人的知識對齊;
- 讓具備豐富世界知識的大模型,學習“人類偏好”;
- 標注人員明顯感覺 InstructGPT 的輸出比 GPT-3 的輸出更好,更可靠;
- PPO:Proximal Policy Optimization;
- Prompt模式較Fine-tune更具生命力;
缺點:
- 結(jié)果不穩(wěn)定;
- 推理能力有限;
- 知識更新困難;
目前ChatGPT的應用主要包括:
- 聊天機器人,可以使用ChatGPT來自由對話,使機器人能夠向用戶做出自然的回應;
- 編寫和調(diào)試計算機程序;
- 文學、媒體相關領域的創(chuàng)作,包括創(chuàng)作音樂、電視劇、童話故事、詩歌和歌詞等;
- 教育、考試、回答測試問題;
- 通過API結(jié)構(gòu)集成到其他應用中,ChatGPT在推出后僅兩個月活躍用戶就達到了一個億,成為了史上用戶增長速度最快的消費級應用程序;
3.5 GPT-4
GPT-4于2023年3月份發(fā)布,相較于之前版本的GPT模型,在推理、文本生成、對話等方面有了大幅提升之外,GPT-4邁出了從語言模型向多模態(tài)模型進化的第一步。GPT-4最大的變化即能夠接受圖像的輸入,并且能夠生成文本語言,并且在看圖能力方面有讓人驚喜的表現(xiàn)的。同時可以處理超過25000字長文本,以及寫作能力的大幅提升,能夠編歌曲、寫劇本、學習用戶寫作風格,同時包括GRE、SAT等考試能力也有大幅提升。在基于機器學習模型設計的各項基準上評估GPT-4,GPT-4明顯優(yōu)于現(xiàn)有的大型語言模型,以及大多數(shù)SOTA模型。
GPT-4訓練過程主要分為三個階段,如下圖:
- 第一階段:構(gòu)建交叉注意力架構(gòu)預訓練模型,收集數(shù)據(jù)并進行有監(jiān)督策略精調(diào);
GPT-4模型是基于GPT-3.5構(gòu)建的,增加了視覺語言模型組件(在圖形Transformer階段完成的視覺預訓練模型)。為了預訓練模型在多模態(tài)領域進行初步調(diào)優(yōu),首先會在文本數(shù)據(jù)集和多模態(tài)數(shù)據(jù)集中抽取問題,由人類標注員,給出高質(zhì)量答案,然后用這些人工標注好的數(shù)據(jù)來精調(diào)GPT-4初始模型。
- 第二階段:訓練獎勵模型(RRM)和 基于規(guī)則的獎勵模型(RBRM);
首先基于安全規(guī)則設計基于規(guī)則的獎勵模型并完成驗證。這一模型與傳統(tǒng)NLP領域的規(guī)則模型設計方法一致。 然后在數(shù)據(jù)集中抽取問題,使用第一階段生成的模型,對于每個問題,生成多個不同的回答。人類標注者對這些結(jié)果綜合考慮給出排名順序。接下來,使用這個排序結(jié)果數(shù)據(jù)來訓練GPT-4的獎勵模型。對多個排序結(jié)果,兩兩組合,形成多個訓練數(shù)據(jù)對。RM模型接受一個輸入,給出評價回答質(zhì)量的分數(shù)。這樣,對于一對訓練數(shù)據(jù),調(diào)節(jié)參數(shù)使得高質(zhì)量回答的打分比低質(zhì)量的打分要高。這一過程類似于教練或老師輔導。
- 第三階段:采用PPO強化學習來優(yōu)化策略;
PPO的核心思路在于將Policy Gradient中On-policy的訓練過程轉(zhuǎn)化為Off-policy,即將在線學習轉(zhuǎn)化為離線學習,這個轉(zhuǎn)化過程被稱之為Importance Sampling。這一階段利用第二階段訓練好的獎勵模型和基于規(guī)則的獎勵模型,靠獎勵打分來更新預訓練模型參數(shù)。在GPT-4數(shù)據(jù)集中抽取問題,使用PPO模型生成回答,并用上一階段訓練好的RM+RBRM模型給出質(zhì)量分數(shù)。把回報分數(shù)依次傳遞,由此產(chǎn)生策略梯度,通過強化學習的方式以更新PPO模型參數(shù)。
4、結(jié)語
大語言模型的出現(xiàn),為我們提供了一種新的思路,即通過大規(guī)模預訓練和微調(diào)技術(shù),讓模型具備更強大的語言理解能力,從而能夠應用于更多的NLP任務。未來,我們可以期待更加智能、靈活、高效的語言模型的出現(xiàn),它們將會給我們帶來更多新的可能性和優(yōu)秀的應用場景。
大語言模型發(fā)展時間軸
隨著Transformer的提出,近幾年大語言模型的發(fā)展迅猛,優(yōu)秀代表如GPT系列模型的出現(xiàn),將語言模型的發(fā)展提升到一個前所未有的高度。模型參數(shù)量級也在陡增,帶來了模型效果提升的同時,也引入了其他的問題。
- 在未經(jīng)大量語料訓練的領域缺乏“人類常識”和一本正經(jīng)的“胡說八道”;
- 無法處理復雜冗長或者專業(yè)性很強的語言結(jié)構(gòu);
- 需要大量的算力來支持其訓練和預測;
- 訓練成本極高,無法實時的融入新知識到大模型;
- “黑盒模型”,對其能否產(chǎn)生攻擊性或者傷害性的表述,無法做出保證;
- 存在幻覺和推理錯誤;
- 泄露隱私的可能;
- 事實檢索性和復雜計算性效果差,無法實現(xiàn)一些實時性、動態(tài)變化性的任務;
業(yè)界大佬對大模型的發(fā)展也都各持不同的觀點。
5 、[1] A Neural Probabilistic Language Model
- [2] Recurrent Neural Network Regularization
- [3] Long Short-Term Memory
- [4] Deep Contextual Word Embeddings
- [5] Attention Is All Your Need
- [6] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
- [7] Improving Language Understanding by Generative Pre-Training
- [8] Language Models are Unsupervised Multitask Learners
- [9] Language Models are Few-shot Learners
- [10] Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in Natural Language Processing
- [11] Training language models to follow instructions with human feedback
- [12] Proximal Policy Optimization Algorithms
- [13] ChatGPT: Optimizing Language Models for Dialogue
- [14] Deep Residual Learning for Image Recognition