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