Transformer:ChatGPT語(yǔ)言模型背后的核心技術(shù)
Transformer是一種用于序列到序列(Sequence-to-Sequence)任務(wù)的神經(jīng)網(wǎng)絡(luò)模型,例如機(jī)器翻譯,語(yǔ)音識(shí)別和生成對(duì)話等。它使用了注意力機(jī)制來(lái)計(jì)算輸入序列和輸出序列之間的關(guān)系。
Transformer的主要優(yōu)點(diǎn)是它可以并行地處理輸入序列中的所有位置,因此在訓(xùn)練和推理時(shí)都有著很好的效率。此外,Transformer沒(méi)有使用循環(huán)結(jié)構(gòu),因此它不會(huì)受長(zhǎng)序列的影響,并且在處理長(zhǎng)序列時(shí)不會(huì)出現(xiàn)梯度消失或爆炸的問(wèn)題。

相比之下,基于循環(huán)的模型(例如基于LSTM的模型)可能在處理長(zhǎng)序列時(shí)會(huì)出現(xiàn)問(wèn)題,因?yàn)樗鼈儽仨氈饌€(gè)處理序列中的位置,這會(huì)使它們的訓(xùn)練速度變慢。另一方面,Transformer在處理短序列時(shí)可能不如基于循環(huán)的模型那么準(zhǔn)確,因?yàn)樗鼪](méi)有循環(huán)結(jié)構(gòu)可以保留先前位置的信息。
總的來(lái)說(shuō),Transformer是一種很有效的模型,特別是在處理較長(zhǎng)的序列和并行化計(jì)算時(shí)。它已經(jīng)成為了NLP(自然語(yǔ)言處理)領(lǐng)域中許多序列到序列任務(wù)的首選模型。
Transformer模型最初是由Vaswani等人在2017年提出的,并且在自然語(yǔ)言處理(NLP)領(lǐng)域得到了廣泛應(yīng)用。
其中著名的模型包括:

· BERT(Bidirectional Encoder Representations from Transformers):這是一種語(yǔ)言模型,它能夠在許多NLP任務(wù)中取得最先進(jìn)的性能。
· GPT(Generative Pre-training Transformer):這是一種自然語(yǔ)言生成模型,能夠生成各種文本,包括新聞文章,小說(shuō)和代碼等。
· Transformer-XL:這是一種擴(kuò)展的Transformer模型,能夠處理更長(zhǎng)的序列,并且在很多NLP任務(wù)中取得了最先進(jìn)的性能。
除了NLP領(lǐng)域,Transformer也被用于其他領(lǐng)域,包括計(jì)算機(jī)視覺(jué),音頻信號(hào)處理和強(qiáng)化學(xué)習(xí)等。
Transformer是一種非常強(qiáng)大的神經(jīng)網(wǎng)絡(luò)模型,但是它也有一些局限性。
其中一個(gè)局限性是它依賴于輸入序列的長(zhǎng)度。由于Transformer使用注意力機(jī)制來(lái)計(jì)算輸入序列和輸出序列之間的關(guān)系,因此它可能難以處理較長(zhǎng)的序列。雖然有一些變體,例如Transformer-XL,可以更好地處理長(zhǎng)序列,但是它們?nèi)匀淮嬖谶@個(gè)問(wèn)題。
另一個(gè)局限性是Transformer模型對(duì)于處理序列中的時(shí)間依賴性不太友好。由于Transformer沒(méi)有使用循環(huán)結(jié)構(gòu),因此它無(wú)法保留序列中先前位置的信息。這意味著Transformer在處理序列中的時(shí)間依賴性時(shí)可能不太準(zhǔn)確,例如在處理語(yǔ)音信號(hào)時(shí)。
總的來(lái)說(shuō),Transformer是一種很有效的模型,但是它并不是萬(wàn)能的。在選擇模型時(shí),應(yīng)該考慮序列的長(zhǎng)度和時(shí)間依賴性等因素,并確定Transformer是否是合適的選擇。
Transformer基本介紹
transformer 最早使用于NLP模型中,使用了 Self-Attention 機(jī)制。相較于RNN結(jié)構(gòu)可以進(jìn)行并行化訓(xùn)練,能夠擁有全局信息。
scale dot-product attention


self-attention 過(guò)程圖
query q 對(duì) key k做attention:

softmax歸一化:

權(quán)重乘value v 輸出轉(zhuǎn)化值:

合并之前的三個(gè)圖中操作:

image-20210517170611977.png
Transformer架構(gòu)
Feed-Forward組件:

應(yīng)用方向
自然語(yǔ)言處理使用場(chǎng)景:機(jī)器翻譯
Transformer:[2017] attention is all you need
Bert[2018]: Elmo, GPT
參數(shù)文件大小:
BERT(BASE) (L=12, H=768, A=12, Total Parameters=110M)
BERT(LARGE) (L=24, H=1024,A=16, Total Parameters=340M)

機(jī)器視覺(jué)中技術(shù)的演進(jìn)
IGPT:
借鑒bert思想,OpenAI嘗試對(duì)測(cè)試數(shù)據(jù)隨機(jī)mask 5 個(gè)token,最終ImageNet結(jié)果果然上升了一些(紅色)。由于馬賽克操作過(guò)于嚴(yán)重(整張圖片都mask了),盡管事實(shí)證明還是有效果的,但從輸入上看,降低了模型的擬合能力。


VIT:
嘗試過(guò)三種預(yù)訓(xùn)練方法,首先mask掉50%的patch,然后:
只預(yù)測(cè)patch的mean color
只預(yù)測(cè)一個(gè)馬賽克版的patch
用L2損失預(yù)測(cè)所有pixel。
第三種方式已經(jīng)非常接近了,但是由于研究的重點(diǎn)不在于此便淺嘗輒止了



