<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Transformers內部運作原理研究

新機器視覺 ? 來源:我得學城 ? 2024-01-30 09:47 ? 次閱讀

Ketan Doshi | 作者 羅伯特

在第一篇文章中,我們了解了Transformer的功能、使用方式、其高級架構以及優勢。 前一篇文章,移步:Transformers圖解(第1部分):功能概述 在這篇文章中,我們將深入了解它的內部運作,詳細研究它是如何工作的。我們將看到數據如何通過系統流動,以及它們的實際矩陣表示和形狀,理解每個階段執行的計算。 以下是本系列中之前和接下來文章的快速摘要。整個系列中的目標是不僅了解某物是如何運作的,而且為什么它以這種方式運作。

功能概述(Transformer的使用方式以及為什么它們比RNN更好。架構的組成部分,以及在訓練和推理期間的行為)。

工作原理 — 本文(內部操作端到端。數據如何流動以及在每個階段執行的計算,包括矩陣表示)。

多頭注意力(Transformer中注意力模塊的內部工作)。

為什么注意力提升性能(注意力不僅做什么,還為什么它如此有效。注意力如何捕捉句子中單詞之間的關系)。

1. 架構概述 正如我們在第一部分中看到的,架構的主要組件包括:

e88b0594-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

編碼器和解碼器的數據輸入,其中包括:

嵌入層(Embedding layer)

位置編碼層(Position Encoding layer)

解碼器堆棧包含多個解碼器。每個解碼器包含:

兩個多頭注意力層(Multi-Head Attention layer)

前饋層(Feed-forward layer)

輸出(右上方)—生成最終輸出,并包含:

線性層(Linear layer)

Softmax層(Softmax layer)

為了理解每個組件的作用,讓我們通過訓練Transformer解決翻譯問題的過程,逐步了解Transformer的工作原理。我們將使用訓練數據的一個樣本,其中包含輸入序列(英語中的'You are welcome')和目標序列(西班牙語中的'De nada')。

2. 嵌入和位置編碼

與任何自然語言處理模型一樣,Transformer需要了解有關每個單詞的兩個方面:單詞的含義以及它在序列中的位置。 嵌入層編碼單詞的含義。位置編碼層表示單詞的位置。Transformer通過將這兩種編碼相加來組合它們。

2.1 嵌入(embedding)

Transformer有兩個嵌入層。輸入序列被送入第一個嵌入層,稱為輸入嵌入。

e8a4f710-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 目標序列在將目標向右移一個位置并在第一個位置插入起始標記后,被送入第二個嵌入層。請注意,在推理期間,我們沒有目標序列,我們將輸出序列循環饋送到這第二層,正如我們在第一部分中學到的。這就是為什么它被稱為輸出嵌入。 文本序列使用我們的詞匯表映射為數值單詞ID。然后,嵌入層將每個輸入單詞映射到一個嵌入向量,這是該單詞含義的更豐富表示。

e8b1dc0a-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

2.2 位置編碼

由于RNN實現了一個循環,每個單詞都按順序輸入,它隱式地知道每個單詞的位置。 然而,Transformer不使用RNN,序列中的所有單詞都是并行輸入的。這是它相對于RNN架構的主要優勢,但這意味著位置信息丟失了,必須單獨添加。 就像有兩個嵌入層一樣,有兩個位置編碼層。位置編碼是獨立于輸入序列計算的。這些是僅依賴于序列的最大長度的固定值。例如,

第一項是指示第一個位置的常數代碼,

第二項是指示第二個位置的常數代碼,

以此類推。

這些常數是使用下面的公式計算的,其中:

pos是單詞在序列中的位置

d_model是編碼向量的長度(與嵌入向量相同)

是該向量中的索引值。

e8c12f48-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 換句話說,它交替使用正弦曲線和余弦曲線,對于所有偶數索引使用正弦值,對于所有奇數索引使用余弦值。例如,如果我們對一個包含40個單詞的序列進行編碼,我們可以看到下面是一些(單詞位置,編碼索引)組合的編碼數值。

e8cf634c-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 藍色曲線顯示了所有40個單詞位置的第0個索引的編碼,橙色曲線顯示了所有40個單詞位置的第1個索引的編碼。對于其余的索引值,將會有類似的曲線。

3. 矩陣維度

