【大模型】圖解Transformers Encoder 原創(chuàng)
前面圖解了Transformer整體架構(gòu),今天圖解編碼器。
先來個整體視角:
再逐步分解開來:
????????'?? ?????? ???????????????
編碼器負責通過自注意力機制和前饋層處理輸入的 token,從而生成具有上下文感知的表示。
?? 它是 NLP 模型中理解序列的核心動力。
???????? 1.1: ?????????? ????????????????????
編碼器的第一步是將每個輸入的單詞嵌入為一個大小為 512 的向量。
?? 這種嵌入過程只發(fā)生在最底層的編碼器中。
可以把它想象成把單詞翻譯成模型能夠理解的語言!??
???????? 1.2: ???????????????????? ??????????????????
Transformer 缺乏循環(huán)結(jié)構(gòu),因此它們使用位置編碼來表示 token 的位置。
怎么實現(xiàn)的?
通過正弦和余弦函數(shù)的組合,模型能夠理解句子中單詞的順序!??
???????? 2: ?????????? ???? ?????????????? ????????????
編碼器是層疊的,每一層都會接收前一層的輸入,并通過多輪自注意力機制和前饋層進一步優(yōu)化輸入。
這有助于更好地理解輸入的上下文!
???????? 2.1: ??????????-???????????? ????????-??????????????????
自注意力機制讓模型能夠?qū)⑤斎胫械拿總€詞與其他詞相互關(guān)聯(lián)。
注意力得分基于以下三個部分:
查詢(Query)
鍵(Key)
值(Value)
這個過程會重復多次,以便從多個角度進行理解!??
???????? 2.2: ???????????? ????????????????????????????
通過將查詢(Query)和鍵(Key)向量相乘,給每對單詞分配一個得分。
這為序列中的每個詞分配了一個相對的重要性得分,類似于根據(jù)詞與詞之間的相關(guān)性對它們進行排序!
???????? 2.3: ?????????????? ?????? ?????????????????? ????????????
這些得分會通過除以查詢(Query)和鍵(Key)向量維度的平方根進行縮放,以確保梯度的穩(wěn)定性。
這樣可以防止較大的值對結(jié)果產(chǎn)生偏差。??
???????? 2.4: ???????????????? ??????????????
應(yīng)用 softmax 函數(shù)以獲得注意力權(quán)重,強調(diào)重要的單詞,同時減弱不太相關(guān)的單詞。
這有助于集中注意力于輸入的關(guān)鍵部分!??
???????? 2.5: ?????????????????? ?????????????? ??????????????
注意力權(quán)重與值(Value)向量相乘,生成的輸出是值的加權(quán)和。
這樣就將上下文信息整合到了輸出表示中!??
???????? 2.6: ?????????????????????????? ?????? ??????????????????
編碼器中的每個子層之后都會有一個歸一化步驟和殘差連接。
這樣可以幫助緩解梯度消失問題,并確保模型在計算過程中保持平衡,為下一步做好準備!??
???????? 2.7: ????????-?????????????? ???????????? ??????????????
歸一化之后,前饋網(wǎng)絡(luò)會處理輸出,對上下文進行進一步的精細化調(diào)整。
這是在將信息發(fā)送到下一層之前的最后一步!??
???????? 3: ????????????
編碼器的最終輸出是一組向量,每個向量都捕捉了輸入序列的豐富上下文理解。
這些輸出已準備好被解碼,并用于各種 NLP 任務(wù)!??
本文轉(zhuǎn)載自公眾號人工智能大講堂
原文鏈接:??https://mp.weixin.qq.com/s/2-lpJ1jsL0-7vpmPgbY8HQ???
