概述
Transformer模型架構(gòu)是在論文Attentions is All you need 中提出的模型,其使用 Self-Attention 結(jié)構(gòu)取代了在 NLP 任務(wù)中常用的 RNN 網(wǎng)絡(luò)結(jié)構(gòu)。相比 RNN 網(wǎng)絡(luò)結(jié)構(gòu),其最大的優(yōu)點是可以并行計算。
架構(gòu)設(shè)計

Transformer本質(zhì)上是一個Encoder-Decoder 架構(gòu),因此Transformer模型主要由兩個部分組成:左側(cè)的編碼器(Encoder)和右側(cè)的解碼器(Decoder)。
每個部分由多個層組成(重復(fù) N 次),編碼器的輸出會作為輸入傳遞給解碼器。
編碼器(Encoder):
輸入嵌入(Input Embedding): 輸入的文本(或序列)首先被轉(zhuǎn)換成嵌入向量,這些嵌入是詞或標(biāo)記的向量表示。
位置編碼(Positional Encoding): 由于Transformer沒有循環(huán)或卷積結(jié)構(gòu)來建模序列的順序,因此加入了位置編碼,以提供序列中標(biāo)記的位置信息。
編碼層(Layers): 每一層編碼器包含以下模塊:
- 多頭注意力機制(Multi-Head Attention): 這一層使模型能夠同時關(guān)注輸入序列的不同部分。多個注意力頭(heads)獨立計算注意力,然后連接在一起并進(jìn)行線性變換。
- 加法和歸一化(Add & Norm): 每個子層周圍有殘差連接,隨后進(jìn)行層歸一化,以穩(wěn)定訓(xùn)練過程。
- 前饋網(wǎng)絡(luò)(Feed Forward): 這是一個兩層的全連接網(wǎng)絡(luò),獨立應(yīng)用于序列中的每個位置。
- 層疊結(jié)構(gòu): 編碼器由多個相同的層疊加而成(重復(fù) N 次)。
解碼器(Decoder):
輸出嵌入(Output Embedding): 與編碼器類似,解碼器也接收輸出序列(右移一個位置)的嵌入表示,以及位置編碼。
帶掩碼的多頭注意力機制(Masked Multi-Head Attention): 這是解碼器的第一個注意力層,與編碼器的多頭注意力不同。在這里使用掩碼,以防止每個位置看到序列中的后續(xù)位置(這對自回歸解碼非常重要)。
編碼器-解碼器注意力(Multi-Head Attention with Encoder Outputs): 這一層關(guān)注編碼器的輸出,使解碼器在生成每個輸出標(biāo)記時能夠聚焦于輸入序列的相關(guān)部分。
前饋網(wǎng)絡(luò)和加法歸一化層(Feed Forward and Add & Norm Layers): 與編碼器類似,解碼器也有前饋網(wǎng)絡(luò)和殘差連接及歸一化。
層疊結(jié)構(gòu): 解碼器也由多個相同的層疊加而成(重復(fù) N 次)。
輸出層:
在最后的解碼器層之后,有一個線性變換層,接著是一個softmax層,用來生成輸出的概率分布。softmax層會為每個可能的詞或標(biāo)記輸出一個概率,使模型能夠預(yù)測序列中下一個最有可能的標(biāo)記。
注意力機制(Attention Mechanism):
注意力機制是Transformer模型的核心。它通過計算輸入特征的加權(quán)組合,使模型能夠捕捉到輸入和輸出序列中不同詞語之間的關(guān)系。
多頭注意力機制允許模型同時關(guān)注序列的不同部分,從而增強模型理解上下文關(guān)系的能力。