DEIT:
在預(yù)訓(xùn)練階段,最多會(huì)mask 40%的patch。
另外,作者們其實(shí)也試過(guò)復(fù)原pixel,但效果會(huì)有1.8%的下降。對(duì)于這個(gè)現(xiàn)象,BEiT給出的猜想是,就像多層CNN一樣,編碼器最終得到的應(yīng)該是一個(gè)更全局、高維的表示,而復(fù)現(xiàn)pixel會(huì)讓后幾層太關(guān)注局部細(xì)節(jié)。


MAE:
輕量級(jí)架構(gòu)的兩大核心:
encoder輸入只包含沒(méi)有mask的像素。并且使用的是VIT的encoder block。
2.vit-huge 模型mask 的比例很高時(shí)(75%)效果依舊表現(xiàn)很好(accuracy 87.8%),同時(shí)可以加速預(yù)訓(xùn)練過(guò)程。預(yù)訓(xùn)練時(shí)僅僅只使用了imagenet-1k data。



一些值得注意的細(xì)節(jié),比如:
1.輸入側(cè)直接丟掉mask token,效果+0.7,效率x3.3
預(yù)測(cè)normalize之后的pixel,效果+0.5
3.選取數(shù)據(jù)增強(qiáng)策略,效果+0.2


思考:導(dǎo)致視覺(jué)和語(yǔ)言的masked autoencoder 不一樣的三大原因
結(jié)構(gòu):CNN天然適用于圖像,但是應(yīng)用transformer缺顯得很不自然。不過(guò)這個(gè)問(wèn)題被vit解了,后續(xù)又有IGPT的馬賽克、dVAE的離散化,patch形態(tài)相對(duì)來(lái)說(shuō)信息損失最少且高效。
信息密度:語(yǔ)言的含義比較多,一個(gè)單詞可能有很多解釋。而圖片直觀易表示。所以預(yù)測(cè)的時(shí)候圖片patch比預(yù)測(cè)單詞更容易。預(yù)測(cè)patch稍微有點(diǎn)周邊信息就夠了,可以放心大膽的mask。這點(diǎn)ViT、BEiT其實(shí)也都有,但主要就是最后一點(diǎn)沒(méi)有深究。
需要一個(gè)Decoder:因?yàn)閳D片信息密度有限,復(fù)原pixel這種細(xì)粒度信息會(huì)讓模型強(qiáng)上加強(qiáng)。那怎么優(yōu)雅地復(fù)原呢?BEiT已經(jīng)說(shuō)過(guò)了,在預(yù)訓(xùn)練圖像encoder的時(shí)候,太關(guān)注細(xì)節(jié)就損失了高維抽象能力。所以凱明大神加了一個(gè)decoder。到這里分工就很明確了,encoder負(fù)責(zé)抽取高維表示,decoder則負(fù)責(zé)細(xì)粒度還原。
規(guī)模大的簡(jiǎn)單算法是深度學(xué)習(xí)的核心。在NLP中,簡(jiǎn)單的自我監(jiān)督學(xué)習(xí)方法能夠從模型的規(guī)模中獲益。在計(jì)算機(jī)視覺(jué)中,實(shí)用的預(yù)訓(xùn)練范例主要是監(jiān)督式的。在這項(xiàng)研究中,自我監(jiān)督學(xué)習(xí)已經(jīng)取得了進(jìn)展。我們?cè)贗mageNet和遷移學(xué)習(xí)中觀察到自動(dòng)編碼器(一種類(lèi)似于NLP技術(shù)的簡(jiǎn)單的自我監(jiān)督方法)與NLP中的技術(shù)類(lèi)似,提供了可擴(kuò)展的好處。視覺(jué)中的自我監(jiān)督學(xué)習(xí)現(xiàn)在可能會(huì)走上一條與NLP類(lèi)似的軌跡。另一方面,我們注意到,圖像和語(yǔ)言是不同性質(zhì)的信號(hào),這種差異必須仔細(xì)處理。圖像僅僅是記錄的光,沒(méi)有語(yǔ)義分解為視覺(jué)類(lèi)似物的語(yǔ)義分解。我們不是試圖去除物體,而是去除很可能不構(gòu)成語(yǔ)義段的隨機(jī)斑塊。同樣地,我們的MAE重建了像素,而這些像素并不是語(yǔ)義實(shí)體。從測(cè)試的結(jié)果上看,MAE能推斷出了復(fù)雜的、整體的重建,這表明它已經(jīng)學(xué)會(huì)了許多視覺(jué)概念(語(yǔ)義)。我們假設(shè),這種行為的發(fā)生通過(guò)MAE內(nèi)部豐富的隱藏表征。我們希望這個(gè)觀點(diǎn)能給未來(lái)的工作帶來(lái)啟發(fā)。更廣泛的影響。建議的方法預(yù)測(cè)內(nèi)容基于訓(xùn)練數(shù)據(jù)集的學(xué)習(xí)統(tǒng)計(jì),因此將反映這些數(shù)據(jù)中的偏差,包括具有負(fù)面社會(huì)影響的偏差。該模型可能產(chǎn)生不存在的內(nèi)容。這些問(wèn)題值得在這項(xiàng)工作的基礎(chǔ)上進(jìn)一步研究和考慮,以生成圖像。
未來(lái)展望:
有可能取代所有組件。
每個(gè)領(lǐng)域都可嘗試,遍地開(kāi)花。
一文讀懂Transformer 主流的序列到序列模型是基于編碼器-解碼器的循環(huán)或卷積神經(jīng)網(wǎng)絡(luò),注意力機(jī)制的提出,優(yōu)化了編解碼器的性能,從而使得網(wǎng)絡(luò)性能達(dá)到最優(yōu)。利用注意力機(jī)制構(gòu)建出新的網(wǎng)絡(luò)架構(gòu)Transformer, 完勝了循環(huán)或卷積神經(jīng)網(wǎng)絡(luò)。Transformer 是第一個(gè)完全依賴于自注意力機(jī)制來(lái)計(jì)算其輸入和輸出的表示的轉(zhuǎn)換模型。Transformer可以并行訓(xùn)練,訓(xùn)練時(shí)間更短。 1 Transformer的模型架構(gòu) 序列到序列模型采用的是編碼器-解碼器結(jié)構(gòu),編碼器將輸入序列(,,……,映射成符號(hào)表示z=(,,……,,根據(jù)給定的Z ,解碼器生成輸出序列(,,……,,在每一個(gè)步長(zhǎng)里,模型利用前一個(gè)步長(zhǎng)中生成的向量和該步長(zhǎng)的輸入,生成輸出符號(hào)。 Transformer模型架構(gòu)如圖1-1所示,編碼器-解碼器結(jié)構(gòu)采用堆疊的多頭注意力機(jī)制加全連接層,圖中左邊的是編碼器結(jié)構(gòu),右邊的是解碼器結(jié)構(gòu):

圖 1-1 ???堆疊的編碼器-解碼器結(jié)構(gòu)
編碼器:編碼器由6個(gè)相同的塊結(jié)構(gòu)堆疊而成 N=6,每個(gè)塊結(jié)構(gòu)進(jìn)一步分成兩個(gè)子層:即一個(gè)多頭的自注意力機(jī)制和一個(gè)前饋網(wǎng)絡(luò)全連接層,在塊中的每一個(gè)子層之后,增加一個(gè)歸一化層(Add&Norm),每個(gè)子層的輸出均為歸一化的LayerNorm(x + Sublayer(x)),包括詞嵌入層,模塊中所有子層的輸出的維數(shù)均為512,即?= 512。 解碼器:同理,解碼器也由6個(gè)相同的塊結(jié)構(gòu)堆疊而成 N=6,每個(gè)塊結(jié)構(gòu)在編碼器兩個(gè)子層的基礎(chǔ)之上,增加了第三個(gè)子層,即增加了一個(gè)多頭自注意力子層。與編碼器類(lèi)似,在塊中的每一個(gè)子層之后,增加一個(gè)歸一化層(Add&Norm)。在解碼器端,對(duì)解碼器堆棧中的自注意力子層進(jìn)行了修改,以防止位置編碼和后續(xù)位置編碼相關(guān),通過(guò)這種掩蔽,確保了對(duì)位置i的預(yù)測(cè)只能依賴于小于i的位置的已知輸出。 2 Self-attention?自注意力機(jī)制 Attention 函數(shù)將三元組Q(Query)、K(Key)、V(Value) 映射成輸出,其中三元組Q(Query)、K(Key)、V(Value)和輸出均為向量,輸出是V(Value)的加權(quán)和,其中的權(quán)重是Q(Query)和K(Key)對(duì)應(yīng)的組合計(jì)算出來(lái)的數(shù)值。 1)帶縮放的點(diǎn)積注意力機(jī)制Scaled dot-product attention 帶縮放的點(diǎn)積注意力機(jī)制(Scaled dot-product attention )的公式如下:

在上面公式中Q和K中的向量維度都是,V的向量維度是
,計(jì)算所有K向量和Q向量的點(diǎn)積,分別除以
,并應(yīng)用一個(gè)Softmax函數(shù)來(lái)獲得這些值的權(quán)重。實(shí)際上在self-Attention中,
,為了方便將Attention的計(jì)算轉(zhuǎn)化為矩陣運(yùn)算,論文中采用了點(diǎn)積的形式求相似度。常見(jiàn)的計(jì)算方法除了點(diǎn)積還有MLP網(wǎng)絡(luò),但是點(diǎn)積能轉(zhuǎn)化為矩陣運(yùn)算,計(jì)算速度更快。 兩個(gè)最常用的注意力函數(shù)是:加注意力函數(shù)(Additive Attention)和點(diǎn)積注意力函數(shù)(Dot-product Attention)。除了
的縮放因子外,帶縮放的點(diǎn)積注意力機(jī)制采用的是點(diǎn)積注意力函數(shù),加注意力函數(shù)使用具有單個(gè)隱含層的前饋網(wǎng)絡(luò)來(lái)計(jì)算兼容性函數(shù)。雖然這兩者在理論復(fù)雜度上相似,但點(diǎn)積注意力函數(shù)更快,更節(jié)省空間,因?yàn)樗梢允褂酶叨葍?yōu)化的矩陣乘法碼來(lái)實(shí)現(xiàn)。而對(duì)于
較小的值,這兩種機(jī)制的性能相似,但在不加大更大
的值的情況下,加注意力函數(shù)優(yōu)于點(diǎn)積注意力函數(shù)。對(duì)于較大的
值,點(diǎn)積相應(yīng)變大,將Softmax函數(shù)推到梯度極小的區(qū)域。為了抵消這種影響,我們通過(guò)
來(lái)縮放點(diǎn)積。 Transformer模型在三處采用了多頭注意力機(jī)制:
在編碼器-解碼器注意力層,Q值來(lái)自上一個(gè)解碼器層,K值和V值來(lái)自編碼器的輸出,從而使得解碼器的每一個(gè)位置信息均和輸入序列的位置信息相關(guān),這種架構(gòu)模仿了序列到序列模型編解碼器注意力機(jī)制。
編碼器中包括自注意力層,在自注意力層中,Q 值、K值和V值均來(lái)自編碼器上一層的輸出,編碼器中的位置信息參與到前一層的位置編碼中去。
同理,解碼器中的自注意力機(jī)制使得解碼器中的位置信息均參與到所有位置信息的解碼中去。
2)全連接前饋網(wǎng)絡(luò) 在Transfomer編碼器-解碼器架構(gòu)的每一塊中,除了包含多頭注意力機(jī)制外,還包含一個(gè)全連接前饋網(wǎng)絡(luò),全連接前饋網(wǎng)絡(luò)層包含兩次ReLU激活函數(shù)的線性變換。

