分類目錄:《深入理解深度學習》總目錄
相關(guān)文章:
· GPT(Generative Pre-Trained Transformer):基礎(chǔ)知識
· GPT(Generative Pre-Trained Transformer):在不同任務中使用GPT
· GPT(Generative Pre-Trained Transformer):GPT-2與Zero-shot Learning
· GPT(Generative Pre-Trained Transformer):GPT-3與Few-shot Learning
《深入理解深度學習——Transformer》系列文章介紹了Transformer,該模型最初被用于機器翻譯任務,其出色表現(xiàn)引起了學術(shù)界的極大興趣,其優(yōu)異的特征提取與語義抽象能力得到了學者的廣泛認可,于是研究人員紛紛采用Transformer作為特征提取器,推出了新一代性能更優(yōu)的預訓練語言模型。在自然語言處理領(lǐng)域,最重要的預訓練語言模型可以分為兩個系列,一個是擅長自然語言生成任務的GPT(Generative Pre-Trained Transformer)系列模型,另一個是擅長自然語言理解任務的BERT(Bidirectional Encoder Representations from Transformers)模型。
GPT是OpenAI在論文《Improving Language Understanding by Generative Pre-Training》中提出的生成式預訓練語言模型。該模型的核心思想是通過二段式的訓練,以通用語言模型加微調(diào)訓練的模式完成各項定制任務,即先通過大量無標簽的文本訓練通用的生成式語言模型,再根據(jù)具體的自然語言處理任務,利用標簽數(shù)據(jù)做微調(diào)訓練。這樣一來,GPT就可以很好地完成若干下游任務,包括分類、蘊含、相似度、多選等。對使用者來說,直接使用訓練好的模型參數(shù)作為初始狀態(tài),用少量標簽數(shù)據(jù)進行微調(diào),就可以得到針對特定領(lǐng)域與任務的高性能專用模型,不僅節(jié)省了訓練成本,還大幅提高了模型的表現(xiàn)性能,而這也是預訓練語言模型的魅力所在。在多個下游任務中,微調(diào)后的GPT系列模型的性能均超過了當時針對特定任務訓練的SOTA模型,真正達到了“一法通,萬法通”的境界。
GPT的結(jié)構(gòu):基于Transformer Decoder
GPT在無監(jiān)督訓練階段,依然采用標準的語言模型,即給定無標簽的詞匯集合
u
=
{
u
1
,
u
2
,
?
?
,
u
n
}
u=\{u_1, u_2, \cdots, u_n\}
u={u1?,u2?,?,un?},最大化以下似然函數(shù):
L
1
(
u
)
=
∑
i
log
?
P
(
u
i
∣
u
i
?
k
,
u
i
?
k
+
1
,
?
?
,
u
i
?
1
;
Θ
)
L_1(u)=\sum_i\log P(u_i | u_{i-k}, u_{i-k+1}, \cdots, u_{i-1};\Theta)
L1?(u)=i∑?logP(ui?∣ui?k?,ui?k+1?,?,ui?1?;Θ)
其中,
k
k
k是上下文窗口的大小。在模型結(jié)構(gòu)上,GPT選擇了Transformer Decoder作為其主要組成部分。如下圖所示,GPT由12層Transformer Decoder的變體組成,稱其為變體,是因為與原始的Transformer Decoder相比,GPT所用的結(jié)構(gòu)刪除了Encoder-Decoder Attention層,只保留了Masked Multi-Head Attention層和Feed Forward層。GPT如此設計結(jié)構(gòu)是合乎情理的。Transformer結(jié)構(gòu)提出之始便用于機器翻譯任務,機器翻譯是一個序列到序列的任務,因此Transformer設計了Encoder用于提取源端語言的語義特征,而用Decoder提取目標端語言的語義特征,并生成相對應的譯文。GPT的目標是服務于單序列文本的生成式任務,所以舍棄了關(guān)于Encoder的一切,包括Decoder中的Encoder-Decoder Attention層。GPT選擇Decoder也因為其具有文本生成能力,且符合標準語言模型的因果性要求。
GPT保留了Decoder中的Masked Multi-Head Attention層和Feed Forward層,并擴大了網(wǎng)絡的規(guī)模。除了將層數(shù)從6層擴展到12層,GPT還將Attention的維數(shù)擴大到768(原來為512),將Attention的頭數(shù)增加到12(原來為8),將Feed Forward層的隱層維數(shù)增加到3072(原來為2048),總參數(shù)量達到1.5億。GPT還優(yōu)化了學習率預熱算法,使用更大的BPE碼表(融合次數(shù)為40000),將激活函數(shù)ReLU改為對梯度更新更友好的高斯誤差線性單元GeLU,并將原始的正余弦構(gòu)造的位置編碼改成了待學習的位置編碼(與模型其余部分一樣,在訓練過程中學習參數(shù))。整體來說,GPT并沒有提出結(jié)構(gòu)上更新穎的改動,而是以Transformer Decoder為藍本,搭建了語言模型的骨架,稱為Transformer Block,擴大了模型的復雜度并更新了相應的訓練參數(shù)。GPT的結(jié)構(gòu)清晰,數(shù)據(jù)流如下:
- 輸入語句的前 k k k個詞通過詞表轉(zhuǎn)化為一維向量 U = { u ? k , u ? k + 1 , ? ? , u ? 1 , } U=\{u_{-k}, u_{-k+1}, \cdots, u_{-1}, \} U={u?k?,u?k+1?,?,u?1?,}
- 輸入 U U U右乘權(quán)重矩陣 W e W_e We?和 W p W_p Wp?(上圖中的Text&Position Embedding模塊,對應詞向量編碼和位置編碼模塊)轉(zhuǎn)化為特征向量 h 0 h_0 h0?: h 0 = U W e + W p h_0=UW_e+W_p h0?=UWe?+Wp?
- 經(jīng)過12層Transformer Block,最終的語義特征向量 h n h_n hn?( n = 12 n=12 n=12)的計算公式為: h l = Tansformer_Block ( h l = 1 ) h_l=\text{Tansformer\_Block}(h_{l=1}) hl?=Tansformer_Block(hl=1?)
- Softmax輸出下一個詞 u u u的概率為: P ( u ) = Softmax ( h n W e T ) P(u)=\text{Softmax}(h_nW^T_e) P(u)=Softmax(hn?WeT?)
以上為無監(jiān)督訓練階段語言模型的數(shù)據(jù)流,此階段利用
L
1
L_1
L1?似然函數(shù)作為優(yōu)化目標訓練語言模型。在監(jiān)督微調(diào)階段,GPT采用附加的線性輸出層作為針對不同任務的自適應層(每個自適應層都是并列關(guān)系,各自擁有獨立的權(quán)重矩陣
W
y
W_y
Wy?,需要根據(jù)特定任務微調(diào)訓練)。假定有帶標簽的數(shù)據(jù)集
C
C
C,其中每個實例由一系列輸入詞
x
1
,
x
2
,
?
?
,
x
m
x_1, x_2, \cdots, x_m
x1?,x2?,?,xm?和標簽
y
y
y組成。通過預訓練的GPT先將輸入轉(zhuǎn)化成語義特征
h
l
m
h_l^m
hlm?(下標
l
l
l表示層數(shù),上標
m
m
m表示輸入
x
m
x_m
xm?對應的語義特征),再經(jīng)過任務特定的線性輸出層預測
y
y
y:
P
(
y
∣
x
1
,
x
2
,
?
?
,
x
m
)
=
Softmax
(
h
i
m
W
y
)
P(y|x^1, x^2, \cdots, x^m)=\text{Softmax}(h_i^mW_y)
P(y∣x1,x2,?,xm)=Softmax(him?Wy?)
而需要優(yōu)化的目標函數(shù)也變?yōu)椋?br> L 2 = ∑ x , y log ? P ( y ∣ x 1 , x 2 , ? ? , x m ) L_2=\sum_{x, y}\log P(y|x^1, x^2, \cdots, x^m) L2?=x,y∑?logP(y∣x1,x2,?,xm)
為了使微調(diào)訓練后的模型有更好的泛化性能,在監(jiān)督微調(diào)的優(yōu)化目標函數(shù)中加入輔助優(yōu)化函數(shù)是一個已被驗證可行的方法,而且可以加速模型的微調(diào)收斂。在監(jiān)督微調(diào)訓練階段,GPT使用的優(yōu)化目標函數(shù)為:
L
3
(
C
)
=
L
2
(
C
)
+
λ
L
1
(
C
)
L_3(C) = L_2(C)+\lambda L_1(C)
L3?(C)=L2?(C)+λL1?(C)
其中, L 1 L_1 L1?是無監(jiān)督訓練階段的目標函數(shù), λ \lambda λ是輔助函數(shù)的權(quán)重常系數(shù)??傮w來說,在GPT監(jiān)督微調(diào)訓練階段,需要訓練的最主要的額外權(quán)重矩陣就是 W y W_y Wy?。文章來源:http://www.zghlxwxcb.cn/news/detail-497131.html
參考文獻:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.
[3] 車萬翔, 崔一鳴, 郭江. 自然語言處理:基于預訓練模型的方法[M]. 電子工業(yè)出版社, 2021.
[4] 邵浩, 劉一烽. 預訓練語言模型[M]. 電子工業(yè)出版社, 2021.
[5] 何晗. 自然語言處理入門[M]. 人民郵電出版社, 2019
[6] Sudharsan Ravichandiran. BERT基礎(chǔ)教程:Transformer大模型實戰(zhàn)[M]. 人民郵電出版社, 2023
[7] 吳茂貴, 王紅星. 深入淺出Embedding:原理解析與應用實戰(zhàn)[M]. 機械工業(yè)出版社, 2021.文章來源地址http://www.zghlxwxcb.cn/news/detail-497131.html
到了這里,關(guān)于深入理解深度學習——GPT(Generative Pre-Trained Transformer):基礎(chǔ)知識的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!