<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的功能概述

jt_rfid5 ? 來源:新機器視覺 ? 2024-01-23 10:15 ? 次閱讀

近年來,我們聽說了很多關于Transformers的事情,并且在過去的幾年里,它們已經在NLP領域取得了巨大成功。Transformers是一種使用注意力機制(Attention)顯著改進深度學習NLP翻譯模型性能的架構。它首次在論文Attention is all you need中被引入,并迅速確立為大多數文本數據應用的主導架構。

自那時以來,包括Google的BERT和OpenAI的GPT系列在內的眾多項目已經在這個基礎上進行了擴展,并發布了比現有最先進基準更好的性能結果。

在一系列的文章中,我將介紹Transformers的基礎知識、其架構以及內部工作原理。我們將以自上而下的方式了解Transformers的功能。

在后續的文章中,我們將深入了解系統的運作細節。我們還將深入研究多頭注意力(multi-head attention)的運作,這是Transformers的核心。

以下是本系列和接下來文章的快速摘要(共計四篇)。我的目標是理解事物的運作方式,而不僅僅是了解它是如何運作的。

功能概述 — 本文(Transformers的用途以及為什么它們比RNN更好。架構的組件,以及在訓練和推斷期間的行為)。

工作原理(內部操作端到端。數據如何流動以及執行了哪些計算,包括矩陣表示)。

多頭注意力(貫穿整個Transformers的注意力模塊的內部運作)。

為什么注意力提高性能(不僅僅是注意力在做什么,而是為什么它如此有效)。

后面三篇推文進行介紹。

為適合中文閱讀習慣,閱讀更有代入感,原文翻譯后有刪改。

1. 什么是Transformers

Transformers架構擅長處理本質上是順序(sequential)的文本數據。它們將文本序列作為輸入并生成另一個文本序列作為輸出,例如將英語句子翻譯成西班牙語。

1c7fbdb2-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

在其核心,它包含堆疊的編碼器層(Encoder layers)和解碼器層(Decoder layers)。

為避免混淆,我們將個體層稱為編碼器(Encoder)或解碼器(Decoder)。

編碼器堆棧和解碼器堆棧分別有相應的嵌入層用于它們的輸入。最后,有一個輸出層用于生成最終輸出。

1c8d1552-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

所有編碼器彼此相同。同樣,所有解碼器也是相同的。

1c987d5c-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

編碼器包含非常重要的自注意力層,用于計算序列中不同單詞之間的關系,以及一個前饋層。

解碼器包含自注意力層和前饋層,以及第二個編碼器-解碼器注意力層。

每個編碼器和解碼器都有自己的權重集。

編碼器是所有Transformers架構的定義性組件,是可重復使用的模塊。除了上述兩個層外,它還在這兩個層周圍具有殘差跳過連接(Residual skip connections),并帶有兩個LayerNorm層。

1cadbad2-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

Transformers架構有許多變體。有些Transformers架構根本沒有解碼器,完全依賴于編碼器。

2. 注意力的作用是什么?

Transformers取得突破性性能的關鍵在于它對注意力的使用。

在處理一個單詞時,注意力使模型能夠關注輸入中與該單詞密切相關的其他單詞。

例如,ball與blue和holding密切相關。另一方面,blue與boy無關。

Transformers架構通過將輸入序列中的每個單詞與其他每個單詞相關聯來使用自注意力。

例如,考慮兩個句子:

The cat drank the milk because it was hungry.

The cat drank the milk because it was sweet.

在第一個句子中,it指的是cat,而在第二個句子中,它指的是milk。當模型處理it這個詞時,自注意力為模型提供更多關于其含義的信息,以便它能將it與正確的詞關聯起來。

1cc45b02-b90e-11ee-8b88-92fbcf53809c.png

深色表示更高的注意力(作者提供的圖像)

為了使其能夠處理關于句子意圖和語義的更多細微差別,Transformers為每個單詞包含多個注意力分數。

例如,在處理it這個詞時,第一個分數突出顯示cat,而第二個分數突出顯示hungry。因此,當它將it這個詞解碼成另一種語言時,它將在翻譯的詞中結合cat和hungry的一些方面。

1ccf3ea0-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

3. 訓練Transformers

在訓練和推斷期間,Transformers的工作稍有不同。

首先,讓我們看看訓練期間數據的流動。訓練數據包括兩個部分:

源序列或輸入序列(例如,對于一個翻譯問題,You are welcome是英語的源序列)

目標序列(例如,西班牙語中的De nada是目標序列)

Transformers的目標是通過使用輸入和目標序列來學習如何輸出目標序列。

1cd9e120-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

Transformers處理數據的步驟如下:

將輸入序列轉換為嵌入(帶有位置編碼)并饋送到編碼器。