不同層之間的全連接前饋網(wǎng)絡(luò)的參數(shù)各不相同,模型輸入輸出的維度是512 = 512, 層內(nèi)部的維度是2048 ,即= 2048。 3)嵌入和Softmax 和其它序列到序列的模型相類(lèi)似,Transformer模型利用詞嵌入技術(shù)將輸入標(biāo)記和輸出標(biāo)記轉(zhuǎn)化為維度為的向量,采用可訓(xùn)練的線性變換和Softmax函數(shù),將解碼器的輸出變換成待預(yù)測(cè)的下一個(gè)標(biāo)記的概率。在Transformer模型中,兩個(gè)嵌入層和Softmax層之間共享權(quán)重矩陣。 3 位置編碼Positional Encoding 由于Transformer模型中既沒(méi)有遞歸,也沒(méi)有卷積,需要獲得輸入序列精準(zhǔn)的位置信息的話,必須插入位置編碼。位置編碼精準(zhǔn)地描述了輸入序列中各個(gè)單詞的絕對(duì)和相對(duì)位置信息,即在編碼器-解碼器的底部輸入嵌入中注入“位置編碼”,位置編碼和輸入嵌入有相同的維度,所以二者可以實(shí)現(xiàn)相加運(yùn)算,位置編碼方式可以有多種,在Transformer模型中采用的是頻率不同的三角函數(shù):

