<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

    原創(chuàng) | 一文讀懂Transformer

    共 5180字,需瀏覽 11分鐘

     ·

    2022-07-12 04:06

    作者:陳之炎

    本文約3500字,建議閱讀7分鐘

    Transformer 是第一個完全依賴于自注意力機制來計算其輸入和輸出的表示的轉(zhuǎn)換模型。


    主流的序列到序列模型是基于編碼器-解碼器的循環(huán)或卷積神經(jīng)網(wǎng)絡,注意力機制的提出,優(yōu)化了編解碼器的性能,從而使得網(wǎng)絡性能達到最優(yōu)。利用注意力機制構(gòu)建出新的網(wǎng)絡架構(gòu)Transformer, 完勝了循環(huán)或卷積神經(jīng)網(wǎng)絡。Transformer 是第一個完全依賴于自注意力機制來計算其輸入和輸出的表示的轉(zhuǎn)換模型。Transformer可以并行訓練,訓練時間更短。

    1 Transformer的模型架構(gòu)

    序列到序列模型采用的是編碼器-解碼器結(jié)構(gòu),編碼器將輸入序列(,,……,映射成符號表示z=(,,……,,根據(jù)給定的Z ,解碼器生成輸出序列(,,……,,在每一個步長里,模型利用前一個步長中生成的向量和該步長的輸入,生成輸出符號。

    Transformer模型架構(gòu)如圖1-1所示,編碼器-解碼器結(jié)構(gòu)采用堆疊的多頭注意力機制加全連接層,圖中左邊的是編碼器結(jié)構(gòu),右邊的是解碼器結(jié)構(gòu):


     圖 1-1    堆疊的編碼器-解碼器結(jié)構(gòu)(來源:網(wǎng)絡)


    編碼器:編碼器由6個相同的塊結(jié)構(gòu)堆疊而成 N=6,每個塊結(jié)構(gòu)進一步分成兩個子層:即一個多頭的自注意力機制和一個前饋網(wǎng)絡全連接層,在塊中的每一個子層之后,增加一個歸一化層(Add&Norm),每個子層的輸出均為歸一化的LayerNorm(x + Sublayer(x)),包括詞嵌入層,模塊中所有子層的輸出的維數(shù)均為512,即 = 512。

    解碼器:同理,解碼器也由6個相同的塊結(jié)構(gòu)堆疊而成 N=6,每個塊結(jié)構(gòu)在編碼器兩個子層的基礎之上,增加了第三個子層,即增加了一個多頭自注意力子層。與編碼器類似,在塊中的每一個子層之后,增加一個歸一化層(Add&Norm)。在解碼器端,對解碼器堆棧中的自注意力子層進行了修改,以防止位置編碼和后續(xù)位置編碼相關,通過這種掩蔽,確保了對位置i的預測只能依賴于小于i的位置的已知輸出。

    2 Self-attention 自注意力機制

    Attention 函數(shù)將三元組Q(Query)、K(Key)、V(Value) 映射成輸出,其中三元組Q(Query)、K(Key)、V(Value)和輸出均為向量,輸出是V(Value)的加權和,其中的權重是Q(Query)和K(Key)對應的組合計算出來的數(shù)值。

    1)帶縮放的點積注意力機制Scaled dot-product attention

    帶縮放的點積注意力機制(Scaled dot-product attention )的公式如下:
     


    在上面公式中Q和K中的向量維度都是,V的向量維度是,計算所有K向量和Q向量的點積,分別除以,并應用一個Softmax函數(shù)來獲得這些值的權重。實際上在self-Attention中,,為了方便將Attention的計算轉(zhuǎn)化為矩陣運算,論文中采用了點積的形式求相似度。常見的計算方法除了點積還有MLP網(wǎng)絡,但是點積能轉(zhuǎn)化為矩陣運算,計算速度更快。

    兩個最常用的注意力函數(shù)是:加注意力函數(shù)(Additive Attention)和點積注意力函數(shù)(Dot-product Attention)。除了的縮放因子外,帶縮放的點積注意力機制采用的是點積注意力函數(shù),加注意力函數(shù)使用具有單個隱含層的前饋網(wǎng)絡來計算兼容性函數(shù)。雖然這兩者在理論復雜度上相似,但點積注意力函數(shù)更快,更節(jié)省空間,因為它可以使用高度優(yōu)化的矩陣乘法碼來實現(xiàn)。而對于較小的值,這兩種機制的性能相似,但在不加大更大的值的情況下,加注意力函數(shù)優(yōu)于點積注意力函數(shù)。對于較大的值,點積相應變大,將Softmax函數(shù)推到梯度極小的區(qū)域。為了抵消這種影響,我們通過來縮放點積。

    Transformer模型在三處采用了多頭注意力機制:

    • 在編碼器-解碼器注意力層,Q值來自上一個解碼器層,K值和V值來自編碼器的輸出,從而使得解碼器的每一個位置信息均和輸入序列的位置信息相關,這種架構(gòu)模仿了序列到序列模型編解碼器注意力機制。
    • 編碼器中包括自注意力層,在自注意力層中,Q 值、K值和V值均來自編碼器上一層的輸出,編碼器中的位置信息參與到前一層的位置編碼中去。
    • 同理,解碼器中的自注意力機制使得解碼器中的位置信息均參與到所有位置信息的解碼中去。

    2)全連接前饋網(wǎng)絡

    在Transfomer編碼器-解碼器架構(gòu)的每一塊中,除了包含多頭注意力機制外,還包含一個全連接前饋網(wǎng)絡,全連接前饋網(wǎng)絡層包含兩次ReLU激活函數(shù)的線性變換。


    不同層之間的全連接前饋網(wǎng)絡的參數(shù)各不相同,模型輸入輸出的維度是512 = 512, 層內(nèi)部的維度是2048 ,即= 2048。

    3)嵌入和Softmax

    和其它序列到序列的模型相類似,Transformer模型利用詞嵌入技術將輸入標記和輸出標記轉(zhuǎn)化為維度為的向量,采用可訓練的線性變換和Softmax函數(shù),將解碼器的輸出變換成待預測的下一個標記的概率。在Transformer模型中,兩個嵌入層和Softmax層之間共享權重矩陣。

    3 位置編碼Positional Encoding

    由于Transformer模型中既沒有遞歸,也沒有卷積,需要獲得輸入序列精準的位置信息的話,必須插入位置編碼。位置編碼精準地描述了輸入序列中各個單詞的絕對和相對位置信息,即在編碼器-解碼器的底部輸入嵌入中注入“位置編碼”,位置編碼和輸入嵌入有相同的維度,所以二者可以實現(xiàn)相加運算,位置編碼方式可以有多種,在Transformer模型中采用的是頻率不同的三角函數(shù):
     


    其中pos 是位置,i是維數(shù),也就是說,位置編碼的每個維數(shù)都對應于一個正弦曲線。波長從2π到10000·2π的幾何變化。之所以選擇這個函數(shù)是因為假設它使得模型很容易地學習相對位置,對于任何固定偏移量k,可以表示為的線性函數(shù)。

    首先,將自注意力機制和循環(huán)卷積網(wǎng)絡(RNN )和卷積神經(jīng)網(wǎng)絡(CNN)進行對比,比較它們在變長序列從三個因素來考量采用自注意力機制:首先是每一層計算的復雜程度;其次,是可以并行計算的計算量,用對序列操作的最小數(shù)目表示;第三,是網(wǎng)絡中最長相關路徑的長度。在序列學習任務中,對長序列相關性的學習是關鍵性的難點問題,前向和后向信號路徑的長度往往是影響學習效率的關鍵因素,輸入和輸出序列之間的位置越短,前向和后向信號路徑則越短,更容易學習到長序列的依賴關系,通過對比網(wǎng)絡中輸入輸出序列位置的最長通路路徑,來回答為什么采用自注意力機制來搭建Transformer模型。

     表 3-1  不同層序列操作的的最大路徑長度、每層的復雜性和最小操作數(shù)


    如表3-1所示 :不同層序列操作的的最大路徑長度、每層的復雜性和最小操作數(shù)。n是序列長度,d是表示維數(shù),k是卷積的核大小,r是受限自注意力中的鄰域的大小。在表3-1中,自注意力機制通過操作將序列的位置信息關聯(lián)起來,而RNN則需要對序列進行次操作。從計算的復雜程度來看,當序列長度n小于表示向量的維度d 時,在機器翻譯任務中性能能達到最優(yōu)。為了提高超長輸入序列的計算性能,限制自注意力中的鄰域r的大小,從而會使得最長相關路徑的長度變?yōu)?/span>

    卷積核維度為k 的單卷積層無法實現(xiàn)所有輸入和輸出位置信息的連接,所以要求有層卷積層堆疊,使得最長相關路徑的長度變長。通常,CNN的訓練成本比RNN的訓練成本要高。

    從表3-1中的對比還可以看出,自注意力機制在復雜程度、并行計算的計算量和網(wǎng)絡中最長相關路徑的長度三方面均占有優(yōu)勢。

    4 Transformer 模型的訓練

    4.1訓練數(shù)據(jù)和批次大小


    在標準的WMT2014英語-德語數(shù)據(jù)集上進行訓練,這個數(shù)據(jù)集包括大約450萬個句子數(shù)據(jù)對。句子采用字節(jié)對編碼進行編碼,源-目標詞匯表中共享大約37000個標記。對于英語-法語,使用了更大的WMT2014英語-法語數(shù)據(jù)集,由3600萬個句子組成,并將標記分割為32000詞匯。句子對按近似的序列長度排列在一起。每個訓練批都包含一組句子對,其中包含大約25000個源標記和25000個目標標記。

    4.2 硬件配置


    使用8 NVIDIAP100 GPU上訓練了Transfomer模型,使用超參數(shù)的基本模型,每個訓練步長大約需要花費0.4秒的時間,對基本模型總共訓練了10萬步或12個小時。對于大模型,步長時間為1.0秒,大模型訓練了30萬步(3.5天)。

    4.3 優(yōu)化器


    采用Adam 優(yōu)化器,參數(shù)設置為h β1 = 0.9, β2 = 0.98,并依據(jù)下述公式調(diào)整學習率:


     
    對應于第一個warmup_steps訓練步長,學習率線性增加,在后續(xù)步長中,學習率隨著步長的平方根成正比例下降,其中,warmup_steps =4000。

    4.4 正則化


    在訓練過程中采用了三種正則化方法:

    殘差Dropout:在添加子層的輸入和歸一化之前,將Dropout機制應用于每個子層的輸出,同時在編碼器-解碼器堆疊的嵌入過程和位置編碼過程中加入Dropout機制,= 0.1。

    4.5 訓練結(jié)果


    機器翻譯

    在WMT2014英德翻譯任務中,Transformer (big)比之前報告的最佳模型(包括集成)高出2.0多個BLEU,獲得BLEU分數(shù)為28.4。該模型的配置列于表5-2的底部。在8個P100 GPU 上進行訓練需要3.5天。甚至基本模型也超過了所有之前發(fā)布的模型和集合,訓練成本也大幅度縮減。

    在WMT2014年英法翻譯任務中Transformer (big)獲得了BLEU分值為 41.0分,優(yōu)于之前發(fā)布的所有其它模型,訓練成本降低 1/4。
     
    表4.5-1 在英德和英法翻譯任務中Transformer模型的BLUE 分值和其它模型BLUE 分值的對比(來源:網(wǎng)絡)

    表4.5-1同時將翻譯質(zhì)量和訓練成本與其他模型架構(gòu)的翻譯質(zhì)量和訓練成本進行了比較。通過比較訓練時間、所使用的GPU的數(shù)量以及對每個GPU5的持續(xù)單精度浮點容量的估計來估計用于訓練模型的浮點操作的數(shù)量。

    為了評估Transformer模型是否可以推廣到其他任務,在英語選區(qū)解析上進行了實驗。這個任務提出了具體的挑戰(zhàn):輸出受到強大的結(jié)構(gòu)約束,且長度遠遠長于輸入。此外,RNN序列對序列模型還無法在小數(shù)據(jù)體系中獲得最為先進的結(jié)果。

    通過在賓夕法尼亞州《華爾街日報》的數(shù)據(jù)集上訓練了大約40K句子,數(shù)據(jù)模型為的4層Transformer。此外,還在半監(jiān)督設置下訓練它,使用更大的高置信度和伯克利解析器語料庫,大約1700萬語句。對《華爾街日報》的設置使用了16K標記詞匯,對半監(jiān)督的設置使用了32K標記詞匯。

    結(jié)論:Transformer是采用自注意力機制的序列到序列模型,在編碼器-解碼器架構(gòu)的神經(jīng)網(wǎng)絡中,用多頭自注意力機制取代了RNN 層。對于翻譯任務,Transformer的訓練速度可以比基于循環(huán)層或卷積層的體系架構(gòu)要快得多。關于2014WMT英德語和WMT2014英法翻譯任務,實現(xiàn)了不錯的性能。在前一項任務中,Transformer模型的性能甚至優(yōu)于之前報告的所有其它模型。


    作者簡介

    陳之炎,北京交通大學通信與控制工程專業(yè)畢業(yè),獲得工學碩士學位,歷任長城計算機軟件與系統(tǒng)公司工程師,大唐微電子公司工程師。目前從事智能化翻譯教學系統(tǒng)的運營和維護,在人工智能深度學習和自然語言處理(NLP)方面積累有一定的經(jīng)驗。


    編輯:于騰凱

    校對:林亦霖


    數(shù)據(jù)派研究部介紹




    數(shù)據(jù)派研究部成立于2017年初,以興趣為核心劃分多個組別,各組既遵循研究部整體的知識分享實踐項目規(guī)劃,又各具特色:


    算法模型組:積極組隊參加kaggle等比賽,原創(chuàng)手把手教系列文章;

    調(diào)研分析組:通過專訪等方式調(diào)研大數(shù)據(jù)的應用,探索數(shù)據(jù)產(chǎn)品之美;

    系統(tǒng)平臺組:追蹤大數(shù)據(jù)&人工智能系統(tǒng)平臺技術前沿,對話專家;

    自然語言處理組:重于實踐,積極參加比賽及策劃各類文本分析項目;

    制造業(yè)大數(shù)據(jù)組:秉工業(yè)強國之夢,產(chǎn)學研政結(jié)合,挖掘數(shù)據(jù)價值;

    數(shù)據(jù)可視化組:將信息與藝術融合,探索數(shù)據(jù)之美,學用可視化講故事;

    網(wǎng)絡爬蟲組:爬取網(wǎng)絡信息,配合其他各組開發(fā)創(chuàng)意項目。


    點擊文末“閱讀原文”,報名數(shù)據(jù)派研究部志愿者,總有一組適合你~



    轉(zhuǎn)載須知


    如需轉(zhuǎn)載,請在開篇顯著位置注明作者和出處(轉(zhuǎn)自:數(shù)據(jù)派THUID:DatapiTHU),并在文章結(jié)尾放置數(shù)據(jù)派醒目二維碼。有原創(chuàng)標識文章,請發(fā)送【文章名稱-待授權公眾號名稱及ID】至聯(lián)系郵箱,申請白名單授權并按要求編輯。

    未經(jīng)許可的轉(zhuǎn)載以及改編者,我們將依法追究其法律責任。





    點擊“閱讀原文”加入組織~


    瀏覽 55
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報
    評論
    圖片
    表情
    推薦
    點贊
    評論
    收藏
    分享

    手機掃一掃分享

    分享
    舉報

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    北条麻妃无码在线观看 | 亚洲欧洲视频 | 九九福利 | 青青草俺就射 | 亚洲区小说区图片区 |