正如我們所知,深度學習模型一次處理一個批次的訓練樣本。嵌入層和位置編碼層操作的是表示一批序列樣本的矩陣。嵌入層接收一個形狀為(樣本數,序列長度)的單詞ID矩陣。它將每個單詞ID編碼成一個長度為嵌入大小的單詞向量,從而產生一個形狀為(樣本數,序列長度,嵌入大?。┑妮敵鼍仃?。位置編碼使用與嵌入大小相等的編碼大小。因此,它產生一個形狀類似的矩陣,可以添加到嵌入矩陣中。

e8de4740-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 由嵌入層和位置編碼層產生的形狀為(樣本數,序列長度,嵌入大?。┑木仃囋谡麄€Transformer中得以保留,因為數據通過編碼器和解碼器堆棧流動,直到被最終的輸出層重新整形。 這給出了Transformer中3D矩陣維度的概念。然而,為了簡化可視化,從這里開始我們將放棄第一個維度(樣本數),并使用單個樣本的2D表示。

e8fb860c-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 輸入嵌入將其輸出發送到編碼器。類似地,輸出嵌入饋入解碼器。

4. 編碼器(Encoder)

編碼器和解碼器堆棧由若干(通常為六個)編碼器和解碼器連接而成。

e9126c0a-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 堆棧中的第一個編碼器從嵌入和位置編碼接收其輸入。堆棧中的其他編碼器從前一個編碼器接收其輸入。 編碼器將其輸入傳遞到多頭自注意力層。自注意力輸出傳遞到前饋層,然后將其輸出向上傳遞到下一個編碼器。

e91ff618-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 自注意力和前饋子層都有繞過它們的殘差跳連接,然后是一層歸一化。 最后一個編碼器的輸出被饋送到解碼器堆棧中的每個解碼器,如下所述。

5. 解碼器(Decoder)

解碼器的結構與編碼器非常相似,但有一些區別。 與編碼器一樣,堆棧中的第一個解碼器從輸出嵌入和位置編碼接收其輸入。堆棧中的其他解碼器從前一個解碼器接收其輸入。 解碼器將其輸入傳遞到多頭自注意力層。這個自注意力層的運作方式略有不同于編碼器中的自注意力層。它只允許關注序列中較早的位置。這是通過屏蔽未來位置來實現的,我們將很快討論。

e92ce53a-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 與編碼器不同,解碼器有第二個多頭注意力層,稱為編碼器-解碼器注意力層。編碼器-解碼器注意力層的工作方式類似于自注意力,只是它結合了兩個輸入源 —— 在它下面的自注意力層以及編碼器堆棧的輸出。 自注意力輸出傳遞到前饋層,然后將其輸出向上傳遞到下一個解碼器。 這些子層,自注意力、編碼器-解碼器注意力和前饋,都有繞過它們的殘差跳連接,然后是一層歸一化。

6. 注意力

在第一部分中,我們談到了在處理序列時為什么注意力非常重要。在Transformer中,注意力在三個地方使用:

編碼器的自注意力 — 輸入序列關注自身

解碼器的自注意力 — 目標序列關注自身

解碼器的編碼器-解碼器注意力 — 目標序列關注輸入序列

注意力層以三個參數的形式接收其輸入,稱為Query(查詢)、Key(鍵)和Value(值)。

在編碼器的自注意力中,編碼器的輸入傳遞給所有三個參數:Query、Key 和 Value。

e93b5368-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 在解碼器的自注意力中,解碼器的輸入傳遞給所有三個參數:Query、Key 和 Value。在解碼器的編碼器-解碼器注意力中,堆棧中最后一個編碼器的輸出傳遞給 Value 和 Key 參數。下面的自注意力(和層歸一化)模塊的輸出傳遞給 Query 參數。

e947ece0-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

7. 多頭注意力

Transformer將每個注意力處理器稱為一個注意力頭,并并行地重復多次。這被稱為多頭注意力。它通過組合多個類似的注意力計算,使得注意力具有更強的判別力。

e95d2d44-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) Query、Key 和 Value 分別通過單獨的線性層傳遞,每個層都有自己的權重,產生三個結果分別稱為 Q、K 和 V。然后,它們使用如下所示的注意力公式結合在一起,產生注意力分數。

e96ed1b6-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

這里需要意識到的重要一點是,Q、K 和 V 值攜帶了序列中每個單詞的編碼表示。注意力計算然后將每個單詞與序列中的每個其他單詞結合在一起,使得注意力分數為序列中的每個單詞編碼了一個分數。 在稍早前討論解碼器時,我們簡要提到了掩碼。上述注意力圖中也顯示了掩碼。讓我們看看它是如何工作的。

8. 注意力掩碼

在計算注意力分數時,注意力模塊實施了一個掩碼步驟。掩碼有兩個目的: 在編碼器自注意力和編碼器-解碼器注意力中:掩碼用于將輸入句子中的填充位置的注意力輸出置零,以確保填充不會影響自注意力。(注意:由于輸入序列的長度可能不同,它們被擴展為帶有填充標記的固定長度向量,就像大多數NLP應用程序一樣。)

e97f7368-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 編碼器-解碼器注意力同樣如此。

e99e5454-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 在解碼器的自注意力中:掩碼用于防止解碼器在預測下一個單詞時偷看目標句子的其余部分。 解碼器處理源序列中的單詞,并使用它們來預測目標序列中的單詞。在訓練期間,通過教師強制(teacher forcing),完整的目標序列被作為解碼器的輸入傳遞。因此,在預測某個位置的單詞時,解碼器可以使用該單詞之前以及之后的目標單詞。這使得解碼器可以通過使用未來‘時間步’中的目標單詞來‘作弊’。 例如,在預測‘Word 3’時,解碼器應該只參考目標中的前3個輸入單詞,而不是第4個單詞‘Ketan’。

e9b0ad84-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 因此,解碼器屏蔽了序列中稍后出現的輸入單詞。

e9be482c-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 在計算注意力分數時(參考前面顯示計算的圖片),掩碼應用于 Softmax 之前的分子部分。被屏蔽的元素(白色方塊)被設置為負無窮,以便 Softmax 將這些值轉換為零。

9. 生成輸出

堆棧中的最后一個解碼器將其輸出傳遞給輸出組件,將其轉換為最終的輸出句子。 線性層將解碼器向量投影為單詞分數,每個位置的句子中目標詞匯表中的每個唯一單詞都有一個分數值。例如,如果我們的最終輸出句子有7個單詞,而目標西班牙語詞匯表中有10000個唯一單詞,我們將為這7個單詞生成10000個分數值。分數值指示了每個單詞在該句子位置的出現概率。 然后,Softmax層將這些分數轉換為概率(總和為1.0)。在每個位置,我們找到具有最高概率的單詞的索引,然后將該索引映射到詞匯表中相應的單詞。這些單詞然后形成Transformer的輸出序列。

e9cb3cee-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

10. 訓練和損失函數

在訓練過程中,我們使用交叉熵損失等損失函數來比較生成的輸出概率分布與目標序列。概率分布給出了每個單詞在該位置出現的概率。

e9e43604-b8c6-11ee-8b88-92fbcf53809c.png

(作者提供的圖像) 假設我們的目標詞匯表只包含四個單詞。我們的目標是生成一個概率分布,與我們期望的目標序列“De nada END”相匹配。 這意味著第一個單詞位置的概率分布應該對“De”有一個概率為1,而對詞匯表中所有其他單詞的概率為0。同樣,“nada”和“END”在第二和第三個單詞位置的概率應分別為1。 與往常一樣,損失用于計算梯度,通過反向傳播來訓練Transformer。

11. 結論

希望這能讓你對Transformer在訓練過程中的內部運作有所了解。正如我們在前一篇文章中討論的那樣,在推理過程中,它運行在一個循環中,但大部分處理方式保持不變。 多頭注意力模塊是賦予Transformer強大能力的關鍵。

審核編輯:黃飛

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 解碼器
    +關注

    關注

    9

    文章

    1078

    瀏覽量

    40242
  • Transformer
    +關注

    關注

    0

    文章

    130

    瀏覽量

    5910
  • 自然語言處理

    關注

    1

    文章

    510

    瀏覽量

    13211
  • rnn
    rnn
    +關注

    關注

    0

    文章

    67

    瀏覽量

    6822

原文標題:Transformers圖解(第2部分):它是如何工作的,逐步說明

文章出處:【微信號:vision263com,微信公眾號:新機器視覺】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    使用基于Transformers的API在CPU上實現LLM高效推理

    英特爾 Extension for Transformers是英特爾推出的一個創新工具包,可基于英特爾 架構平臺,尤其是第四代英特爾 至強 可擴展處理器(代號 SapphireRapids,SPR)顯著加速基于Transformers的大語言模型( LargeLangua
    的頭像 發表于 01-22 11:11 ?2006次閱讀
    使用基于<b class='flag-5'>Transformers</b>的API在CPU上實現LLM高效推理

    NMI在TC377中是如何運作的?

    NMI 在 TC377 中是如何運作的。 一旦請求了 NMI。 NMI 處理程序被調用。 但是這一切在微控制器中是如何運作的。 我們有什么程序要遵循嗎? 如果有人能詳細解釋一下,那將是一個很大的幫助。 謝謝,提前謝謝。
    發表于 01-30 08:08

    汽車車身內部布置方法研究與總結

    汽車車身內部布置方法研究與總結本文主要內容是結合實際經驗(現有車型數據),運用車身內部布置設計的方法(借助于基于CATIA 軟件車身內部布置系統)詳細的闡述了車身
    發表于 04-16 13:35

    CPU的運作原理是什么

    1、CPU(Central Processing Unit),是一臺計算機的運算核心和控制核心。CPU由運算器、控制器和寄存器及實現它們之間聯系的數據、控制及狀態的總線構成。差不多所有的CPU的運作
    發表于 11-01 08:08

    電流互感器怎么運作的?

    電流互感器怎么運作的,變比100/5保護用,是電流過100才運作變比給保護裝置?小于100不運行?計量的又是怎么樣?
    發表于 03-21 09:47

    二極管運作系統圖

    二極管運作系統圖
    發表于 11-12 14:35 ?24次下載

    BJDEEN PULSE TRANSFORMERS

    aboutthe need  for  versatile pulse transformers that meet all the electricalrequirements of Manchester II serial biphas
    發表于 06-11 08:40 ?9次下載

    通關安全檢查系統的運作模式與仿真研究綜述

    由于近年來恐怖攻擊事件頻繁出現,如何優化安全檢查機制成為國土安全管理的重要研究議題之一。本文綜述了通關安全檢查站的優化問題與計算機仿真建模,我們介紹海關通關安檢系統運作模式的研究現狀,并探索通關安全性與便利性之間的權衡問題。最后
    發表于 12-20 14:34 ?0次下載

    電子濾波器對于智能手機和其他無線設備的內部運作至關重要

    電子濾波器對于智能手機和其他無線設備的內部運作至關重要。它們消除或增強了特定的輸入信號,以實現所需的輸出信號。盡管必不可少,但這種濾波器占用了研究人員不斷縮小尺寸的芯片空間。 為了解決這個
    發表于 08-14 11:08 ?581次閱讀

    深度學習:transformers的近期工作成果綜述

    2021年和2022年發表的研究成果)進行詳細的調研。 這張圖與一篇調查論文[Tay 2022]中的圖相似,但被調transformers會更新并
    的頭像 發表于 10-19 10:04 ?475次閱讀
    深度學習:<b class='flag-5'>transformers</b>的近期工作成果綜述

    永磁同步電機運作

    主要對于裝載在大眾E-Golf使用的三相永磁同步電機/充電機(MG)進行其運作進行研究探討,沿著典型的運作原理及電路特性提出一些問題,我想分享和討論這些問題與研究結果。 在我們開始進行
    發表于 03-14 10:52 ?0次下載
    永磁同步電機<b class='flag-5'>運作</b>

    永磁同步電機運作

    主要對于裝載在大眾E-Golf使用的三相永磁同步電機/充電機(MG)進行其運作進行研究探討,沿著典型的運作原理及電路特性提出一些問題,我想分享和討論這些問題這些問題與研究結果。在我們開
    的頭像 發表于 03-25 09:32 ?427次閱讀
    永磁同步電機<b class='flag-5'>運作</b>

    Transformers是什么意思?人工智能transformer怎么翻譯?

    Transformers是什么意思?transformer怎么翻譯?人工智能transformer怎么翻譯? Transformers是一個包含自然語言處理中的基礎技術的深度神經網絡。它可以將源語言
    的頭像 發表于 08-22 15:59 ?2393次閱讀

    微軟內部對亞洲研究院的未來持有不同看法

    四位消息人士披露,微軟內部曾考慮過關閉或搬遷MSRA,但高層領導普遍傾向于維持實驗室在中國的運作。目前,微軟已在加拿大溫哥華設立MSR分中心,部分研究員已被調配至此。此舉旨在作為備用安置點,以應對可能面臨的
    的頭像 發表于 01-11 13:58 ?290次閱讀

    Transformers的功能概述

    近年來,我們聽說了很多關于Transformers的事情,并且在過去的幾年里,它們已經在NLP領域取得了巨大成功。Transformers是一種使用注意力機制(Attention)顯著改進深度學習
    的頭像 發表于 01-23 10:15 ?320次閱讀
    <b class='flag-5'>Transformers</b>的功能概述
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>