其中pos 是位置,i是維數(shù),也就是說(shuō),位置編碼的每個(gè)維數(shù)都對(duì)應(yīng)于一個(gè)正弦曲線。波長(zhǎng)從2π到10000·2π的幾何變化。之所以選擇這個(gè)函數(shù)是因?yàn)榧僭O(shè)它使得模型很容易地學(xué)習(xí)相對(duì)位置,對(duì)于任何固定偏移量k,
可以表示為
的線性函數(shù)。 首先,將自注意力機(jī)制和循環(huán)卷積網(wǎng)絡(luò)(RNN )和卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行對(duì)比,比較它們?cè)谧冮L(zhǎng)序列
從三個(gè)因素來(lái)考量采用自注意力機(jī)制:首先是每一層計(jì)算的復(fù)雜程度;其次,是可以并行計(jì)算的計(jì)算量,用對(duì)序列操作的最小數(shù)目表示;第三,是網(wǎng)絡(luò)中最長(zhǎng)相關(guān)路徑的長(zhǎng)度。在序列學(xué)習(xí)任務(wù)中,對(duì)長(zhǎng)序列相關(guān)性的學(xué)習(xí)是關(guān)鍵性的難點(diǎn)問(wèn)題,前向和后向信號(hào)路徑的長(zhǎng)度往往是影響學(xué)習(xí)效率的關(guān)鍵因素,輸入和輸出序列之間的位置越短,前向和后向信號(hào)路徑則越短,更容易學(xué)習(xí)到長(zhǎng)序列的依賴關(guān)系,通過(guò)對(duì)比網(wǎng)絡(luò)中輸入輸出序列位置的最長(zhǎng)通路路徑,來(lái)回答為什么采用自注意力機(jī)制來(lái)搭建Transformer模型。

?表 3-1 ?不同層序列操作的的最大路徑長(zhǎng)度、每層的復(fù)雜性和最小操作數(shù) 如表3-1所示?:不同層序列操作的的最大路徑長(zhǎng)度、每層的復(fù)雜性和最小操作數(shù)。n是序列長(zhǎng)度,d是表示維數(shù),k是卷積的核大小,r是受限自注意力中的鄰域的大小。在表3-1中,自注意力機(jī)制通過(guò)
操作將序列的位置信息關(guān)聯(lián)起來(lái),而RNN則需要對(duì)序列進(jìn)行
次操作。從計(jì)算的復(fù)雜程度來(lái)看,當(dāng)序列長(zhǎng)度n小于表示向量的維度d 時(shí),在機(jī)器翻譯任務(wù)中性能能達(dá)到最優(yōu)。為了提高超長(zhǎng)輸入序列的計(jì)算性能,限制自注意力中的鄰域r的大小,從而會(huì)使得最長(zhǎng)相關(guān)路徑的長(zhǎng)度變?yōu)?img src="https://file1.elecfans.com//web2/M00/98/E7/wKgZomTnbmeAR3MzAAACIkM-g-M345.png" alt="ec26f652-a997-11ed-bfe3-dac502259ad0.png" />。 卷積核維度為k 的單卷積層無(wú)法實(shí)現(xiàn)所有輸入和輸出位置信息的連接,所以要求有
層卷積層堆疊,使得最長(zhǎng)相關(guān)路徑的長(zhǎng)度變長(zhǎng)。通常,CNN的訓(xùn)練成本比RNN的訓(xùn)練成本要高。 從表3-1中的對(duì)比還可以看出,自注意力機(jī)制在復(fù)雜程度、并行計(jì)算的計(jì)算量和網(wǎng)絡(luò)中最長(zhǎng)相關(guān)路徑的長(zhǎng)度三方面均占有優(yōu)勢(shì)。 4 Transformer 模型的訓(xùn)練
4.1訓(xùn)練數(shù)據(jù)和批次大小
在標(biāo)準(zhǔn)的WMT2014英語(yǔ)-德語(yǔ)數(shù)據(jù)集上進(jìn)行訓(xùn)練,這個(gè)數(shù)據(jù)集包括大約450萬(wàn)個(gè)句子數(shù)據(jù)對(duì)。句子采用字節(jié)對(duì)編碼進(jìn)行編碼,源-目標(biāo)詞匯表中共享大約37000個(gè)標(biāo)記。對(duì)于英語(yǔ)-法語(yǔ),使用了更大的WMT2014英語(yǔ)-法語(yǔ)數(shù)據(jù)集,由3600萬(wàn)個(gè)句子組成,并將標(biāo)記分割為32000詞匯。句子對(duì)按近似的序列長(zhǎng)度排列在一起。每個(gè)訓(xùn)練批都包含一組句子對(duì),其中包含大約25000個(gè)源標(biāo)記和25000個(gè)目標(biāo)標(biāo)記。
4.2 硬件配置
使用8 NVIDIAP100 GPU上訓(xùn)練了Transfomer模型,使用超參數(shù)的基本模型,每個(gè)訓(xùn)練步長(zhǎng)大約需要花費(fèi)0.4秒的時(shí)間,對(duì)基本模型總共訓(xùn)練了10萬(wàn)步或12個(gè)小時(shí)。對(duì)于大模型,步長(zhǎng)時(shí)間為1.0秒,大模型訓(xùn)練了30萬(wàn)步(3.5天)。
4.3 優(yōu)化器
采用Adam 優(yōu)化器,參數(shù)設(shè)置為h β1 = 0.9, β2 = 0.98,并依據(jù)下述公式調(diào)整學(xué)習(xí)率:

