AI大模型的基石——Transformer
現(xiàn)有的大模型幾乎都是在Tranformer的基礎(chǔ)上開發(fā)的,可以說Tranformer就是大模型的基石。這篇文章,作者給我們大家介紹了Tranformer的相關(guān)知識,一起來看看。
查閱大模型相關(guān)資料時(shí),經(jīng)常看到NLP、LLM、GPT、ChatGPT、Transformer……這些都是什么呢,之間又存在什么關(guān)系呢?
一、關(guān)系初識
NLP自然語言處理,是人工智能領(lǐng)域的一個(gè)分支,是一種學(xué)科/應(yīng)用領(lǐng)域。而LLM大型語言模型,是NLP領(lǐng)域中的一種特定類型的語言模型,是指一個(gè)廣泛的分類,涵蓋了所有使用大量數(shù)據(jù)進(jìn)行訓(xùn)練的、能夠處理和生成自然語言的AI模型。而GPT是這一類模型中的一個(gè)特定例子,是LLM的一種實(shí)現(xiàn),通過海量數(shù)據(jù)訓(xùn)練的深度學(xué)習(xí)模型,能夠識別人的語言、執(zhí)行語言類任務(wù),并擁有大量參數(shù)。它使用Transformer架構(gòu),并通過大規(guī)模的預(yù)訓(xùn)練,學(xué)習(xí)語言的模式和結(jié)構(gòu);ChatGPT則是基于這些內(nèi)容而實(shí)現(xiàn)出來供我們使用的產(chǎn)品。
1.基于以上的了解,可將LLM、GPT、Transformer、ChatGPT的關(guān)系用下圖表示:
可見Transformer是基礎(chǔ)架構(gòu),LLM是建立在這種架構(gòu)上的一類復(fù)雜系統(tǒng),GPT是LLM中的一種特定實(shí)現(xiàn),并通過大量的預(yù)訓(xùn)練,獲得了強(qiáng)大的語言處理能力。而已發(fā)布的ChatGPT使用了GPT技術(shù)進(jìn)行了產(chǎn)品的呈現(xiàn)。
2.為了更好理解LLM、GPT、Transformer三者的關(guān)系,我們可將他比作建筑的不同部分:
1)Transformer:基礎(chǔ)結(jié)構(gòu)
將其想象為一座大樓的框架,Transformer提供了基本的支撐和形狀,里面詳細(xì)設(shè)計(jì)為空,決定了建筑的整體設(shè)計(jì)和功能;
2)LLM:整體建筑
可理解為是建立在前面框架上的整體建筑,不僅有框架(即Transformer架構(gòu)),還包含了房間、電梯、裝飾等,使建筑完整,功能豐富;
3)GPT:特定類型的建筑
可被視為大型建筑中的一種特定類型,如一座特別的摩天大樓,他不僅使用了Transformer架構(gòu),還通過特定的方式進(jìn)行了設(shè)計(jì)和優(yōu)化(即大規(guī)模預(yù)訓(xùn)練),以實(shí)現(xiàn)特定的功能,如高效的文本生成和語言理解。
二、Transformer
語言大模型的核心是Transformer,是基于注意力機(jī)制的深度學(xué)習(xí)模型(神經(jīng)網(wǎng)絡(luò)架構(gòu)),用于處理序列到序列的任務(wù)。簡單來說,就是捕捉句子中不同位置的詞之間的關(guān)系,用于如理解上下文信息、生成連貫邏輯一致的文本等,且能高效并行計(jì)算。
1. Transformer主要核心結(jié)構(gòu)
如下:
Transformer內(nèi)部有多個(gè)編碼器、解碼器堆疊;
編碼器:主要捕捉輸入序列中的信息并建模特征;
解碼器:主要生成輸出序列;
編碼器/解碼器堆疊的作用:增加模型性能,有助于處理復(fù)雜的輸入輸出關(guān)系。
下面我們深入了解一下Transformer架構(gòu):
1)其核心組成部分包含:
i.編碼器:
由多個(gè)編碼器層堆疊而成,內(nèi)部包含多頭自注意力機(jī)制+前饋神經(jīng)網(wǎng)絡(luò),整體主要作用是捕捉輸入序列的上下文信息,并生成一系列編碼向量;
ii.解碼器:
由多個(gè)解碼器層堆疊而成, 內(nèi)部包含帶掩碼的多頭自注意力機(jī)制+編碼器到解碼器的多頭注意力機(jī)制(常稱為編碼器-解碼器注意力)+前饋神經(jīng)網(wǎng)絡(luò),整體主要作用是利用編碼器的輸出生成輸出序列。
iii.嵌入層:
將輸入序列中的詞轉(zhuǎn)換為用向量表示(即詞向量),以便模型能夠處理;
詞向量:
將單詞轉(zhuǎn)換為向量,或者說將語言的基本單位轉(zhuǎn)換為數(shù)字組合(如將英文單詞轉(zhuǎn)換為一串?dāng)?shù)字,讓計(jì)算機(jī)可識別),核心思想是具有相似語意的詞在向量空間中更接近;
向量:表示具有大小和方向的量,如在直角坐標(biāo)系中(x,y)、在三維空間表示為(x,y,z);
iv.位置編碼:
把表示各個(gè)詞本文順序的向量和上一步得到的詞向量相加;
由于Transformer并行處理輸入序列中的所有單詞,所以不知道輸入序列的順序信息,因此需要生成每個(gè)單詞在序列中的位置信息;
2)主要涉及的工作原理:
i.自注意力機(jī)制:
允許模型在處理每個(gè)單詞時(shí)關(guān)注輸入序列中的其他單詞,這種機(jī)制能給每個(gè)詞分配一個(gè)權(quán)重,計(jì)算當(dāng)前詞與其他所有詞之間的相關(guān)性;
作用:理解上下文和語言流的關(guān)鍵(捕捉序列數(shù)據(jù)中的依賴關(guān)系);
ii.多頭自注意力機(jī)制:
將輸入序列分成多個(gè)頭,并對每個(gè)頭進(jìn)行自注意力計(jì)算,然后將多個(gè)頭的結(jié)果拼接在一起,最終通過線性變化得到輸出。簡單的說,每個(gè)注意頭專注于句子中的某個(gè)特定關(guān)系(如某一個(gè)單頭自注意力只關(guān)注主謂關(guān)系、另一個(gè)單頭自注意力只關(guān)注形容詞與名詞的關(guān)系等),使模型能夠從不同角度或多個(gè)層面捕捉語意信息;
作用:生成更準(zhǔn)確的表示,提高了對復(fù)雜關(guān)系的建模能力;
iii.前饋神經(jīng)網(wǎng)絡(luò):
在每個(gè)編碼器與解碼器層中,還包括一個(gè)位置獨(dú)立的前饋神經(jīng)網(wǎng)絡(luò),由兩個(gè)線性層和一個(gè)激活函數(shù)(通常為ReLu)組成;
作用:對自注意力層的輸出進(jìn)行進(jìn)一步的非線性變換,強(qiáng)化位置的表示/提取更復(fù)雜的特征,增強(qiáng)模型的表達(dá)能力;
2. Transformer的內(nèi)部結(jié)構(gòu)
基于以上的了解,我們來補(bǔ)全一下Transformer的內(nèi)部結(jié)構(gòu)如下:
1)編碼器及其輸入/出部分:
i.輸入:原始的海量數(shù)據(jù)
ii.嵌入層、位置編碼:對原始輸入數(shù)據(jù)進(jìn)行處理
作用:將輸入的詞轉(zhuǎn)化為向量,并加上位置信息,供編碼器使用
iii.編碼器內(nèi)部:
多頭自注意力:捕捉原始序列信息
前饋神經(jīng)網(wǎng)絡(luò):增強(qiáng)模型表達(dá)能力
iv:輸出:包含了原始輸入信息的上下文信息與位置信息的向量序列,是后續(xù)解碼過程的基礎(chǔ)
2)解碼器及其輸入/出部分:
i.輸入:分為2大部分
解碼器自身的輸入:
- 開始符號:表示輸出序列的開頭(作用:告訴解碼器開始生成目標(biāo)序列)
- 先前生成的詞:指開始后,前一個(gè)時(shí)間步解碼器的輸出,也作為輸入(作用:為下一步掩碼多頭自注意力機(jī)制提供實(shí)際內(nèi)容,如上下文信息、位置信息等)
- 前一時(shí)間步:指在時(shí)間序列或序列數(shù)據(jù)中,當(dāng)前元素(詞、字符或時(shí)間點(diǎn)的數(shù)據(jù))之前的那個(gè)元素或時(shí)間點(diǎn)
- 編碼器的輸出:
編碼器的輸出作為解碼器的輸入(作用:編碼器的輸出綜合了原始序列位置與上下文信息,來指導(dǎo)解碼過程的注意力分配)
ii.嵌入層、位置編碼:僅對解碼器“先前生成的詞”進(jìn)行處理
作用:將輸入的詞轉(zhuǎn)化為向量,并加上位置信息,供解碼器中的多頭自注意力機(jī)制使用
iii.解碼器內(nèi)部:
多頭自注意力機(jī)制:詳指帶掩碼的多頭自注意力機(jī)制,針對已生成的輸出序列(指前面說的“先前生成的詞”被嵌入層與位置編碼處理后的)進(jìn)行處理,
(作用:防止未來的信息被利用,維護(hù)序列生成的因果順序,確保模型生成目標(biāo)序列時(shí)的連貫性與一致性)
(詳細(xì)說明:和編碼器中的有點(diǎn)不同,編碼器中的會關(guān)注序列里所有其他詞,但解碼器中的只會關(guān)注當(dāng)前詞和它前面的其他詞,后面的詞會被遮住,確保解碼器生成文本時(shí),遵循正確的時(shí)間順序)
·編碼-解碼注意力機(jī)制:捕捉編碼器的輸出與解碼器即將生成的輸出序列之間的復(fù)雜依賴關(guān)系,從而將原始序列的信息融合到輸出序列的生成過程中(作用:有助于解碼器生成準(zhǔn)確的目標(biāo)序列輸出)
前饋神經(jīng)網(wǎng)絡(luò):增強(qiáng)模型表達(dá)能力
iv.輸出:一步步生成一個(gè)完整的輸出序列
3)線性層與Softmax函數(shù)
i.線性層(Linera):主要用于對輸入數(shù)據(jù)進(jìn)行線性變換,調(diào)整數(shù)據(jù)的維度或簡單的線性組合,轉(zhuǎn)換維度;
ii.Softmax函數(shù):主要用于將線性層的輸出轉(zhuǎn)換為詞匯表的概率分布,選擇最可能的輸出序列(詞匯表的概率分布代表下一個(gè)詞(token)被生成的概率)。
線性層+softmax函數(shù)整體作用:把解碼器輸出的表示,轉(zhuǎn)換為詞匯表的概率分布(
從特征空間到最終輸出結(jié)果的轉(zhuǎn)換),從而進(jìn)行詞匯預(yù)測和生成任務(wù)。
3. Transformer與其他神經(jīng)網(wǎng)絡(luò)模型的對比
1)Transformer:基于自注意力機(jī)制的模型
能夠高效處理序列數(shù)據(jù)
優(yōu)點(diǎn):
i.并行處理能力強(qiáng):可并行處理整個(gè)序列,顯著提高計(jì)算效率
ii.捕捉長距離依賴關(guān)系:能直接訪問序列中的任意位置,有效捕捉長距離(上下文)依賴關(guān)系
iii.通用性強(qiáng):能處理復(fù)雜任務(wù),不僅適用于自然語言領(lǐng)域,還適用于圖像處理等其他領(lǐng)域的序列建模任務(wù)
缺點(diǎn):
i.資源消耗大:對于長序列處理時(shí),計(jì)算和內(nèi)存資源需求較高
ii.訓(xùn)練數(shù)據(jù)量要求高:通常需要大量的訓(xùn)練數(shù)據(jù)來獲得良好的性能,特別是在處理復(fù)雜任務(wù)時(shí)
2)CNNs:卷積神經(jīng)網(wǎng)絡(luò)
主要適用于圖像識別任務(wù),提取圖片的空間特征(圖片中各部分之間的空間布局和相對位置,如連接、包含等關(guān)系)
優(yōu)點(diǎn):
i.空間特征提取能力強(qiáng):無論圖像如何移動(dòng),都能提取到相同的特征;
ii.參數(shù)共享和局部鏈接:減少模型參數(shù)數(shù)量,降低計(jì)算成本;
缺點(diǎn):
i.無法處理序列數(shù)據(jù):不適合捕捉長序列內(nèi)的依賴關(guān)系;
ii.平移不變性:可能導(dǎo)致某些任務(wù)表現(xiàn)不佳
3)RNNs:循環(huán)神經(jīng)網(wǎng)絡(luò)
主要用于處理序列數(shù)據(jù),能夠捕捉數(shù)據(jù)中的時(shí)間依賴關(guān)系,適合處理如時(shí)間序列數(shù)據(jù)(如近3個(gè)月的股票價(jià)格數(shù)據(jù)、近一周的氣溫?cái)?shù)據(jù));
優(yōu)點(diǎn):
i.處理序列數(shù)據(jù):擅長處理具有時(shí)間關(guān)系的序列數(shù)據(jù),如文本、語音
ii.參數(shù)共享:在時(shí)間步上參數(shù)共享,減少了模型的參數(shù)數(shù)量
iii.短期記憶:能夠記住短句子中前面的信息,理解上下文依賴關(guān)系
缺點(diǎn):
i.長依賴問題:難以捕捉到遠(yuǎn)距離的時(shí)間依賴關(guān)系,如長句子中距離遠(yuǎn)的詞,依賴關(guān)系無法捕捉;
ii.計(jì)算效率低:難以并行計(jì)算,導(dǎo)致訓(xùn)練速度較慢;
4)LSTM:是RNN的一種變體,長短期記憶網(wǎng)絡(luò)
適合處理時(shí)間相關(guān)性較強(qiáng)的短序列數(shù)據(jù);
優(yōu)點(diǎn):
i.處理長期依賴:有效處理序列處理中的長期依賴關(guān)系
ii.梯度問題:相比RNN,LSTM更好的解決了梯度消失/梯度爆炸的問題
缺點(diǎn):
i.訓(xùn)練時(shí)間長:計(jì)算復(fù)雜度高,且難以并行
ii.資源消耗大:隨著序列長度的增加,訓(xùn)練難度與資源消耗也會增加
4. 應(yīng)用現(xiàn)狀
在Transformer原始架構(gòu)的基礎(chǔ)上后續(xù)出現(xiàn)了變種:
主要分為3類:
1)僅編碼器:如 Bert,適用于理解語言的任務(wù),如掩碼語言建模(讓模型猜被遮住的詞是什么)、情感分析(讓模型猜文本情感是積極還是消極)等
2)僅解碼器:如GPT系列(ChatGPT),擅長通過預(yù)測下一個(gè)詞,來實(shí)現(xiàn)文本生成等
3)編碼器+解碼器:如T5、BART,適用于把一個(gè)序列轉(zhuǎn)換成另一個(gè)序列的任務(wù),如翻譯、 總結(jié)等
以上就是對Transformer原理、結(jié)構(gòu)等的簡單分享,希望可以幫到你,歡迎一起交流學(xué)習(xí)。
本文由 @不知名產(chǎn)品露 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)作者許可,禁止轉(zhuǎn)載
題圖來自Unsplash,基于CC0協(xié)議
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)
評論:Transformer真是AI大模型的基石啊,它的架構(gòu)和應(yīng)用讓人深感科技的魅力!
Transformer模型的核心是自注意力機(jī)制,它允許模型在處理序列中的每個(gè)元素時(shí),都能考慮到序列中的其他元素。