Transformer大升級!谷歌、OpenAI聯(lián)合推出分層模型,刷榜ImageNet32刷新SOTA
點擊上方“程序員大白”,選擇“星標”公眾號
重磅干貨,第一時間送達

導(dǎo)讀
?來自谷歌、OpenAI和華沙大學的一個團隊提出了一種新的用于語言建模的高效Transformer架構(gòu)Hourglass,在ImageNet32上達到新的SOTA,證明擁有一個明確的分層結(jié)構(gòu)是Transformer能有效處理長序列的關(guān)鍵。Hourglass在給定相同計算量和存儲量的情況下,可以產(chǎn)生比Transformer更好的結(jié)果。
Transformer模型在很多不同的領(lǐng)域都取得了SOTA,包括自然語言,對話,圖像,甚至音樂。每個Transformer體系結(jié)構(gòu)的核心模塊是注意力模塊,它為一個輸入序列中的所有位置對計算相似度score。
??
Transformer示意圖
?
然而,Transformer在輸入序列的長度較長時效果不佳,因為它需要計算時間呈平方增長來產(chǎn)生所有相似性得分,以及存儲空間的平方增長來構(gòu)造一個矩陣存儲這些score,因此將它們擴展到長序列(如長文檔或高分辨率圖像)是非常費時費內(nèi)存的。
?
對于需要長距離注意力的應(yīng)用,目前已經(jīng)提出了幾種快速且更節(jié)省空間的方法,如常見的稀疏注意力。
?
稀疏注意力機制通過從一個序列而不是所有可能的Pair中計算經(jīng)過選擇的相似性得分來減少注意機制的計算時間和內(nèi)存需求,從而產(chǎn)生一個稀疏矩陣而不是一個完整的矩陣。
?

?
這些稀疏條目可以通過優(yōu)化的方法找到、學習,甚至隨機化,如Performer、Sparse Transformers、Longformers、RoutingTransformers、Reformers和BigBird。
?

?Performer示意圖
?
雖然,稀疏注意力引入了許多技術(shù)來修改注意機制,但是,整體Transformer的架構(gòu)并沒有改變。這些稀疏注意機制降低了自我注意的復(fù)雜性,但仍然迫使模型要處理與輸入相同長度的序列。
?
為了緩解這些問題,來自谷歌、OpenAI和華沙大學的團隊提出了一種新的用于語言建模的高效Transformer架構(gòu),稱之為Hourglass。
?

論文地址:https://arxiv.org/pdf/2110.13711v1.pdf
?
Hourglass假設(shè),擁有一個明確的層次結(jié)構(gòu)是Transformer有效處理長序列的關(guān)鍵,
?
所以,Hourglass中對激活進行下采樣和上采樣的不同方法,以便使tokens分層。
?

?Hourglass算法偽代碼
Hourglass使用縮短操作將tokens合并,因此減少了總的序列長度,然后結(jié)合來自早期層的序列再次對它們進行上采樣。
?

Hourglass架構(gòu)概述
?
Hourglass的結(jié)構(gòu)從基本層開始,基本層是在完全tokens序列上運行的一堆Transformer塊。
?
在此之后,插入縮短層,其中k1是縮短因子參數(shù)。在縮短之前,序列被向右移動,以防止信息泄露。
?

縮短方法示意圖
?
然后遞歸地插入另一個縮短塊,以縮小k1k2倍的最小規(guī)模運行。
?
之后就要對經(jīng)過處理的tokens進行上采樣,上采樣層將生成的激活信息恢復(fù)到原始tokens的分辨率。
?

上采樣示意圖
?
在上采樣和殘差連接后,生成的激活信息會由token級別的Transformer普通層處理。
?
研究人員將Hourglass應(yīng)用于三個語言建模任務(wù)。為了展示Hourglass跨領(lǐng)域泛化能力,他們在一個與自然語言處理相關(guān)的數(shù)據(jù)集和兩個來自計算機視覺領(lǐng)域的數(shù)據(jù)集上訓練Hourglass模型。
?
結(jié)果表明,Hourglass在給定相同計算量和存儲量的情況下,對Transformer基線進行了改進,可以產(chǎn)生比Transformer更好的結(jié)果。
?

Transformer-XL與Hourglass的訓練所用存儲的比較
?
特別是,Hourglass在廣泛研究的enwik8基準上也提高了語言建模效率。
?

基線(紅色)和分層Transformer(綠色)的每字符位數(shù)與計算成本的關(guān)系
?
Enwik8是一個字節(jié)級語言建?;鶞?,包含1億字節(jié)未處理的英文維基百科文本。
?
在測試集上評估Hourglass模型,將其拆分為序列長為6912,步長為128的重疊序列,并僅計算最后128個token的測試損失。使用(5@1,24@3,5@1)層次結(jié)構(gòu),最終得到0.997BPC。
?

Enwik8結(jié)果
?
Hourglass還在ImageNet32生成任務(wù)上實現(xiàn)自回歸Transformer模型新的SOTA。
?

下采樣圖像的每維位數(shù)(BPD),自回歸模型和非自回歸模型用一條水平線分開
?

模型生成的例子,其中每個圖像的下半部分由我們的模型生成,由上半部分提示
?
Hourglass在ImageNet32生成任務(wù)的自回歸模型中獲得最佳結(jié)果,在其他圖像生成和語言建模任務(wù)中也獲得極具競爭力的結(jié)果。
?
特別值得說明的是,Hourglass可以用于任何注意力類型,這為未來處理更長序列的Transformer的相關(guān)研究開辟了許多方向,提高了效率和準確性之間的權(quán)衡。
?
參考資料:
https://arxiv.org/pdf/2110.13711.pdf https://www.reddit.com/r/MachineLearning/comments/qmm9z7/r_hierarchical_transformers_are_more_efficient/
推薦閱讀
關(guān)于程序員大白
程序員大白是一群哈工大,東北大學,西湖大學和上海交通大學的碩士博士運營維護的號,大家樂于分享高質(zhì)量文章,喜歡總結(jié)知識,歡迎關(guān)注[程序員大白],大家一起學習進步!