對(duì)應(yīng)于第一個(gè)warmup_steps訓(xùn)練步長(zhǎng),學(xué)習(xí)率線性增加,在后續(xù)步長(zhǎng)中,學(xué)習(xí)率隨著步長(zhǎng)的平方根成正比例下降,其中,warmup_steps =4000。
4.4 正則化
在訓(xùn)練過(guò)程中采用了三種正則化方法: 殘差Dropout:在添加子層的輸入和歸一化之前,將Dropout機(jī)制應(yīng)用于每個(gè)子層的輸出,同時(shí)在編碼器-解碼器堆疊的嵌入過(guò)程和位置編碼過(guò)程中加入Dropout機(jī)制,
= 0.1。
4.5 訓(xùn)練結(jié)果
機(jī)器翻譯 在WMT2014英德翻譯任務(wù)中,Transformer (big)比之前報(bào)告的最佳模型(包括集成)高出2.0多個(gè)BLEU,獲得BLEU分?jǐn)?shù)為28.4。該模型的配置列于表5-2的底部。在8個(gè)P100 GPU 上進(jìn)行訓(xùn)練需要3.5天。甚至基本模型也超過(guò)了所有之前發(fā)布的模型和集合,訓(xùn)練成本也大幅度縮減。 在WMT2014年英法翻譯任務(wù)中Transformer (big)獲得了BLEU分值為 41.0分,優(yōu)于之前發(fā)布的所有其它模型,訓(xùn)練成本降低 1/4。