編碼器堆棧處理此數據并生成輸入序列的編碼表示。

目標序列以句子開始標記為前綴,轉換為嵌入(帶有位置編碼)并饋送到解碼器。

解碼器堆棧處理此數據以及編碼器堆棧的編碼表示,生成目標序列的編碼表示。

輸出層將其轉換為單詞概率和最終輸出序列。

Transformers的損失函數將此輸出序列與訓練數據中的目標序列進行比較。這個損失用于在反向傳播期間訓練Transformers生成梯度。

4. 推斷

在推斷期間,我們只有輸入序列,并沒有目標序列傳遞給解碼器。Transformers的目標是僅從輸入序列中產生目標序列。

因此,就像在Seq2Seq模型中一樣,我們在一個循環中生成輸出,并將上一個時間步的輸出序列饋送到下一個時間步的解碼器,直到遇到句子結束標記。

與Seq2Seq模型的不同之處在于,在每個時間步,我們重新饋送迄今生成的整個輸出序列,而不僅僅是最后一個單詞。

1ce53cfa-b90e-11ee-8b88-92fbcf53809c.png

第一時間步后的推斷流程(圖像由作者提供)

推斷期間數據的流動如下:

輸入序列被轉換為嵌入(帶有位置編碼)并饋送到編碼器。

編碼器堆棧處理此數據并生成輸入序列的編碼表示。

與目標序列不同,我們使用一個只有句子開始標記的空序列。這被轉換為嵌入(帶有位置編碼)并饋送到解碼器。

解碼器堆棧處理此數據以及編碼器堆棧的編碼表示,生成目標序列的編碼表示。

輸出層將其轉換為單詞概率并生成輸出序列。

我們將輸出序列的最后一個詞視為預測的詞。該詞現在填入解碼器輸入序列的第二個位置,其中現在包含一個句子開始標記和第一個單詞。

返回到步驟#3。與以前一樣,將新的解碼器序列饋送到模型。然后取輸出的第二個詞并將其附加到解碼器序列。重復此過程,直到預測到句子結束標記。請注意,由于編碼器序列在每次迭代中不變,因此我們不必每次重復步驟#1和#2(感謝Michal Ku?írka指出這一點)。

5. Teacher Forcing(強制教師)

在訓練期間將目標序列饋送到解碼器的方法被稱為強制教師。我們為什么要這樣做,這個術語是什么意思?

在訓練期間,我們本可以使用與推斷期間相同的方法。換句話說,循環運行Transformers,取輸出序列的最后一個詞,將其附加到解碼器輸入并在下一次迭代中饋送給解碼器。最終,當預測到句子結束標記時,損失函數將比較生成的輸出序列與目標序列,以便訓練網絡。

這種循環會導致訓練時間更長,而且使訓練模型變得更加困難。模型必須基于可能錯誤的第一個預測單詞來預測第二個單詞,依此類推。

相反,通過將目標序列饋送到解碼器,我們可以說是在給予它一些提示,就像老師會做的一樣。即使它預測了錯誤的第一個單詞,它仍然可以使用正確的第一個單詞來預測第二個單詞,以防這些錯誤不斷累積。

此外,Transformers能夠在沒有循環的情況下并行輸出所有單詞,從而大大加快訓練速度。

6. Transformers用于什么?

Transformers非常靈活,用于大多數NLP任務,如語言模型和文本分類。它們經常用于序列到序列模型,適用于機器翻譯、文本摘要、問答、命名實體識別和語音識別等應用。

有不同類型的Transformers架構用于解決不同的問題?;镜木幋a器層被用作這些架構的通用構建塊,具體取決于正在解決的問題,使用不同的應用特定的頭(heads)。

7. Transformers分類架構

例如,情感分析應用將接受文本文檔作為輸入。分類頭采用Transformers的輸出,并生成類標簽的預測,如積極或消極情感。

1cf14018-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

8. Transformers語言模型架構

語言模型架構將輸入序列的初始部分,如文本句子,作為輸入,并通過預測將跟隨的句子生成新文本。語言模型頭采用Transformers的輸出,并為詞匯表中的每個單詞生成概率。概率最高的單詞成為下一個句子中的預測輸出。

1cffa91e-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

9. 它們為什么比循環神經網絡(RNNs)更好?

在Transformers出現并取代它們之前,基于RNN的序列到序列模型是所有NLP應用的事實標準,而且表現良好。

基于RNN的序列到序列模型表現不錯,當注意機制首次引入時,它被用于增強其性能。

然而,它們有兩個限制:

難以處理在長句中分散分開的單詞之間的長程依賴關系。

它們按照順序逐個單詞地處理輸入序列,這意味著在完成時間步t-1的計算之前,它不能進行時間步t的計算。這減緩了訓練和推斷的速度。

