博客專欄

EEPW首頁 > 博客 > Transformer的細節(jié)到底是怎么樣的?Transformer 18問?。?)

Transformer的細節(jié)到底是怎么樣的?Transformer 18問?。?)

發(fā)布人:數(shù)據(jù)派THU 時間:2023-07-19 來源:工程師 發(fā)布文章
6. Transformer Encoder和Transformer Decoder有哪些不同?

6.1 作用上,Transformer Encoder常用來提取特征,Transformer Decoder常用于生成式任務。Transformer Encoder和Transformer Decoder是兩條不同的技術(shù)路線,Bert采用的前者,GPT系列模型采用的是后者。

6.2 結(jié)構(gòu)上,Transformer Decoder block包括了3個子Decoder block,而Transformer Encoder block 包括2個子Encoder block,且Transformer Decoder中使用了Mask multi-head Attention。

6.3 從二者的輸入輸出角度,N個Transformer Encoder運算完成之后,它的輸出才正式輸入進Transformer Decoder,作為QKV中的K和V,給Transformer Decoder使用。那么TransformerEncoder最后層的輸出是如何送給Decoder呢?如圖11所示。

圖片圖11 Transformer Encoder和Transformer Decoder交互的方式

那么,為什么Encoder和Decoder必須要用這種交互的方式呢?其實也并不一定,后續(xù)有不同交互方式的提出,如圖12。

圖片

圖12 Transformer Encoder和Decoder的交互方式

7. 什么是Embedding?

7.1 Embedding在Transformer架構(gòu)中的位置如圖13所示。

7.2 提出背景: 計算機無法直接處理一個單詞或者一個漢字,需要把一個token轉(zhuǎn)化成計算機可以識別的向量,這也就是embedding過程。

7.3 實現(xiàn)方式: 最簡單的embedding操作就是one hot vector,但one hot vector有一個弊端就是沒有考慮詞語前后之間的關(guān)系,后來也就產(chǎn)生了WordEmbedding,如圖13。

圖片

圖13 Embedding的一些說明,從左往右依次為:embedding在Transformer中的位置,one hot vector,Word embedding。

8. 什么是Positional Embedding?

8.1 Positional Embedding在Transformer架構(gòu)中的位置如圖14所示。

8.2 提出背景:RNN作為特征提取器,是自帶詞的前后順序信息的;而Attention機制并沒有考慮先后順序信息,但前后順序信息對語義影響很大,因此需要通過Positional Embedding這種方式把前后位置信息加在輸入的Embedding上。

8.3 實現(xiàn)方式: 傳統(tǒng)位置編碼和神經(jīng)網(wǎng)絡自動訓練得到。

圖片

圖14 Positional Embedding的一些說明,從左往右依次為:positional embedding在Transformer中的位置,傳統(tǒng)位置編碼的實現(xiàn)方式,傳統(tǒng)位置編碼ei得到的圖像,每一列為一個token的位置編碼。

9. 什么是Attention?

9.1 介紹Transformer,為什么要介紹Attention呢?因為在Transformer中最多的multi head attention和Mask multi head attention來自Scaled dot product attention,而scaled dot product attention來自self attention,而self attention是attention的一種,因此首先需要了解Attention,如圖15所示。

圖片

圖15 Attention與Transformer的關(guān)系

9.2 Attention到底是什么意思呢?

對于圖像而言,attention就是人們看到圖像中的核心關(guān)注的區(qū)域,是圖像中的重點,如圖16所示。對于序列而言,Attention機制本質(zhì)上是為了找到輸入中不同token之間的相互關(guān)系,通過權(quán)重矩陣來自發(fā)地找到詞與詞之間的關(guān)系。

圖片

圖16 圖像中的attention

9.3 Attention是如何實現(xiàn)的呢?

是通過QKV實現(xiàn)的。

那么什么是QKV呢?Q是query,K是keys,V是values。如圖17所示,舉例而言,Q是大腦發(fā)出的信號,我口渴了;K是環(huán)境信息,眼睛看到的世界;V是對環(huán)境中不同的物品賦予不同的比重,水的比重加大。

總之,Attention就是通過計算QK的相似度,與V相乘得到注意力數(shù)值。

圖片

圖17 Attention的實現(xiàn)方式

9.4 為什么必須要有QKV三者?

為什么不是只有Q?因為Q1與Q2之間的關(guān)系權(quán)重,不止需要a12,也需要a21。你可能會問?我們讓a12=a21不行嗎?也可以嘗試,但從原理上講效果應該沒有a12和a21效果好。

為什么不是只有QK?求得的權(quán)重系數(shù)需要放到輸入中,可以乘Q,也可以乘K,為什么要重新乘V呢?我覺得可能是多了一組可訓練參數(shù)WV,使網(wǎng)絡具有更強的學習能力。


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權(quán)請聯(lián)系工作人員刪除。



關(guān)鍵詞: AI

相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