表4.5-1 在英德和英法翻譯任務(wù)中Transformer模型的BLUE 分值和其它模型BLUE 分值的對(duì)比(來(lái)源:網(wǎng)絡(luò)) 表4.5-1同時(shí)將翻譯質(zhì)量和訓(xùn)練成本與其他模型架構(gòu)的翻譯質(zhì)量和訓(xùn)練成本進(jìn)行了比較。通過(guò)比較訓(xùn)練時(shí)間、所使用的GPU的數(shù)量以及對(duì)每個(gè)GPU5的持續(xù)單精度浮點(diǎn)容量的估計(jì)來(lái)估計(jì)用于訓(xùn)練模型的浮點(diǎn)操作的數(shù)量。 為了評(píng)估Transformer模型是否可以推廣到其他任務(wù),在英語(yǔ)選區(qū)解析上進(jìn)行了實(shí)驗(yàn)。這個(gè)任務(wù)提出了具體的挑戰(zhàn):輸出受到強(qiáng)大的結(jié)構(gòu)約束,且長(zhǎng)度遠(yuǎn)遠(yuǎn)長(zhǎng)于輸入。此外,RNN序列對(duì)序列模型還無(wú)法在小數(shù)據(jù)體系中獲得最為先進(jìn)的結(jié)果。 通過(guò)在賓夕法尼亞州《華爾街日?qǐng)?bào)》的數(shù)據(jù)集上訓(xùn)練了大約40K句子,數(shù)據(jù)模型為
的4層Transformer。此外,還在半監(jiān)督設(shè)置下訓(xùn)練它,使用更大的高置信度和伯克利解析器語(yǔ)料庫(kù),大約1700萬(wàn)語(yǔ)句。對(duì)《華爾街日?qǐng)?bào)》的設(shè)置使用了16K標(biāo)記詞匯,對(duì)半監(jiān)督的設(shè)置使用了32K標(biāo)記詞匯。 結(jié)論:Transformer是采用自注意力機(jī)制的序列到序列模型,在編碼器-解碼器架構(gòu)的神經(jīng)網(wǎng)絡(luò)中,用多頭自注意力機(jī)制取代了RNN 層。對(duì)于翻譯任務(wù),Transformer的訓(xùn)練速度可以比基于循環(huán)層或卷積層的體系架構(gòu)要快得多。關(guān)于2014WMT英德語(yǔ)和WMT2014英法翻譯任務(wù),實(shí)現(xiàn)了不錯(cuò)的性能。在前一項(xiàng)任務(wù)中,Transformer模型的性能甚至優(yōu)于之前報(bào)告的所有其它模型。
作者簡(jiǎn)介
陳之炎,北京交通大學(xué)通信與控制工程專業(yè)畢業(yè),獲得工學(xué)碩士學(xué)位,歷任長(zhǎng)城計(jì)算機(jī)軟件與系統(tǒng)公司工程師,大唐微電子公司工程師。目前從事智能化翻譯教學(xué)系統(tǒng)的運(yùn)營(yíng)和維護(hù),在人工智能深度學(xué)習(xí)和自然語(yǔ)言處理(NLP)方面積累有一定的經(jīng)驗(yàn)。
Transformer也不是萬(wàn)能的
Transformer 最初出現(xiàn)在 2017 年的一篇論文中:《Attention Is All You Need》。在其他人工智能方法中,系統(tǒng)會(huì)首先關(guān)注輸入數(shù)據(jù)的局部 patch,然后構(gòu)建整體。例如,在語(yǔ)言模型中,鄰近的單詞首先會(huì)被組合在一起。相比之下,Transformer 運(yùn)行程序以便輸入數(shù)據(jù)中的每個(gè)元素都連接或關(guān)注其他元素。研究人員將此稱為「自注意力」。這意味著一旦開(kāi)始訓(xùn)練,Transformer 就可以看到整個(gè)數(shù)據(jù)集的跡。
在 Transformer 出現(xiàn)之前,人工智能在語(yǔ)言任務(wù)上的進(jìn)展一直落后于其他領(lǐng)域的發(fā)展?!冈谶^(guò)去 10 年發(fā)生的這場(chǎng)深度學(xué)習(xí)革命中,自然語(yǔ)言處理在某種程度上是后來(lái)者,」馬薩諸塞大學(xué)洛厄爾分校的計(jì)算機(jī)科學(xué)家 Anna Rumshisky 說(shuō),「從某種意義上說(shuō),NLP 曾落后于計(jì)算機(jī)視覺(jué),而 Transformer 改變了這一點(diǎn)?!?/p>
Transformer 很快成為專注于分析和預(yù)測(cè)文本的單詞識(shí)別等應(yīng)用程序的引領(lǐng)者。它引發(fā)了一波工具浪潮,比如 OpenAI 的 GPT-3 可以在數(shù)千億個(gè)單詞上進(jìn)行訓(xùn)練并生成連貫的新文本。
Transformer 的成功促使人工智能領(lǐng)域的研究者思考:這個(gè)模型還能做些什么?
答卷正在徐徐展開(kāi)——Transformer 被證明具有驚人的豐富功能。在某些視覺(jué)任務(wù)中,例如圖像分類(lèi),使用 Transformer 的神經(jīng)網(wǎng)絡(luò)比不使用 Transformer 的神經(jīng)網(wǎng)絡(luò)更快、更準(zhǔn)確。對(duì)于其他人工智能領(lǐng)域的新興研究,例如一次處理多種輸入或完成規(guī)劃任務(wù),Transformer 也可以處理得更多、更好。
「Transformer 似乎在機(jī)器學(xué)習(xí)領(lǐng)域的許多問(wèn)題上具有相當(dāng)大的變革性,包括計(jì)算機(jī)視覺(jué),」在慕尼黑寶馬公司從事與自動(dòng)駕駛汽車(chē)計(jì)算機(jī)視覺(jué)工作的 Vladimir Haltakov 說(shuō)。
就在十年前,AI 的不同子領(lǐng)域之間還幾乎是互不相通的,但 Transformer 的到來(lái)表明了融合的可能性?!肝艺J(rèn)為 Transformer 之所以如此受歡迎,是因?yàn)樗故境隽送ㄓ玫臐摿?,」德克薩斯大學(xué)奧斯汀分校的計(jì)算機(jī)科學(xué)家 Atlas Wang 說(shuō):「我們有充分的理由嘗試在整個(gè) AI 任務(wù)范圍內(nèi)嘗試使用 Transformer?!?/p>
從「語(yǔ)言」到「視覺(jué)」
在《Attention Is All You Need》發(fā)布幾個(gè)月后,擴(kuò)展 Transformer 應(yīng)用范圍的最有希望的動(dòng)作就開(kāi)始了。Alexey Dosovitskiy 當(dāng)時(shí)在谷歌大腦柏林辦公室工作,正在研究計(jì)算機(jī)視覺(jué),這是一個(gè)專注于教授計(jì)算機(jī)如何處理和分類(lèi)圖像的 AI 子領(lǐng)域。
Alexey Dosovitskiy。
與該領(lǐng)域的幾乎所有其他人一樣,他一直使用卷積神經(jīng)網(wǎng)絡(luò) (CNN) 。多年來(lái),正是 CNN 推動(dòng)了深度學(xué)習(xí),尤其是計(jì)算機(jī)視覺(jué)領(lǐng)域的所有重大飛躍。CNN 通過(guò)對(duì)圖像中的像素重復(fù)應(yīng)用濾波器來(lái)進(jìn)行特征識(shí)別。基于 CNN,照片應(yīng)用程序可以按人臉給你的照片分門(mén)別類(lèi),或是將牛油果與云區(qū)分開(kāi)來(lái)。因此,CNN 被認(rèn)為是視覺(jué)任務(wù)必不可少的。
當(dāng)時(shí),Dosovitskiy 正在研究該領(lǐng)域最大的挑戰(zhàn)之一,即在不增加處理時(shí)間的前提下,將 CNN 放大:在更大的數(shù)據(jù)集上訓(xùn)練,表示更高分辨率的圖像。但隨后他看到,Transformer 已經(jīng)取代了以前幾乎所有與語(yǔ)言相關(guān)的 AI 任務(wù)的首選工具?!肝覀冿@然從正在發(fā)生的事情中受到了啟發(fā),」他說(shuō),「我們想知道,是否可以在視覺(jué)上做類(lèi)似的事情?」 這個(gè)想法某種程度上說(shuō)得通——畢竟,如果 Transformer 可以處理大數(shù)據(jù)集的單詞,為什么不能處理圖片呢?
最終的結(jié)果是:在 2021 年 5 月的一次會(huì)議上,一個(gè)名為 Vision Transformer(ViT)的網(wǎng)絡(luò)出現(xiàn)了。該模型的架構(gòu)與 2017 年提出的第一個(gè) Transformer 的架構(gòu)幾乎相同,只有微小的變化,這讓它能夠做到分析圖像,而不只是文字?!刚Z(yǔ)言往往是離散的,」Rumshisky 說(shuō):「所以必須使圖像離散化?!?/p>
ViT 團(tuán)隊(duì)知道,語(yǔ)言的方法無(wú)法完全模仿,因?yàn)槊總€(gè)像素的自注意力在計(jì)算時(shí)間上會(huì)非常昂貴。所以,他們將較大的圖像劃分為正方形單元或 token。大小是任意的,因?yàn)?token 可以根據(jù)原始圖像的分辨率變大或變?。J(rèn)為一條邊 16 像素),但通過(guò)分組處理像素,并對(duì)每個(gè)像素應(yīng)用自注意力,ViT 可以快速處理大型訓(xùn)練數(shù)據(jù)集,從而產(chǎn)生越來(lái)越準(zhǔn)確的分類(lèi)。
Transformer 能夠以超過(guò) 90% 的準(zhǔn)確率對(duì)圖像進(jìn)行分類(lèi),這比 Dosovitskiy 預(yù)期的結(jié)果要好得多,并在 ImageNet 圖像數(shù)據(jù)集上實(shí)現(xiàn)了新的 SOTA Top-1 準(zhǔn)確率。ViT 的成功表明,卷積可能不像研究人員認(rèn)為的那樣對(duì)計(jì)算機(jī)視覺(jué)至關(guān)重要。
與 Dosovitskiy 合作開(kāi)發(fā) ViT 的谷歌大腦蘇黎世辦公室的 Neil Houlsby 說(shuō):「我認(rèn)為 CNN 很可能在中期被視覺(jué) Transformer 或其衍生品所取代?!顾J(rèn)為,未來(lái)的模型可能是純粹的 Transformer,或者是為現(xiàn)有模型增加自注意力的方法。
一些其他結(jié)果驗(yàn)證了這些預(yù)測(cè)。研究人員定期在 ImageNet 數(shù)據(jù)庫(kù)上測(cè)試他們的圖像分類(lèi)模型,在 2022 年初,ViT 的更新版本僅次于將 CNN 與 Transformer 相結(jié)合的新方法。而此前長(zhǎng)期的冠軍——沒(méi)有 Transformer 的 CNN,目前只能勉強(qiáng)進(jìn)入前 10 名。
Transformer 的工作原理
ImageNet 結(jié)果表明,Transformer 可以與領(lǐng)先的 CNN 競(jìng)爭(zhēng)。但谷歌大腦加州山景城辦公室的計(jì)算機(jī)科學(xué)家 Maithra Raghu 想知道,它們是否和 CNN 一樣「看到」圖像。神經(jīng)網(wǎng)絡(luò)是一個(gè)難以破譯的「黑盒子」,但有一些方法可以窺探其內(nèi)部——例如通過(guò)逐層檢查網(wǎng)絡(luò)的輸入和輸出了解訓(xùn)練數(shù)據(jù)如何流動(dòng)。Raghu 的團(tuán)隊(duì)基本上就是這樣做的——他們將 ViT 拆開(kāi)了。
Maithra Raghu
她的團(tuán)隊(duì)確定了自注意力在算法中導(dǎo)致不同感知的方式。歸根結(jié)底,Transformer 的力量來(lái)自于它處理圖像編碼數(shù)據(jù)的方式?!冈?CNN 中,你是從非常局部的地方開(kāi)始,然后慢慢獲得全局視野,」Raghu 說(shuō)。CNN 逐個(gè)像素地識(shí)別圖像,通過(guò)從局部到全局的方式來(lái)識(shí)別角或線等特征。但是在帶有自注意力的 Transformer 中,即使是信息處理的第一層也會(huì)在相距很遠(yuǎn)的圖像位置之間建立聯(lián)系(就像語(yǔ)言一樣)。如果說(shuō) CNN 的方法就像從單個(gè)像素開(kāi)始并用變焦鏡頭縮小遠(yuǎn)處物體的像的放大倍數(shù),那么 Transformer 就是慢慢地將整個(gè)模糊圖像聚焦。
這種差異在 Transformer 最初專注的語(yǔ)言領(lǐng)域更容易理解,思考一下這些句子:「貓頭鷹發(fā)現(xiàn)了一只松鼠。它試圖用爪子抓住它,但只抓住了尾巴的末端?!沟诙涞慕Y(jié)構(gòu)令人困惑:「它」指的是什么?只關(guān)注「它」鄰近的單詞的 CNN 會(huì)遇到困難,但是將每個(gè)單詞與其他單詞連接起來(lái)的 Transformer 可以識(shí)別出貓頭鷹在抓松鼠,而松鼠失去了部分尾巴。