順便提一下,使用CNN,所有輸出可以并行計算,這使得卷積速度更快。然而,它們在處理長程依賴性方面也有局限性:

在卷積層中,只有能夠適應內核大小的圖像的部分(如果應用于文本數據,則是單詞)可以相互交互。對于相距較遠的項,您需要具有許多層的更深的網絡。Transformers架構解決了這兩個限制。它完全摒棄了RNN,并僅依賴于注意力的好處。

它并行處理序列中的所有單詞,從而大大加快了計算速度。

1d11ae02-b90e-11ee-8b88-92fbcf53809c.png

(作者提供的圖像)

輸入序列中單詞之間的距離不重要。它在計算相鄰單詞和相距較遠單詞之間的依賴性方面同樣出色。

現在我們對Transformers有了一個高層次的了解,我們可以在下一篇文章中深入了解其內部功能,了解它的工作細節。

來源:新機器視覺

審核編輯:湯梓紅

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

    關注

    42

    文章

    3414

    瀏覽量

    132006
  • 模型
    +關注

    關注

    1

    文章

    2790

    瀏覽量

    47924
  • nlp
    nlp
    +關注

    關注

    1

    文章

    464

    瀏覽量

    21876
  • OpenAI
    +關注

    關注

    9

    文章

    880

    瀏覽量

    6022

原文標題:【光電智造】Transformers圖解(第1部分):功能概述

文章出處:【微信號:今日光電,微信公眾號:今日光電】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

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

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

    長按鍵處理功能概述

    基于藍橋杯的單片機模塊練習——長按鍵處理功能概述可以對按下一個鍵的時間長短,來分別執行不同的處理。當按住一個鍵的時長超過規定的長按鍵標準時,可以執行長按鍵的相應處理,當按住一個鍵的時長沒達到規定
    發表于 01-07 07:10

    W601的RTC時鐘功能概述

    13、W601的RTC時鐘文章目錄13、W601的RTC時鐘一、W601的RTC功能概述二、主要特性三、代碼實現四、實驗現象一、W601的RTC功能概述RTC 是由 PMU 模塊提供的
    發表于 01-10 08:05

    GPIO多功能復用引腳概述

    一、GPIO概述GPIO是多功能復用引腳,可以配置成通用的數字I/O工作模式,也可以配置成外設I/O工作模式。每個引腳除了通用數字I/O功能外,還有三個外設功能。,GPIO分為三組進行
    發表于 01-12 07:33

    GPIO的功能概述用途簡析

    GPIO通用輸入輸出一、GPIO的功能概述用途:GPIO是通用輸入輸出(General Purpose I/O)的簡稱,主要用于工業現場需要用到數字量輸入/輸出的場合。例如:輸出功能:繼電器、LED
    發表于 02-16 07:42

    CS5202AN功能概述

    一、 CS5202AN功能概述CS5202是一款DP端口到VGA轉換器,它結合了DP輸入接口和模擬RGB DAC輸出接口。嵌入式單片機基于工業標準8051核心。CS5202適用于多個細分市場和顯示器
    發表于 03-02 07:27

    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-22 11:24 ?768次閱讀

    QorIQ的三大功能概述(一)

    本課程將概述QorIQ的硬件安全認證、密鑰保護和強大的分區保護功能。
    的頭像 發表于 06-28 16:58 ?6545次閱讀

    QorIQ三大功能概述(三)

    本課程將概述QorIQ的硬件安全認證、密鑰保護和強大的分區保護功能。
    的頭像 發表于 06-28 16:55 ?2637次閱讀

    英特爾VTune放大器XE的功能概述

    英特爾?VTune?放大器XE概述和新功能
    的頭像 發表于 11-06 06:54 ?3559次閱讀

    MicroBlaze的特點與功能概述

    MicroBlaze概述
    的頭像 發表于 11-28 06:09 ?3550次閱讀

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

    transformers的近期工作成果綜述 基于 transformer 的雙向編碼器表示(BERT)和微軟的圖靈自然語言生成(T-NLG)等模型已經在機器學習世界中廣泛的用于自然語言處理(NLP
    的頭像 發表于 10-19 10:04 ?494次閱讀
    深度學習:<b class='flag-5'>transformers</b>的近期工作成果綜述

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

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

    UWB數據傳輸和雷達成像功能概述

    在之前的文章《一文講透超寬帶(UWB)前世今生》中,我們從起源、定義、標準、發展、應用等角度概述了UWB技術。根據UWB的特性,其基礎功能分為:數據傳輸、雷達成像、測距定位。接下來我們將概述其數據傳輸和雷達成像
    的頭像 發表于 09-08 09:51 ?1710次閱讀
    UWB數據傳輸和雷達成像<b class='flag-5'>功能</b><b class='flag-5'>概述</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>