Transformer:ChatGPT語言模型背后的核心技術(shù)
Transformer是一種用于序列到序列(Sequence-to-Sequence)任務(wù)的神經(jīng)網(wǎng)絡(luò)模型,例如機(jī)器翻譯,語音識別和生成對話等。它使用了注意力機(jī)制來計算輸入序列和輸出序列之間的關(guān)系。
Transformer的主要優(yōu)點是它可以并行地處理輸入序列中的所有位置,因此在訓(xùn)練和推理時都有著很好的效率。此外,Transformer沒有使用循環(huán)結(jié)構(gòu),因此它不會受長序列的影響,并且在處理長序列時不會出現(xiàn)梯度消失或爆炸的問題。
相比之下,基于循環(huán)的模型(例如基于LSTM的模型)可能在處理長序列時會出現(xiàn)問題,因為它們必須逐個處理序列中的位置,這會使它們的訓(xùn)練速度變慢。另一方面,Transformer在處理短序列時可能不如基于循環(huán)的模型那么準(zhǔn)確,因為它沒有循環(huán)結(jié)構(gòu)可以保留先前位置的信息。
總的來說,Transformer是一種很有效的模型,特別是在處理較長的序列和并行化計算時。它已經(jīng)成為了NLP(自然語言處理)領(lǐng)域中許多序列到序列任務(wù)的首選模型。
Transformer模型最初是由Vaswani等人在2017年提出的,并且在自然語言處理(NLP)領(lǐng)域得到了廣泛應(yīng)用。
其中著名的模型包括:
· BERT(Bidirectional Encoder Representations from Transformers):這是一種語言模型,它能夠在許多NLP任務(wù)中取得最先進(jìn)的性能。
· GPT(Generative Pre-training Transformer):這是一種自然語言生成模型,能夠生成各種文本,包括新聞文章,小說和代碼等。
· Transformer-XL:這是一種擴(kuò)展的Transformer模型,能夠處理更長的序列,并且在很多NLP任務(wù)中取得了最先進(jìn)的性能。
除了NLP領(lǐng)域,Transformer也被用于其他領(lǐng)域,包括計算機(jī)視覺,音頻信號處理和強(qiáng)化學(xué)習(xí)等。
Transformer是一種非常強(qiáng)大的神經(jīng)網(wǎng)絡(luò)模型,但是它也有一些局限性。
其中一個局限性是它依賴于輸入序列的長度。由于Transformer使用注意力機(jī)制來計算輸入序列和輸出序列之間的關(guān)系,因此它可能難以處理較長的序列。雖然有一些變體,例如Transformer-XL,可以更好地處理長序列,但是它們?nèi)匀淮嬖谶@個問題。
另一個局限性是Transformer模型對于處理序列中的時間依賴性不太友好。由于Transformer沒有使用循環(huán)結(jié)構(gòu),因此它無法保留序列中先前位置的信息。這意味著Transformer在處理序列中的時間依賴性時可能不太準(zhǔn)確,例如在處理語音信號時。
總的來說,Transformer是一種很有效的模型,但是它并不是萬能的。在選擇模型時,應(yīng)該考慮序列的長度和時間依賴性等因素,并確定Transformer是否是合適的選擇。
Transformer基本介紹
transformer 最早使用于NLP模型中,使用了 Self-Attention 機(jī)制。相較于RNN結(jié)構(gòu)可以進(jìn)行并行化訓(xùn)練,能夠擁有全局信息。
scale dot-product attention
self-attention 過程圖
query q 對 key k做attention:
softmax歸一化:
權(quán)重乘value v 輸出轉(zhuǎn)化值:
合并之前的三個圖中操作:
image-20210517170611977.png
Transformer架構(gòu)
Feed-Forward組件:
應(yī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ī)器視覺中技術(shù)的演進(jìn)
IGPT:
借鑒bert思想,OpenAI嘗試對測試數(shù)據(jù)隨機(jī)mask 5 個token,最終ImageNet結(jié)果果然上升了一些(紅色)。由于馬賽克操作過于嚴(yán)重(整張圖片都mask了),盡管事實證明還是有效果的,但從輸入上看,降低了模型的擬合能力。
VIT:
嘗試過三種預(yù)訓(xùn)練方法,首先mask掉50%的patch,然后:
只預(yù)測patch的mean color
只預(yù)測一個馬賽克版的patch
用L2損失預(yù)測所有pixel。
第三種方式已經(jīng)非常接近了,但是由于研究的重點不在于此便淺嘗輒止了
DEIT:
在預(yù)訓(xùn)練階段,最多會mask 40%的patch。
另外,作者們其實也試過復(fù)原pixel,但效果會有1.8%的下降。對于這個現(xiàn)象,BEiT給出的猜想是,就像多層CNN一樣,編碼器最終得到的應(yīng)該是一個更全局、高維的表示,而復(fù)現(xiàn)pixel會讓后幾層太關(guān)注局部細(xì)節(jié)。
MAE:
輕量級架構(gòu)的兩大核心:
encoder輸入只包含沒有mask的像素。并且使用的是VIT的encoder block。
2.vit-huge 模型mask 的比例很高時(75%)效果依舊表現(xiàn)很好(accuracy 87.8%),同時可以加速預(yù)訓(xùn)練過程。預(yù)訓(xùn)練時僅僅只使用了imagenet-1k data。
一些值得注意的細(xì)節(jié),比如:
1.輸入側(cè)直接丟掉mask token,效果+0.7,效率x3.3
預(yù)測normalize之后的pixel,效果+0.5
3.選取數(shù)據(jù)增強(qiáng)策略,效果+0.2
思考:導(dǎo)致視覺和語言的masked autoencoder 不一樣的三大原因
結(jié)構(gòu):CNN天然適用于圖像,但是應(yīng)用transformer缺顯得很不自然。不過這個問題被vit解了,后續(xù)又有IGPT的馬賽克、dVAE的離散化,patch形態(tài)相對來說信息損失最少且高效。
信息密度:語言的含義比較多,一個單詞可能有很多解釋。而圖片直觀易表示。所以預(yù)測的時候圖片patch比預(yù)測單詞更容易。預(yù)測patch稍微有點周邊信息就夠了,可以放心大膽的mask。這點ViT、BEiT其實也都有,但主要就是最后一點沒有深究。
需要一個Decoder:因為圖片信息密度有限,復(fù)原pixel這種細(xì)粒度信息會讓模型強(qiáng)上加強(qiáng)。那怎么優(yōu)雅地復(fù)原呢?BEiT已經(jīng)說過了,在預(yù)訓(xùn)練圖像encoder的時候,太關(guān)注細(xì)節(jié)就損失了高維抽象能力。所以凱明大神加了一個decoder。到這里分工就很明確了,encoder負(fù)責(zé)抽取高維表示,decoder則負(fù)責(zé)細(xì)粒度還原。
規(guī)模大的簡單算法是深度學(xué)習(xí)的核心。在NLP中,簡單的自我監(jiān)督學(xué)習(xí)方法能夠從模型的規(guī)模中獲益。在計算機(jī)視覺中,實用的預(yù)訓(xùn)練范例主要是監(jiān)督式的。在這項研究中,自我監(jiān)督學(xué)習(xí)已經(jīng)取得了進(jìn)展。我們在ImageNet和遷移學(xué)習(xí)中觀察到自動編碼器(一種類似于NLP技術(shù)的簡單的自我監(jiān)督方法)與NLP中的技術(shù)類似,提供了可擴(kuò)展的好處。視覺中的自我監(jiān)督學(xué)習(xí)現(xiàn)在可能會走上一條與NLP類似的軌跡。另一方面,我們注意到,圖像和語言是不同性質(zhì)的信號,這種差異必須仔細(xì)處理。圖像僅僅是記錄的光,沒有語義分解為視覺類似物的語義分解。我們不是試圖去除物體,而是去除很可能不構(gòu)成語義段的隨機(jī)斑塊。同樣地,我們的MAE重建了像素,而這些像素并不是語義實體。從測試的結(jié)果上看,MAE能推斷出了復(fù)雜的、整體的重建,這表明它已經(jīng)學(xué)會了許多視覺概念(語義)。我們假設(shè),這種行為的發(fā)生通過MAE內(nèi)部豐富的隱藏表征。我們希望這個觀點能給未來的工作帶來啟發(fā)。更廣泛的影響。建議的方法預(yù)測內(nèi)容基于訓(xùn)練數(shù)據(jù)集的學(xué)習(xí)統(tǒng)計,因此將反映這些數(shù)據(jù)中的偏差,包括具有負(fù)面社會影響的偏差。該模型可能產(chǎn)生不存在的內(nèi)容。這些問題值得在這項工作的基礎(chǔ)上進(jìn)一步研究和考慮,以生成圖像。
未來展望:
有可能取代所有組件。
每個領(lǐng)域都可嘗試,遍地開花。
一文讀懂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 是第一個完全依賴于自注意力機(jī)制來計算其輸入和輸出的表示的轉(zhuǎn)換模型。Transformer可以并行訓(xùn)練,訓(xùn)練時間更短。 1 Transformer的模型架構(gòu) 序列到序列模型采用的是編碼器-解碼器結(jié)構(gòu),編碼器將輸入序列(,,……,映射成符號表示z=(,,……,,根據(jù)給定的Z ,解碼器生成輸出序列(,,……,,在每一個步長里,模型利用前一個步長中生成的向量和該步長的輸入,生成輸出符號。 Transformer模型架構(gòu)如圖1-1所示,編碼器-解碼器結(jié)構(gòu)采用堆疊的多頭注意力機(jī)制加全連接層,圖中左邊的是編碼器結(jié)構(gòu),右邊的是解碼器結(jié)構(gòu):
圖 1-1 ???堆疊的編碼器-解碼器結(jié)構(gòu)
編碼器:編碼器由6個相同的塊結(jié)構(gòu)堆疊而成 N=6,每個塊結(jié)構(gòu)進(jìn)一步分成兩個子層:即一個多頭的自注意力機(jī)制和一個前饋網(wǎng)絡(luò)全連接層,在塊中的每一個子層之后,增加一個歸一化層(Add&Norm),每個子層的輸出均為歸一化的LayerNorm(x + Sublayer(x)),包括詞嵌入層,模塊中所有子層的輸出的維數(shù)均為512,即?= 512。 解碼器:同理,解碼器也由6個相同的塊結(jié)構(gòu)堆疊而成 N=6,每個塊結(jié)構(gòu)在編碼器兩個子層的基礎(chǔ)之上,增加了第三個子層,即增加了一個多頭自注意力子層。與編碼器類似,在塊中的每一個子層之后,增加一個歸一化層(Add&Norm)。在解碼器端,對解碼器堆棧中的自注意力子層進(jìn)行了修改,以防止位置編碼和后續(xù)位置編碼相關(guān),通過這種掩蔽,確保了對位置i的預(yù)測只能依賴于小于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)對應(yīng)的組合計算出來的數(shù)值。 1)帶縮放的點積注意力機(jī)制Scaled dot-product attention 帶縮放的點積注意力機(jī)制(Scaled dot-product attention )的公式如下:
在上面公式中Q和K中的向量維度都是,V的向量維度是,計算所有K向量和Q向量的點積,分別除以,并應(yīng)用一個Softmax函數(shù)來獲得這些值的權(quán)重。實際上在self-Attention中,,為了方便將Attention的計算轉(zhuǎn)化為矩陣運算,論文中采用了點積的形式求相似度。常見的計算方法除了點積還有MLP網(wǎng)絡(luò),但是點積能轉(zhuǎn)化為矩陣運算,計算速度更快。 兩個最常用的注意力函數(shù)是:加注意力函數(shù)(Additive Attention)和點積注意力函數(shù)(Dot-product Attention)。除了的縮放因子外,帶縮放的點積注意力機(jī)制采用的是點積注意力函數(shù),加注意力函數(shù)使用具有單個隱含層的前饋網(wǎng)絡(luò)來計算兼容性函數(shù)。雖然這兩者在理論復(fù)雜度上相似,但點積注意力函數(shù)更快,更節(jié)省空間,因為它可以使用高度優(yōu)化的矩陣乘法碼來實現(xiàn)。而對于較小的值,這兩種機(jī)制的性能相似,但在不加大更大的值的情況下,加注意力函數(shù)優(yōu)于點積注意力函數(shù)。對于較大的值,點積相應(yīng)變大,將Softmax函數(shù)推到梯度極小的區(qū)域。為了抵消這種影響,我們通過來縮放點積。 Transformer模型在三處采用了多頭注意力機(jī)制:
在編碼器-解碼器注意力層,Q值來自上一個解碼器層,K值和V值來自編碼器的輸出,從而使得解碼器的每一個位置信息均和輸入序列的位置信息相關(guān),這種架構(gòu)模仿了序列到序列模型編解碼器注意力機(jī)制。
編碼器中包括自注意力層,在自注意力層中,Q 值、K值和V值均來自編碼器上一層的輸出,編碼器中的位置信息參與到前一層的位置編碼中去。
同理,解碼器中的自注意力機(jī)制使得解碼器中的位置信息均參與到所有位置信息的解碼中去。
2)全連接前饋網(wǎng)絡(luò) 在Transfomer編碼器-解碼器架構(gòu)的每一塊中,除了包含多頭注意力機(jī)制外,還包含一個全連接前饋網(wǎng)絡(luò),全連接前饋網(wǎng)絡(luò)層包含兩次ReLU激活函數(shù)的線性變換。
不同層之間的全連接前饋網(wǎng)絡(luò)的參數(shù)各不相同,模型輸入輸出的維度是512 = 512, 層內(nèi)部的維度是2048 ,即= 2048。 3)嵌入和Softmax 和其它序列到序列的模型相類似,Transformer模型利用詞嵌入技術(shù)將輸入標(biāo)記和輸出標(biāo)記轉(zhuǎn)化為維度為的向量,采用可訓(xùn)練的線性變換和Softmax函數(shù),將解碼器的輸出變換成待預(yù)測的下一個標(biāo)記的概率。在Transformer模型中,兩個嵌入層和Softmax層之間共享權(quán)重矩陣。 3 位置編碼Positional Encoding 由于Transformer模型中既沒有遞歸,也沒有卷積,需要獲得輸入序列精準(zhǔn)的位置信息的話,必須插入位置編碼。位置編碼精準(zhǔn)地描述了輸入序列中各個單詞的絕對和相對位置信息,即在編碼器-解碼器的底部輸入嵌入中注入“位置編碼”,位置編碼和輸入嵌入有相同的維度,所以二者可以實現(xiàn)相加運算,位置編碼方式可以有多種,在Transformer模型中采用的是頻率不同的三角函數(shù):
其中pos 是位置,i是維數(shù),也就是說,位置編碼的每個維數(shù)都對應(yīng)于一個正弦曲線。波長從2π到10000·2π的幾何變化。之所以選擇這個函數(shù)是因為假設(shè)它使得模型很容易地學(xué)習(xí)相對位置,對于任何固定偏移量k,可以表示為的線性函數(shù)。 首先,將自注意力機(jī)制和循環(huán)卷積網(wǎng)絡(luò)(RNN )和卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行對比,比較它們在變長序列從三個因素來考量采用自注意力機(jī)制:首先是每一層計算的復(fù)雜程度;其次,是可以并行計算的計算量,用對序列操作的最小數(shù)目表示;第三,是網(wǎng)絡(luò)中最長相關(guān)路徑的長度。在序列學(xué)習(xí)任務(wù)中,對長序列相關(guān)性的學(xué)習(xí)是關(guān)鍵性的難點問題,前向和后向信號路徑的長度往往是影響學(xué)習(xí)效率的關(guān)鍵因素,輸入和輸出序列之間的位置越短,前向和后向信號路徑則越短,更容易學(xué)習(xí)到長序列的依賴關(guān)系,通過對比網(wǎng)絡(luò)中輸入輸出序列位置的最長通路路徑,來回答為什么采用自注意力機(jī)制來搭建Transformer模型。
?表 3-1 ?不同層序列操作的的最大路徑長度、每層的復(fù)雜性和最小操作數(shù) 如表3-1所示?:不同層序列操作的的最大路徑長度、每層的復(fù)雜性和最小操作數(shù)。n是序列長度,d是表示維數(shù),k是卷積的核大小,r是受限自注意力中的鄰域的大小。在表3-1中,自注意力機(jī)制通過操作將序列的位置信息關(guān)聯(lián)起來,而RNN則需要對序列進(jìn)行次操作。從計算的復(fù)雜程度來看,當(dāng)序列長度n小于表示向量的維度d 時,在機(jī)器翻譯任務(wù)中性能能達(dá)到最優(yōu)。為了提高超長輸入序列的計算性能,限制自注意力中的鄰域r的大小,從而會使得最長相關(guān)路徑的長度變?yōu)?img src="https://file1.elecfans.com//web2/M00/98/E7/wKgZomTnbmeAR3MzAAACIkM-g-M345.png" alt="ec26f652-a997-11ed-bfe3-dac502259ad0.png" />。 卷積核維度為k 的單卷積層無法實現(xiàn)所有輸入和輸出位置信息的連接,所以要求有層卷積層堆疊,使得最長相關(guān)路徑的長度變長。通常,CNN的訓(xùn)練成本比RNN的訓(xùn)練成本要高。 從表3-1中的對比還可以看出,自注意力機(jī)制在復(fù)雜程度、并行計算的計算量和網(wǎng)絡(luò)中最長相關(guān)路徑的長度三方面均占有優(yōu)勢。 4 Transformer 模型的訓(xùn)練
4.1訓(xùn)練數(shù)據(jù)和批次大小
在標(biāo)準(zhǔn)的WMT2014英語-德語數(shù)據(jù)集上進(jìn)行訓(xùn)練,這個數(shù)據(jù)集包括大約450萬個句子數(shù)據(jù)對。句子采用字節(jié)對編碼進(jìn)行編碼,源-目標(biāo)詞匯表中共享大約37000個標(biāo)記。對于英語-法語,使用了更大的WMT2014英語-法語數(shù)據(jù)集,由3600萬個句子組成,并將標(biāo)記分割為32000詞匯。句子對按近似的序列長度排列在一起。每個訓(xùn)練批都包含一組句子對,其中包含大約25000個源標(biāo)記和25000個目標(biāo)標(biāo)記。
4.2 硬件配置
使用8 NVIDIAP100 GPU上訓(xùn)練了Transfomer模型,使用超參數(shù)的基本模型,每個訓(xùn)練步長大約需要花費0.4秒的時間,對基本模型總共訓(xùn)練了10萬步或12個小時。對于大模型,步長時間為1.0秒,大模型訓(xùn)練了30萬步(3.5天)。
4.3 優(yōu)化器
采用Adam 優(yōu)化器,參數(shù)設(shè)置為h β1 = 0.9, β2 = 0.98,并依據(jù)下述公式調(diào)整學(xué)習(xí)率:
對應(yīng)于第一個warmup_steps訓(xùn)練步長,學(xué)習(xí)率線性增加,在后續(xù)步長中,學(xué)習(xí)率隨著步長的平方根成正比例下降,其中,warmup_steps =4000。
4.4 正則化
在訓(xùn)練過程中采用了三種正則化方法: 殘差Dropout:在添加子層的輸入和歸一化之前,將Dropout機(jī)制應(yīng)用于每個子層的輸出,同時在編碼器-解碼器堆疊的嵌入過程和位置編碼過程中加入Dropout機(jī)制,= 0.1。
4.5 訓(xùn)練結(jié)果
機(jī)器翻譯 在WMT2014英德翻譯任務(wù)中,Transformer (big)比之前報告的最佳模型(包括集成)高出2.0多個BLEU,獲得BLEU分?jǐn)?shù)為28.4。該模型的配置列于表5-2的底部。在8個P100 GPU 上進(jìn)行訓(xùn)練需要3.5天。甚至基本模型也超過了所有之前發(fā)布的模型和集合,訓(xùn)練成本也大幅度縮減。 在WMT2014年英法翻譯任務(wù)中Transformer (big)獲得了BLEU分值為 41.0分,優(yōu)于之前發(fā)布的所有其它模型,訓(xùn)練成本降低 1/4。
表4.5-1 在英德和英法翻譯任務(wù)中Transformer模型的BLUE 分值和其它模型BLUE 分值的對比(來源:網(wǎng)絡(luò)) 表4.5-1同時將翻譯質(zhì)量和訓(xùn)練成本與其他模型架構(gòu)的翻譯質(zhì)量和訓(xùn)練成本進(jìn)行了比較。通過比較訓(xùn)練時間、所使用的GPU的數(shù)量以及對每個GPU5的持續(xù)單精度浮點容量的估計來估計用于訓(xùn)練模型的浮點操作的數(shù)量。 為了評估Transformer模型是否可以推廣到其他任務(wù),在英語選區(qū)解析上進(jìn)行了實驗。這個任務(wù)提出了具體的挑戰(zhàn):輸出受到強(qiáng)大的結(jié)構(gòu)約束,且長度遠(yuǎn)遠(yuǎn)長于輸入。此外,RNN序列對序列模型還無法在小數(shù)據(jù)體系中獲得最為先進(jìn)的結(jié)果。 通過在賓夕法尼亞州《華爾街日報》的數(shù)據(jù)集上訓(xùn)練了大約40K句子,數(shù)據(jù)模型為的4層Transformer。此外,還在半監(jiān)督設(shè)置下訓(xùn)練它,使用更大的高置信度和伯克利解析器語料庫,大約1700萬語句。對《華爾街日報》的設(shè)置使用了16K標(biāo)記詞匯,對半監(jiān)督的設(shè)置使用了32K標(biāo)記詞匯。 結(jié)論:Transformer是采用自注意力機(jī)制的序列到序列模型,在編碼器-解碼器架構(gòu)的神經(jīng)網(wǎng)絡(luò)中,用多頭自注意力機(jī)制取代了RNN 層。對于翻譯任務(wù),Transformer的訓(xùn)練速度可以比基于循環(huán)層或卷積層的體系架構(gòu)要快得多。關(guān)于2014WMT英德語和WMT2014英法翻譯任務(wù),實現(xiàn)了不錯的性能。在前一項任務(wù)中,Transformer模型的性能甚至優(yōu)于之前報告的所有其它模型。
作者簡介
陳之炎,北京交通大學(xué)通信與控制工程專業(yè)畢業(yè),獲得工學(xué)碩士學(xué)位,歷任長城計算機(jī)軟件與系統(tǒng)公司工程師,大唐微電子公司工程師。目前從事智能化翻譯教學(xué)系統(tǒng)的運營和維護(hù),在人工智能深度學(xué)習(xí)和自然語言處理(NLP)方面積累有一定的經(jīng)驗。
Transformer也不是萬能的
Transformer 最初出現(xiàn)在 2017 年的一篇論文中:《Attention Is All You Need》。在其他人工智能方法中,系統(tǒng)會首先關(guān)注輸入數(shù)據(jù)的局部 patch,然后構(gòu)建整體。例如,在語言模型中,鄰近的單詞首先會被組合在一起。相比之下,Transformer 運行程序以便輸入數(shù)據(jù)中的每個元素都連接或關(guān)注其他元素。研究人員將此稱為「自注意力」。這意味著一旦開始訓(xùn)練,Transformer 就可以看到整個數(shù)據(jù)集的跡。
在 Transformer 出現(xiàn)之前,人工智能在語言任務(wù)上的進(jìn)展一直落后于其他領(lǐng)域的發(fā)展?!冈谶^去 10 年發(fā)生的這場深度學(xué)習(xí)革命中,自然語言處理在某種程度上是后來者,」馬薩諸塞大學(xué)洛厄爾分校的計算機(jī)科學(xué)家 Anna Rumshisky 說,「從某種意義上說,NLP 曾落后于計算機(jī)視覺,而 Transformer 改變了這一點?!?/p>
Transformer 很快成為專注于分析和預(yù)測文本的單詞識別等應(yīng)用程序的引領(lǐng)者。它引發(fā)了一波工具浪潮,比如 OpenAI 的 GPT-3 可以在數(shù)千億個單詞上進(jìn)行訓(xùn)練并生成連貫的新文本。
Transformer 的成功促使人工智能領(lǐng)域的研究者思考:這個模型還能做些什么?
答卷正在徐徐展開——Transformer 被證明具有驚人的豐富功能。在某些視覺任務(wù)中,例如圖像分類,使用 Transformer 的神經(jīng)網(wǎng)絡(luò)比不使用 Transformer 的神經(jīng)網(wǎng)絡(luò)更快、更準(zhǔn)確。對于其他人工智能領(lǐng)域的新興研究,例如一次處理多種輸入或完成規(guī)劃任務(wù),Transformer 也可以處理得更多、更好。
「Transformer 似乎在機(jī)器學(xué)習(xí)領(lǐng)域的許多問題上具有相當(dāng)大的變革性,包括計算機(jī)視覺,」在慕尼黑寶馬公司從事與自動駕駛汽車計算機(jī)視覺工作的 Vladimir Haltakov 說。
就在十年前,AI 的不同子領(lǐng)域之間還幾乎是互不相通的,但 Transformer 的到來表明了融合的可能性?!肝艺J(rèn)為 Transformer 之所以如此受歡迎,是因為它展示出了通用的潛力,」德克薩斯大學(xué)奧斯汀分校的計算機(jī)科學(xué)家 Atlas Wang 說:「我們有充分的理由嘗試在整個 AI 任務(wù)范圍內(nèi)嘗試使用 Transformer?!?/p>
從「語言」到「視覺」
在《Attention Is All You Need》發(fā)布幾個月后,擴(kuò)展 Transformer 應(yīng)用范圍的最有希望的動作就開始了。Alexey Dosovitskiy 當(dāng)時在谷歌大腦柏林辦公室工作,正在研究計算機(jī)視覺,這是一個專注于教授計算機(jī)如何處理和分類圖像的 AI 子領(lǐng)域。
Alexey Dosovitskiy。
與該領(lǐng)域的幾乎所有其他人一樣,他一直使用卷積神經(jīng)網(wǎng)絡(luò) (CNN) 。多年來,正是 CNN 推動了深度學(xué)習(xí),尤其是計算機(jī)視覺領(lǐng)域的所有重大飛躍。CNN 通過對圖像中的像素重復(fù)應(yīng)用濾波器來進(jìn)行特征識別?;?CNN,照片應(yīng)用程序可以按人臉給你的照片分門別類,或是將牛油果與云區(qū)分開來。因此,CNN 被認(rèn)為是視覺任務(wù)必不可少的。
當(dāng)時,Dosovitskiy 正在研究該領(lǐng)域最大的挑戰(zhàn)之一,即在不增加處理時間的前提下,將 CNN 放大:在更大的數(shù)據(jù)集上訓(xùn)練,表示更高分辨率的圖像。但隨后他看到,Transformer 已經(jīng)取代了以前幾乎所有與語言相關(guān)的 AI 任務(wù)的首選工具?!肝覀冿@然從正在發(fā)生的事情中受到了啟發(fā),」他說,「我們想知道,是否可以在視覺上做類似的事情?」 這個想法某種程度上說得通——畢竟,如果 Transformer 可以處理大數(shù)據(jù)集的單詞,為什么不能處理圖片呢?
最終的結(jié)果是:在 2021 年 5 月的一次會議上,一個名為 Vision Transformer(ViT)的網(wǎng)絡(luò)出現(xiàn)了。該模型的架構(gòu)與 2017 年提出的第一個 Transformer 的架構(gòu)幾乎相同,只有微小的變化,這讓它能夠做到分析圖像,而不只是文字?!刚Z言往往是離散的,」Rumshisky 說:「所以必須使圖像離散化?!?/p>
ViT 團(tuán)隊知道,語言的方法無法完全模仿,因為每個像素的自注意力在計算時間上會非常昂貴。所以,他們將較大的圖像劃分為正方形單元或 token。大小是任意的,因為 token 可以根據(jù)原始圖像的分辨率變大或變?。J(rèn)為一條邊 16 像素),但通過分組處理像素,并對每個像素應(yīng)用自注意力,ViT 可以快速處理大型訓(xùn)練數(shù)據(jù)集,從而產(chǎn)生越來越準(zhǔn)確的分類。
Transformer 能夠以超過 90% 的準(zhǔn)確率對圖像進(jìn)行分類,這比 Dosovitskiy 預(yù)期的結(jié)果要好得多,并在 ImageNet 圖像數(shù)據(jù)集上實現(xiàn)了新的 SOTA Top-1 準(zhǔn)確率。ViT 的成功表明,卷積可能不像研究人員認(rèn)為的那樣對計算機(jī)視覺至關(guān)重要。
與 Dosovitskiy 合作開發(fā) ViT 的谷歌大腦蘇黎世辦公室的 Neil Houlsby 說:「我認(rèn)為 CNN 很可能在中期被視覺 Transformer 或其衍生品所取代。」他認(rèn)為,未來的模型可能是純粹的 Transformer,或者是為現(xiàn)有模型增加自注意力的方法。
一些其他結(jié)果驗證了這些預(yù)測。研究人員定期在 ImageNet 數(shù)據(jù)庫上測試他們的圖像分類模型,在 2022 年初,ViT 的更新版本僅次于將 CNN 與 Transformer 相結(jié)合的新方法。而此前長期的冠軍——沒有 Transformer 的 CNN,目前只能勉強(qiáng)進(jìn)入前 10 名。
Transformer 的工作原理
ImageNet 結(jié)果表明,Transformer 可以與領(lǐng)先的 CNN 競爭。但谷歌大腦加州山景城辦公室的計算機(jī)科學(xué)家 Maithra Raghu 想知道,它們是否和 CNN 一樣「看到」圖像。神經(jīng)網(wǎng)絡(luò)是一個難以破譯的「黑盒子」,但有一些方法可以窺探其內(nèi)部——例如通過逐層檢查網(wǎng)絡(luò)的輸入和輸出了解訓(xùn)練數(shù)據(jù)如何流動。Raghu 的團(tuán)隊基本上就是這樣做的——他們將 ViT 拆開了。
Maithra Raghu
她的團(tuán)隊確定了自注意力在算法中導(dǎo)致不同感知的方式。歸根結(jié)底,Transformer 的力量來自于它處理圖像編碼數(shù)據(jù)的方式?!冈?CNN 中,你是從非常局部的地方開始,然后慢慢獲得全局視野,」Raghu 說。CNN 逐個像素地識別圖像,通過從局部到全局的方式來識別角或線等特征。但是在帶有自注意力的 Transformer 中,即使是信息處理的第一層也會在相距很遠(yuǎn)的圖像位置之間建立聯(lián)系(就像語言一樣)。如果說 CNN 的方法就像從單個像素開始并用變焦鏡頭縮小遠(yuǎn)處物體的像的放大倍數(shù),那么 Transformer 就是慢慢地將整個模糊圖像聚焦。
這種差異在 Transformer 最初專注的語言領(lǐng)域更容易理解,思考一下這些句子:「貓頭鷹發(fā)現(xiàn)了一只松鼠。它試圖用爪子抓住它,但只抓住了尾巴的末端?!沟诙涞慕Y(jié)構(gòu)令人困惑:「它」指的是什么?只關(guān)注「它」鄰近的單詞的 CNN 會遇到困難,但是將每個單詞與其他單詞連接起來的 Transformer 可以識別出貓頭鷹在抓松鼠,而松鼠失去了部分尾巴。
顯然,Transformer 處理圖像的方式與卷積網(wǎng)絡(luò)有著本質(zhì)上的不同,研究人員變得更加興奮。Transformer 在將數(shù)據(jù)從一維字符串(如句子)轉(zhuǎn)換為二維數(shù)組(如圖像)方面的多功能性表明,這樣的模型可以處理許多其他類型的數(shù)據(jù)。例如,Wang 認(rèn)為,Transformer 可能是朝著實現(xiàn)神經(jīng)網(wǎng)絡(luò)架構(gòu)的融合邁出的一大步,從而產(chǎn)生了一種通用的計算機(jī)視覺方法——也許也適用于其他 AI 任務(wù)?!府?dāng)然,要讓它真正發(fā)生是有局限性的,但如果有一種可以通用的模型,讓你可以將各種數(shù)據(jù)放在一臺機(jī)器上,那肯定是非常棒的。」
關(guān)于 ViT 的展望
現(xiàn)在研究人員希望將 Transformer 應(yīng)用于一項更艱巨的任務(wù):創(chuàng)造新圖像。GPT-3 等語言工具可以根據(jù)其訓(xùn)練數(shù)據(jù)生成新文本。在去年發(fā)表的一篇論文《TransGAN: Two Pure Transformers Can Make One Strong GAN, and That Can Scale Up》中,Wang 組合了兩個 Transformer 模型,試圖對圖像做同樣的事情,但這是一個困難得多的問題。當(dāng)雙 Transformer 網(wǎng)絡(luò)在超過 200000 個名人的人臉上進(jìn)行訓(xùn)練時,它以中等分辨率合成了新的人臉圖像。根據(jù)初始分?jǐn)?shù)(一種評估神經(jīng)網(wǎng)絡(luò)生成的圖像的標(biāo)準(zhǔn)方法),生成的名人面孔令人印象深刻,并且至少與 CNN 創(chuàng)建的名人一樣令人信以為真。
Wang 認(rèn)為,Transformer 在生成圖像方面的成功比 ViT 在圖像分類方面的能力更令人驚訝。「生成模型需要綜合能力,需要能夠添加信息以使其看起來合理,」他說。與分類領(lǐng)域一樣,Transformer 方法正在生成領(lǐng)域取代卷積網(wǎng)絡(luò)。
Raghu 和 Wang 還看到了 Transformer 在多模態(tài)處理中的新用途?!敢郧白銎饋肀容^棘手,」Raghu 說,因為每種類型的數(shù)據(jù)都有自己的專門模型,方法之間是孤立的。但是 Transformer 提出了一種組合多個輸入源的方法。
「有很多有趣的應(yīng)用程序可以結(jié)合其中一些不同類型的數(shù)據(jù)和圖像?!估?,多模態(tài)網(wǎng)絡(luò)可能會為一個系統(tǒng)提供支持,讓系統(tǒng)除了聽一個人的聲音外,還可以讀取一個人的唇語?!改憧梢該碛胸S富的語言和圖像信息表征,」Raghu 說,「而且比以前更深入?!?/p>
這些面孔是在對超過 200000 張名人面孔的數(shù)據(jù)集進(jìn)行訓(xùn)練后,由基于 Transformer 的網(wǎng)絡(luò)創(chuàng)建的。
新的一系列研究表明了 Transformer 在其他人工智能領(lǐng)域的一系列新用途,包括教機(jī)器人識別人體運動、訓(xùn)練機(jī)器識別語音中的情緒以及檢測心電圖中的壓力水平。另一個帶有 Transformer 組件的程序是 AlphaFold,它以快速預(yù)測蛋白質(zhì)結(jié)構(gòu)的能力,解決了五十年來蛋白質(zhì)分子折疊問題,成為了名噪一時的頭條新聞。
Transformer isn't all you need
即使 Transformer 有助于整合和改進(jìn) AI 工具,但和其他新興技術(shù)一樣,Transformer 也存在代價高昂的特點。一個 Transformer 模型需要在預(yù)訓(xùn)練階段消耗大量的計算能力,才能擊敗之前的競爭對手。
這可能是個問題?!溉藗儗Ω叻直媛实膱D像越來越感興趣,」Wang 表示。訓(xùn)練費用可能是阻礙 Transformer 推廣開來的一個不利因素。然而,Raghu 認(rèn)為,訓(xùn)練障礙可以借助復(fù)雜的濾波器和其他工具來克服。
Wang 還指出,盡管視覺 transformer 已經(jīng)在推動 AI 領(lǐng)域的進(jìn)步,但許多新模型仍然包含了卷積的最佳部分。他說,這意味著未來的模型更有可能同時使用這兩種模式,而不是完全放棄 CNN。
同時,這也表明,一些混合架構(gòu)擁有誘人的前景,它們以一種當(dāng)前研究者無法預(yù)測的方式利用 transformer 的優(yōu)勢?!敢苍S我們不應(yīng)該急于得出結(jié)論,認(rèn)為 transformer 就是最完美的那個模型,」Wang 說。但越來越明顯的是,transformer 至少會是 AI shop 里所有新型超級工具的一部分。
編輯:黃飛
?
評論
查看更多