顯然,Transformer 處理圖像的方式與卷積網(wǎng)絡(luò)有著本質(zhì)上的不同,研究人員變得更加興奮。Transformer 在將數(shù)據(jù)從一維字符串(如句子)轉(zhuǎn)換為二維數(shù)組(如圖像)方面的多功能性表明,這樣的模型可以處理許多其他類(lèi)型的數(shù)據(jù)。例如,Wang 認(rèn)為,Transformer 可能是朝著實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)架構(gòu)的融合邁出的一大步,從而產(chǎn)生了一種通用的計(jì)算機(jī)視覺(jué)方法——也許也適用于其他 AI 任務(wù)?!府?dāng)然,要讓它真正發(fā)生是有局限性的,但如果有一種可以通用的模型,讓你可以將各種數(shù)據(jù)放在一臺(tái)機(jī)器上,那肯定是非常棒的?!?/p>
關(guān)于 ViT 的展望
現(xiàn)在研究人員希望將 Transformer 應(yīng)用于一項(xiàng)更艱巨的任務(wù):創(chuàng)造新圖像。GPT-3 等語(yǔ)言工具可以根據(jù)其訓(xùn)練數(shù)據(jù)生成新文本。在去年發(fā)表的一篇論文《TransGAN: Two Pure Transformers Can Make One Strong GAN, and That Can Scale Up》中,Wang 組合了兩個(gè) Transformer 模型,試圖對(duì)圖像做同樣的事情,但這是一個(gè)困難得多的問(wèn)題。當(dāng)雙 Transformer 網(wǎng)絡(luò)在超過(guò) 200000 個(gè)名人的人臉上進(jìn)行訓(xùn)練時(shí),它以中等分辨率合成了新的人臉圖像。根據(jù)初始分?jǐn)?shù)(一種評(píng)估神經(jīng)網(wǎng)絡(luò)生成的圖像的標(biāo)準(zhǔn)方法),生成的名人面孔令人印象深刻,并且至少與 CNN 創(chuàng)建的名人一樣令人信以為真。
Wang 認(rèn)為,Transformer 在生成圖像方面的成功比 ViT 在圖像分類(lèi)方面的能力更令人驚訝?!干赡P托枰C合能力,需要能夠添加信息以使其看起來(lái)合理,」他說(shuō)。與分類(lèi)領(lǐng)域一樣,Transformer 方法正在生成領(lǐng)域取代卷積網(wǎng)絡(luò)。
Raghu 和 Wang 還看到了 Transformer 在多模態(tài)處理中的新用途?!敢郧白銎饋?lái)比較棘手,」Raghu 說(shuō),因?yàn)槊糠N類(lèi)型的數(shù)據(jù)都有自己的專門(mén)模型,方法之間是孤立的。但是 Transformer 提出了一種組合多個(gè)輸入源的方法。
「有很多有趣的應(yīng)用程序可以結(jié)合其中一些不同類(lèi)型的數(shù)據(jù)和圖像?!估?,多模態(tài)網(wǎng)絡(luò)可能會(huì)為一個(gè)系統(tǒng)提供支持,讓系統(tǒng)除了聽(tīng)一個(gè)人的聲音外,還可以讀取一個(gè)人的唇語(yǔ)?!改憧梢該碛胸S富的語(yǔ)言和圖像信息表征,」Raghu 說(shuō),「而且比以前更深入?!?/p>
這些面孔是在對(duì)超過(guò) 200000 張名人面孔的數(shù)據(jù)集進(jìn)行訓(xùn)練后,由基于 Transformer 的網(wǎng)絡(luò)創(chuàng)建的。
新的一系列研究表明了 Transformer 在其他人工智能領(lǐng)域的一系列新用途,包括教機(jī)器人識(shí)別人體運(yùn)動(dòng)、訓(xùn)練機(jī)器識(shí)別語(yǔ)音中的情緒以及檢測(cè)心電圖中的壓力水平。另一個(gè)帶有 Transformer 組件的程序是 AlphaFold,它以快速預(yù)測(cè)蛋白質(zhì)結(jié)構(gòu)的能力,解決了五十年來(lái)蛋白質(zhì)分子折疊問(wèn)題,成為了名噪一時(shí)的頭條新聞。
Transformer isn't all you need
即使 Transformer 有助于整合和改進(jìn) AI 工具,但和其他新興技術(shù)一樣,Transformer 也存在代價(jià)高昂的特點(diǎn)。一個(gè) Transformer 模型需要在預(yù)訓(xùn)練階段消耗大量的計(jì)算能力,才能擊敗之前的競(jìng)爭(zhēng)對(duì)手。
這可能是個(gè)問(wèn)題。「人們對(duì)高分辨率的圖像越來(lái)越感興趣,」Wang 表示。訓(xùn)練費(fèi)用可能是阻礙 Transformer 推廣開(kāi)來(lái)的一個(gè)不利因素。然而,Raghu 認(rèn)為,訓(xùn)練障礙可以借助復(fù)雜的濾波器和其他工具來(lái)克服。
Wang 還指出,盡管視覺(jué) transformer 已經(jīng)在推動(dòng) AI 領(lǐng)域的進(jìn)步,但許多新模型仍然包含了卷積的最佳部分。他說(shuō),這意味著未來(lái)的模型更有可能同時(shí)使用這兩種模式,而不是完全放棄 CNN。
同時(shí),這也表明,一些混合架構(gòu)擁有誘人的前景,它們以一種當(dāng)前研究者無(wú)法預(yù)測(cè)的方式利用 transformer 的優(yōu)勢(shì)。「也許我們不應(yīng)該急于得出結(jié)論,認(rèn)為 transformer 就是最完美的那個(gè)模型,」Wang 說(shuō)。但越來(lái)越明顯的是,transformer 至少會(huì)是 AI shop 里所有新型超級(jí)工具的一部分。
編輯:黃飛
?
電子發(fā)燒友App























評(píng)論