對(duì)于 Transformer 模型來說,其長(zhǎng)度的外推性是我們一直在追求的良好性質(zhì),它是指我們?cè)诙绦蛄猩嫌?xùn)練的模型,能否不用微調(diào)地用到長(zhǎng)序列上并依然保持不錯(cuò)的效果。之所以追求長(zhǎng)度外推性,一方面是理論的完備性,覺得這是一個(gè)理想模型應(yīng)當(dāng)具備的性質(zhì),另一方面也是訓(xùn)練的實(shí)用性,允許我們以較低成本(在較短序列上)訓(xùn)練出一個(gè)長(zhǎng)序列可用的模型。 下面我們來分析一下加強(qiáng) Transformer 長(zhǎng)度外推性的關(guān)鍵思路,并由此給出一個(gè)“超強(qiáng)基線”方案,然后我們帶著這個(gè)“超強(qiáng)基線”來分析一些相關(guān)的研究工作。 第一篇明確研究 Transformer 長(zhǎng)度外推性的工作應(yīng)該是 ALIBI [1],出自 2021 年中期,距今也不算太久。為什么這么晚(相比 Transformer 首次發(fā)表的 2017 年)才有人專門做這個(gè)課題呢?估計(jì)是因?yàn)槲覀冮L(zhǎng)期以來,都想當(dāng)然地認(rèn)為 Transformer 的長(zhǎng)度外推性是位置編碼的問題,找到更好的位置編碼就行了。事實(shí)上,通過對(duì)比現(xiàn)有的一些位置編碼的外推效果,確實(shí)能找到支撐該觀點(diǎn)的一些論據(jù)。比如后面分享的多篇實(shí)驗(yàn)效果顯示,相對(duì)位置編碼的長(zhǎng)度外推性,平均好于絕對(duì)位置編碼的;像 RoPE 這樣的函數(shù)式相對(duì)位置編碼,又會(huì)比訓(xùn)練式相對(duì)位置編碼的外推效果好些。 所以看上去,似乎只要我們不斷優(yōu)化位置編碼形式,最終就能給 Transformer 提供更好的長(zhǎng)度外推性,從而解決這個(gè)問題。然而,情況沒有那么樂觀,像 RoPE 算是外推能力較好的位置編碼,也只能外推 10% 到 20% 左右的長(zhǎng)度而保持效果不變差,再長(zhǎng)效果就會(huì)驟降。 這個(gè)比例與預(yù)期差太遠(yuǎn)了,設(shè)想中好歹能外推個(gè)幾倍長(zhǎng)度才算是有價(jià)值的外推,所以不難想象,單靠改進(jìn)位置編碼改進(jìn) Transformer 的長(zhǎng)度外推性,就不知道要等多久才能實(shí)現(xiàn)更長(zhǎng)的效果了。 在直覺上,相信很多讀者覺得像 Sinusoidal 或 RoPE 之類的函數(shù)式位置編碼,它們沒有訓(xùn)練參數(shù),長(zhǎng)度外推性應(yīng)該很好才對(duì),但事實(shí)上并非如此,這類位置編碼并沒有在長(zhǎng)度外推方面表現(xiàn)出什么優(yōu)勢(shì)。為什么會(huì)這樣呢?其實(shí)是大家在假設(shè)函數(shù)式位置編碼的外推性時(shí),忘了它的基本前提——“光滑性”。其實(shí),外推性就是局部推斷整體,對(duì)此我們應(yīng)該并不陌生,泰勒級(jí)數(shù)近似就是經(jīng)典的例子,它只需要知道函數(shù)某點(diǎn)處若干階導(dǎo)數(shù)的值,就可以對(duì)一個(gè)鄰域內(nèi)的值做有效估計(jì),它依賴的就是給定函數(shù)的高階光滑性(高階導(dǎo)數(shù)存在且有界)。但是 Sinusoidal 或 RoPE 是這種函數(shù)嗎?并不是。它們是一系列正余弦函數(shù)的組合,其相位函數(shù)是 ,當(dāng) 時(shí),函數(shù)近似就是 ,這算是關(guān)于位置編碼 的高頻振蕩函數(shù)了,而不是直線或者漸近趨于直線之類的函數(shù),所以基于它的模型往往外推行為難以預(yù)估。能否設(shè)計(jì)不振蕩的位置編碼?很難,位置編碼函數(shù)如果不振蕩,那么往往缺乏足夠的容量去編碼足夠多的位置信息,也就是某種意義上來說,位置編碼函數(shù)的復(fù)雜性本身也是編碼位置的要求。事實(shí)上,更準(zhǔn)確的定位應(yīng)該是:長(zhǎng)度外推性是一個(gè)訓(xùn)練和預(yù)測(cè)的長(zhǎng)度不一致的問題。1. 預(yù)測(cè)的時(shí)候用到了沒訓(xùn)練過的位置編碼(不管絕對(duì)還是相對(duì)); 2. 預(yù)測(cè)的時(shí)候注意力機(jī)制所處理的 token 數(shù)量遠(yuǎn)超訓(xùn)練時(shí)的數(shù)量。 第 1 點(diǎn)可能大家都容易理解,沒訓(xùn)練過的就沒法保證能處理好,這是 DL 中很現(xiàn)實(shí)的現(xiàn)象,哪怕是 Sinusoidal 或 RoPE 這種函數(shù)式位置編碼也是如此。關(guān)于第 2 點(diǎn),可能讀者會(huì)有些迷惑,Attention 理論上不就是可以處理任意長(zhǎng)度的序列嗎?訓(xùn)練和預(yù)測(cè)長(zhǎng)度不一致影響什么呢? 答案是熵,我們?cè)?a target='_blank' textvalue='《從熵不變性看Attention的Scale操作》' linktype='text' imgurl='' imgdata='null' data-itemshowtype='0' tab='innerlink' data-linktype='2'>《從熵不變性看Attention的Scale操作》也已經(jīng)分析過這個(gè)問題,越多的 token 去平均注意力,意味著最后的分布相對(duì)來說越“均勻”(熵更大),即注意力越分散;而訓(xùn)練長(zhǎng)度短,則意味著注意力的熵更低,注意力越集中,這也是一種訓(xùn)練和預(yù)測(cè)的差異性,也會(huì)影響效果。 事實(shí)上,對(duì)于相對(duì)位置編碼的Transformer模型,通過一個(gè)非常簡(jiǎn)單的 Attention Mask,就可以一次性解決以上兩個(gè)問題,并且取得接近 SOTA 的效果:▲ 超強(qiáng)基線模型(雙向注意力版) ▲ 超強(qiáng)基線模型(單向注意力版) 不難理解,這就是將預(yù)測(cè)時(shí)的 Attention 變?yōu)橐粋€(gè)局部 Attention,每個(gè) token 只能看到訓(xùn)練長(zhǎng)度個(gè) token。這樣一來,每個(gè) token 可以看到的 token 數(shù)跟訓(xùn)練時(shí)一致,這就解決了第 2 個(gè)問題,同時(shí)由于是相對(duì)位置編碼,位置的計(jì)數(shù)以當(dāng)前 token 為原點(diǎn),因此這樣的局部 Attention 也不會(huì)比訓(xùn)練時(shí)使用更多的未知編碼,這就解決了第 1 個(gè)問題。所以,就這個(gè)簡(jiǎn)單的 Attention Mask 一次性解決了長(zhǎng)度外推的 2 個(gè)難點(diǎn),還不用重新訓(xùn)練模型,更令人驚嘆的是,各種實(shí)驗(yàn)結(jié)果顯示,如果以它為 baseline,那么各種同類工作的相對(duì)提升就弱得可憐了,也就是它本身已經(jīng)很接近 SOTA 了,可謂是又快又好的“超強(qiáng)基線”。 自 ALIBI 起,確實(shí)已經(jīng)有不少工作投入到了 Transformer 長(zhǎng)度外推性的研究中。在這一節(jié)中,筆者學(xué)習(xí)并整理了一下其中的一些代表工作,從中我們也可以發(fā)現(xiàn),它們基本都跟基線模型有著諸多相通之處,甚至可以說它們某種程度上都是基線模型的變體,由此我們將進(jìn)一步體會(huì)到長(zhǎng)度外推性與注意力的局部性之間的深刻聯(lián)系。作為“開山之作”,ALIBI 是繞不過去的,它出自論文《Train Short, Test Long: Attention with Linear Biases Enables Input Length Extrapolation》[1]。事后來看,ALIBI 所做的改動(dòng)非常簡(jiǎn)單,只是在 Softmax 之前,將 Attention 的計(jì)算從 改為其中 是超參數(shù),每個(gè) head 設(shè)置不同的值。從這個(gè)定義就可以看出 ALIBI 跟基線模型的相似之處了,兩者都是在 Softmax 之前減去一個(gè)非負(fù)矩陣,只不過被減去的非負(fù)矩陣有所不同,ALIBI 可以看成是基線模型的“光滑版”:▲ ALIBI所減去的矩陣 ALIBI 令人困惑的是它的雙向注意力部分實(shí)驗(yàn)。可以發(fā)現(xiàn),它的正文介紹全部是面向單向注意力的,實(shí)驗(yàn)部分就突然來了個(gè)雙向注意力實(shí)驗(yàn),很讓人莫名其妙;ALIBI 是不添加額外的位置編碼的,所以如果就按照式(1)來推廣到雙向注意力,那么由于 ,按理說模型就無法區(qū)分“左”和“右”,只能識(shí)別相對(duì)距離的遠(yuǎn)近,這樣的模型效果也會(huì)好嗎?為什么會(huì)好?KERPLE 出自論文《KERPLE: Kernelized Relative Positional Embedding for Length Extrapolation》[2],它實(shí)質(zhì)上就是 ALIBI 的簡(jiǎn)單推廣,它引入了兩個(gè)訓(xùn)練參數(shù) 來一般化式(1):又是一般化,又有可訓(xùn)練參數(shù),KERPLE 能取得比 ALIBI 更好的效果并不讓人意外。不過這里要嚴(yán)重批評(píng)一下 KERPLE 論文的故弄玄虛,按照排版,原論文第三節(jié)是論文的理論支撐,但很明顯它只是為了強(qiáng)行提高文章的數(shù)學(xué)深度而引入的無關(guān)篇幅,實(shí)質(zhì)上對(duì)理解 KERPLE 毫無幫助,甚至?xí)档妥x者的閱讀興致(說白了,為審稿人服務(wù),不是為讀者服務(wù))。Sandwich 也是 KERPLE 的作者們搞的,出自《Receptive Field Alignment Enables Transformer Length Extrapolation》,上個(gè)月才放到 Arxiv 上的,它將式 (1) 替換為
▲ dot(p_m, p_n) 的函數(shù)圖像(減去了d/2) 如果有必要,我們也可以將 Sandwich 轉(zhuǎn)換成 RoPE 那樣“絕對(duì)位置編碼實(shí)現(xiàn)相對(duì)位置編碼”的形式,這只需要留意到也就是說 Sandwich 通過拼接的方式補(bǔ)充絕對(duì)位置信息,其 Attention 結(jié)果則相當(dāng)于相對(duì)位置編碼。不過目前看來這個(gè)轉(zhuǎn)換也就只有理論價(jià)值,因?yàn)槠唇釉黾恿讼蛄烤S度,反而會(huì)進(jìn)一步增加 Attention 的計(jì)算量。XPOS 出自論文《A Length-Extrapolatable Transformer》[3],跟 Sandwich 同一天出現(xiàn)在 Arxiv 上,它是 RoPE 的一個(gè)一脈相承的推廣。我們知道,RoPE 的基本解是: 其中 。筆者當(dāng)時(shí)推導(dǎo) RoPE 的時(shí)候,假設(shè)了“、做同樣的變換”,事實(shí)上單從“絕對(duì)位置實(shí)現(xiàn)相對(duì)位置”角度來看,并沒有必要限制兩者的變換格式一致,比如 XPOS 考慮的是其中 是一個(gè)標(biāo)量超參,這樣以來總的結(jié)果依然是只依賴于相對(duì)位置 的。然而,現(xiàn)在問題是指數(shù)部分是 而不是 ,只要 ,那么總有一邊是發(fā)散的。XPOS 的機(jī)智之處是它選擇了一個(gè)特定的場(chǎng)景——單向語言模型——這樣一來我們只會(huì)用到 部分的注意力!此時(shí)只需要選擇 ,就可以實(shí)現(xiàn)隨著相對(duì)距離衰減的效果。事實(shí)上,額外引入的指數(shù)衰減項(xiàng) 并非 XPOS 的首創(chuàng),筆者所閱讀的文獻(xiàn)中,同樣的項(xiàng)最早出現(xiàn)在 PermuteFormer 中,只不過 PermuteFormer [4] 主要關(guān)心的是線性 Attention 場(chǎng)景。細(xì)節(jié)上,XPOS 給每個(gè)分塊都分配了不同的 ,但在跟作者私下交流的時(shí)候,作者補(bǔ)做了共享同一個(gè) 的實(shí)驗(yàn),發(fā)現(xiàn)設(shè)置不同 帶來的提升幾乎可以忽略。另外,我們要適當(dāng)控制 的值,以防止 在 較大的時(shí)候溢出。值得指出的是,這里的隨著相對(duì)距離衰減,是直接乘在 Softmax 之前的 Attention Score 的,結(jié)果是相對(duì)距離較遠(yuǎn)的 Score 變得很接近于 0,而不是像前面幾種設(shè)計(jì)那樣趨向負(fù)無窮。 并沒有趨于零的效果,所以說,這樣的設(shè)計(jì)并非是局部 Attention 的變體,因此它的效果沒有達(dá)到 SOTA。為彌補(bǔ)這部分差距,XPOS 設(shè)計(jì)了一個(gè)特殊的局部 Attention(稱為 Blockwise Causal Attention,簡(jiǎn)寫 BCA),加上去之后就能夠補(bǔ)足這個(gè)差距了。在交流時(shí)作者表示使用 BCA 是因?yàn)樵趯?shí)現(xiàn)上有優(yōu)勢(shì),實(shí)際上基線模型的局部 Attention 效果更好,所以,要外推性還是要看局部注意力啊。原論文的實(shí)驗(yàn)還是很豐富很值得參考的,建議大家細(xì)讀。本文總結(jié)了增強(qiáng) Transformer 的長(zhǎng)度外推能力的相關(guān)工作,其中包含了一個(gè)簡(jiǎn)單但強(qiáng)大的基線方案,以及若干篇聚焦于長(zhǎng)度外推性的相關(guān)工作,從中我們可以發(fā)現(xiàn),這些工作本質(zhì)上都是基線方案——局部注意力的變體,局部注意力是長(zhǎng)度外推的關(guān)鍵環(huán)節(jié)之一。[1] https:///abs/2108.12409 [2] https:///abs/2205.09921 [3] https:///abs/2212.10554 [4] https:///abs/2109.02377 
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。 總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。 PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)術(shù)熱點(diǎn)剖析、科研心得或競(jìng)賽經(jīng)驗(yàn)講解等。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來。 ?? 稿件基本要求: · 文章確系個(gè)人原創(chuàng)作品,未曾在公開渠道發(fā)表,如為其他平臺(tái)已發(fā)表或待發(fā)表的文章,請(qǐng)明確標(biāo)注 · 稿件建議以 markdown 格式撰寫,文中配圖以附件形式發(fā)送,要求圖片清晰,無版權(quán)問題 · PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競(jìng)爭(zhēng)力稿酬,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算 ?? 投稿通道:
|