一、Seq2Seq工作原理
Seq2Seq(Sequence-to-sequence): 輸入一個序列,輸出另一個序列。
在2014年,Cho等人首次在循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)中提出了Seq2Seq(序列到序列)模型。與傳統(tǒng)的統(tǒng)計翻譯模型相比,Seq2Seq模型極大地簡化了序列轉(zhuǎn)換任務(wù)的處理流程。
核心思想 :
編碼器(Encoder) :使用一個循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN)作為編碼器(Encoder),讀取輸入句子,并將其壓縮成一個固定維度的編碼。
解碼器(Decoder) :使用另一個循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)作為解碼器(Decoder)讀取這個編碼,并逐步生成目標語言的一個句子。
Seq2Seq模型通過端到端的訓練方式,將輸入序列和目標序列直接關(guān)聯(lián)起來,避免了傳統(tǒng)方法中繁瑣的特征工程和手工設(shè)計的對齊步驟。這使得模型能夠自動學習從輸入到輸出的映射關(guān)系,提高了序列轉(zhuǎn)換任務(wù)的性能和效率。
工作原理: Seq2Seq模型中的編碼器使用循環(huán)神經(jīng)網(wǎng)絡(luò)將輸入序列轉(zhuǎn)換為固定長度的上下文向量,而解碼器則利用這個向量和另一個循環(huán)神經(jīng)網(wǎng)絡(luò) 逐步生成輸出序列。
Encoder(編碼器):
編碼器是Seq2Seq模型中的一部分,負責將輸入序列轉(zhuǎn)換為固定長度的上下文向量。
它使用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)或其變體(如LSTM、GRU)來實現(xiàn)這一轉(zhuǎn)換過程。
在編碼過程中,編碼器逐個讀取輸入序列中的元素,并更新其內(nèi)部隱藏狀態(tài)。
編碼完成后,編碼器將最終的隱藏狀態(tài)或經(jīng)過某種變換的隱藏狀態(tài)作為上下文向量傳遞給解碼器。
Decoder(解碼器):
解碼器是Seq2Seq模型中的另一部分,負責從上下文向量生成輸出序列。
它同樣使用循環(huán)神經(jīng)網(wǎng)絡(luò) (RNN)或其變體(如LSTM、GRU)來實現(xiàn)生成過程。
在每個時間步,解碼器根據(jù)上一個時間步的輸出、當前的隱藏狀態(tài)和上下文向量來生成當前時間步的輸出。
解碼器通過逐步生成輸出序列中的每個元素,最終完成整個序列的生成任務(wù)。
二、Attention 工作原理
Attention Mechanism (注意力機制) : Attention Mechanism是一種在深度學習模型中用于處理序列數(shù)據(jù)的技術(shù),尤其在處理長序列時表現(xiàn)出色。 最初引入注意力機制是為了解決機器翻譯中遇到的長句子(超過50字)性能下降問題。
傳統(tǒng)的機器翻譯在長句子上的效果并不理想,因為固定長度的向量難以包含句子的所有語義細節(jié)。注意力機制的核心思想是在生成每個輸出詞時,模型都能夠關(guān)注到輸入序列中的相關(guān)部分。
核心邏輯: 從關(guān)注全部到關(guān)注重點
Attention機制處理長文本時,能從中抓住重點,不丟失重要信息 。
Attention 機制像人類看圖片的邏輯,當我們看一張圖片的時候,我們并沒有看清圖片的全部內(nèi)容,而是將注意力集中在了圖片的焦點上。
我們的視覺系統(tǒng)就是一種 Attention機制,將有限的注意力集中在重點信息上,從而節(jié)省資源,快速獲得最有效的信息。
工作原理: 通過計算Decoder的隱藏狀態(tài)與Encoder輸出的每個詞的隱藏狀態(tài)的相似度(Score),進而得到每個詞的Attention Weight,再將這些Weight與Encoder的隱藏狀態(tài)加權(quán)求和,生成一個Context Vector。
Encoder(編碼器):
輸入處理 :原始輸入是語料分詞后的token_id
被分批次傳入Embedding
層,將離散的token_id轉(zhuǎn)換為連續(xù)的詞向量。
特征提取 :將得到的詞向量作為輸入,傳入Encoder中的特征提取器(Feature Extractor)。特征提取器使用RNN系列的模型(RNN、LSTM、GRU),這里代稱為RNNs。為了更好地捕捉一個句子前后的語義特征,使用雙向的RNNs。雙向RNNs由前向RNN和后向RNN組成,分別處理輸入序列的前半部分和后半部分。
狀態(tài)輸出 :兩個方向的RNNs(前向和后向)各自產(chǎn)生一部分隱藏層狀態(tài)。將這兩個方向的隱藏層狀態(tài)拼接(concatenate)成一個完整的隱藏狀態(tài)hs
。這個狀態(tài)hs
包含了輸入序列中各個詞的語義信息,是后續(xù)Attention機制所需要的重要狀態(tài)值。
Decoder(解碼器):
輸入與隱藏狀態(tài)傳遞 :在Decoder的t-1時刻,RNNs(如LSTM或GRU)輸出一個隱藏狀態(tài)h(t-1)
。
計算Score :在t時刻,Decoder的隱藏狀態(tài)h(t-1)
與編碼部分產(chǎn)生的每個時間步的隱藏狀態(tài)h(s)
(來自雙向RNNs的拼接狀態(tài))進行計算,以得到一個Score。
計算Attention Weight :將所有計算得到的Score進行softmax歸一化,得到每個輸入詞對應(yīng)的Attention Weight。
計算Context Vector :使用得到的Attention Weight與對應(yīng)的h(s)
進行加權(quán)求和(reduce_sum),得到Context Vector。這個Context Vector是輸入序列中各個詞根據(jù)當前Decoder隱藏狀態(tài)重新加權(quán)得到的表示。這個Vector包含了輸入序列中重要信息的加權(quán)表示,用于指導(dǎo)Decoder生成當前時刻的輸出。
三、Transformer 工作原理
Transformer: 通常 Attention 會與傳統(tǒng)的模型配合起來使用, 但 Google 的一篇論文《?Attention Is All You Need?》中提出只需要注意力就可以完成傳統(tǒng)模型所能完成的任務(wù) ,從而擺脫傳統(tǒng)模型對于長程依賴無能為力的問題并使得模型可以并行化,并基于此提出 Transformer 模型。
Transformer 架構(gòu):主要由輸入部分(輸入輸出嵌入與位置編碼)、多層編碼器、多層解碼器以及輸出部分(輸出線性層與Softmax)四大部分組成。
輸入部分:
源文本嵌入層: 將源文本中的詞匯數(shù)字表示轉(zhuǎn)換為向量表示,捕捉詞匯間的關(guān)系。
位置編碼器: 為輸入序列的每個位置生成位置向量,以便模型能夠理解序列中的位置信息。
目標文本嵌入層(在解碼器中使用) :將目標文本中的詞匯數(shù)字表示轉(zhuǎn)換為向量表示。
編碼器部分:
由N個編碼器層堆疊而成。
每個編碼器層由兩個子層連接結(jié)構(gòu)組成 :第一個子層是一個多頭自注意力子層,第二個子層是一個前饋全連接子層。每個子層后都接有一個規(guī)范化層和一個殘差連接。
解碼器部分:
由N個解碼器層堆疊而成。
每個解碼器層由三個子層連接結(jié)構(gòu)組成 :第一個子層是一個帶掩碼的多頭自注意力子層,第二個子層是一個多頭注意力子層(編碼器到解碼器),第三個子層是一個前饋全連接子層。每個子層后都接有一個規(guī)范化層和一個殘差連接。
輸出部分:
線性層: 將解碼器輸出的向量轉(zhuǎn)換為最終的輸出維度。
Softmax層: 將線性層的輸出轉(zhuǎn)換為概率分布,以便進行最終的預(yù)測。
工作原理: 左邊是N個編碼器,右邊是N個解碼器,圖中Transformer 的N為6。
Encoder(編碼器):
圖中Transformer 的編碼器部分一共6個相同的編碼器層組成。
每個編碼器層都有兩個子層,即多頭自注意力層(Multi-Head Attention)層和逐位置的前饋神經(jīng)網(wǎng)絡(luò) (Position-wise Feed-Forward Network)。
在每個子層后面都有殘差連接(圖中的虛線)和層歸一化(LayerNorm)操作,二者合起來稱為Add&Norm操作。
Decoder(解碼器):
圖中Transformer 的解碼器部分同樣一共6個相同的解碼器層組成。
每個解碼器層都有三個子層,掩蔽自注意力層(Masked Self-Attention)、Encoder-Decoder注意力層、逐位置的前饋神經(jīng)網(wǎng)絡(luò) 。
同樣,在每個子層后面都有殘差連接(圖中的虛線)和層歸一化(LayerNorm)操作,二者合起來稱為Add&Norm操作。
文章轉(zhuǎn)自微信公眾號@架構(gòu)師帶你玩轉(zhuǎn)AI
我們有何不同?
API服務(wù)商零注冊
多API并行試用
數(shù)據(jù)驅(qū)動選型,提升決策效率
查看全部API→
??
熱門場景實測,選對API
#AI文本生成大模型API
對比大模型API的內(nèi)容創(chuàng)意新穎性、情感共鳴力、商業(yè)轉(zhuǎn)化潛力
一鍵對比試用API
限時免費