Alibi位置向量外推性:看起來很長其實還是短

Alibi位置向量外推性:看起來很長其實還是短

大資料文摘出品

Transformer 模型,因為不像 RNN 序列模型,無法天然就給位置資訊加入模型中,這時候就需要我們手動將位置資訊給注入到模型裡去了。

最 Naive 的方法就是每個位置都當成一個特殊 token,比如位置1是一個 token 有自己 embedding,位置2也有一個。。。 之後進行學習。但這種方法最大的問題是,無法外推(extrapolation),也就是訓練時如果你最長只用到了 512 長度,那麼推理時也就只能最長到 512 長度,再往上就位置向量餘額不足了。

如果能外推,不光是使用時方便很多,而且也能讓訓練成本降低很多,因為經典的 Transformer 模型隨長度的計算複雜度是

級別的,所以能降低訓練長度對效率提升也很大。

已有位置向量外推性探討

先來梳理一下已有的位置向量(Position Embedding)的各自的外推性,同時也來看看位置資訊注入在 Transformer 中的發展脈絡。

Naive Learned Position Emebedding

即開頭說的,給每個位置當成是一個特殊的 token,從 lookup table 中取 embedding 加和起來。如之前所說一點外推性都沒有,即便代表更長長度的 token,比如訓練最大到512,但推理時擴充套件位置向量表到 1024,但對於模型來說 512 以上的位置向量沒經過訓練,所以擴充套件了也沒用。

Alibi位置向量外推性:看起來很長其實還是短

鑑定完畢:毫無外推性!

Sinusoidal Position Embedding

這個和上面 naive 在同一篇論文提出,不同在於不用訓練,不過也是直接加和到 token embedding 上去。

首先提出一個好的位置向量的標準:

每個時間步都要有一個獨特的 embedding

一句話裡面任意兩個相同距離時間步之間的向量距離也相同

於是 Transformer 論文作者提出的是下面這個公式

Alibi位置向量外推性:看起來很長其實還是短

具體分析可以檢視知乎文章,大概思路是透過正弦函式(Sinusoidal functions)來給每個位置向量一個獨特編碼,同時保留一定性質,和用 bit 表示數字類似。看看大概視覺化結果。

Alibi位置向量外推性:看起來很長其實還是短

比起需要學習的位置向量,正弦位置向量(Sinusoidal Position Embedding),如要擴充套件更長的位置向量也很簡單,直接公式一套就行。實際實驗推理時的外推性,發現大概能比起訓練時多推 50 個 token。

鑑定完畢:有一丟丟外推性!

Rotary Position Embedding

蘇神提出的方法,具體推導很精彩。

主要對正弦位置向量的改進,但主題思路還是透過絕對位置編碼的方式實現相對位置編碼。而之前正弦位置向量有些性質不夠好,需要解決

正弦位置向量直接和 token embedding 相加,然後用於 attention 運算,不太能利用好它相對距離不變則相對位置向量計算結果也不變的性質;

同時正弦位置向量只在輸入 embedding 層加上,高層網路不太能直接感知到位置(雖然有殘差連線)

於是 Rotary Position Embedding 透過複數運算推導,將位置向量替換成了一個滿足透過絕對編碼實現相對位置性質的矩陣,去參與運算。為什麼叫 Rotary,因為裡面用到了複數運算,而複數乘法在2維座標軸表示,可看成在做旋轉(Rotary)。如下式所示,給絕對位置轉換成相對編碼。

Alibi位置向量外推性:看起來很長其實還是短

實現上一個很大的區別是,不是在最下面層加上位置向量,而是每一層都將這個位置資訊注入一次,主要是透過影響 q 和 k 的運算。

該方法的外推性就強了很多,推理時比訓練時大概能往外推 100多個token。

鑑定完畢:比較好外推性!

T5 Bias Position Embedding

相比之前的方法 T5 bias 在注入位置資訊更進一步了:直接在 Attention map 上進行操作。

大致方法為對不同距離 query 和 key 學習一個對應的標量值,然後將這個標量加在 attention score 上(過 softmax 操作之前)。同時不光學習一組這樣關係,可以學習多組。

和 Rotary 相同的是,這也是在每層都進行了操作。此外還對長度有一定限制,當超過 128 長度的相對距離後,每個都分配相同的標量值。

對於該方法,論文作者發現它的可外推性就非常強了,在 512 上訓練上可以往外額外推 600,在 1024 長度訓練可以外推 800 而困惑度(ppl)不衰減。

鑑定完畢:非常好的外推性!但因為中間學習過程,T5 Bias 速度比較慢。

三秒搞懂 Attention with Linear Biases(AliBi)

看完上一小節,發現對於 Transformer 中位置資訊的加入,從最開始在底層對 Token Embedding 加和且需要學習開始,到不需要學習,直接在 Attention 計算層面對 Q 和 V 進行操作,再到直接對 Attention Score 進行操作,不斷在變化。

而 AliBi 提出的 idea 很簡單,特別是看完了 T5 Bias 之後,會發現其實也是直接對 Attention Score 進行操作。不同之處在於,它的 bias 不像 T5 那樣靠學出來的,而是給了一個預設。

Alibi位置向量外推性:看起來很長其實還是短

如圖所示,只是給 attention score 加上一個預設好的偏置矩陣,相當於 q 和 k 相對位置差 1 就加上一個 -1 的偏置。其實相當於假設兩個 token 距離越遠那麼相互貢獻也就越低。

當然也不是就直接用這個矩陣一加就行,還是有借鑑 T5 Bias 裡,加入了多組 bias。 主要的偏置矩陣都是相同的,不同的只是旁邊的 m 係數,可以給 m 當成是一個斜率(Slope)。

論文中 m 係數也是預設好的,作者會根據 head 數來設定一組 m 係數,具體按照頭的數量 n 從

的指數差值來進行設定,比如說 8 個頭,那麼就設定為

M 也可以訓練獲得,但作者們發現,訓練獲得的並沒有帶了的更好的性質。

實驗結果與分析

實驗結果主要透過在 WikiText-103 資料集上進行的展示,主要對比物件是正弦位置向量。

Alibi位置向量外推性:看起來很長其實還是短

發現相比起正弦位置向量,ALiBi 在外推性上更加有效,在更短長度文字上訓練就能在更長文字上推理獲得更好效果。而且不光在 WikiText 資料集,在其他資料集比如 Toronto Books 也能獲得相同效果。

除了在多個數據集上的效果展現,作者們還在大模型(13億引數)大資料大計算量上加入 ALiBi 進行訓練,發現同樣有效,也證明了該方法的可用性。

實驗方面比較遺憾的是,只給 Sinusoidal 方法拎出來對比了,沒有對比 Rotary 和 T5 Bias 兩個方法,雖然前面有提給兩個分別做了些實驗。

之後又對 ALiBi 做了一個實驗分析,首先提出的是為什麼它測試時外推性比較強能帶來更好的效果,這裡提到一個概念 Early Token Curse。

Alibi位置向量外推性:看起來很長其實還是短

上圖中涉及到兩種模型對一句話進行推理計算 PPL 的方法,一種是上面藍色滑窗(Sliding Window)式,還有一種是下面紅色,不重疊(Nonoverlapping)式。

雖然滑窗式能提供更多的背景資訊,但需要跑太多次,效率低;而不重疊式雖然不用跑太多次,但卻會出現 Early Token Curse 問題,也就是這樣切分後每一段前面的 token,看到的背景知識會比較少,比如切分後 sat 雖然前面的上下文資訊 ”The big gray cat“ 肯定是有效的,但它看不到。

舉個例子,如果推理長度是 1000,那其中就有10%的 token 看到的上下文資訊是少於100個token的,而如果用了 ALiBi 方法給推理長度拓展到 2000,那就只有 5% 的 token 看到的上下文資訊是少於100個token的。

因此 ALiBi 是一定程度上能解決 Early Token Curse 的問題。

雖然看起來好像 ALiBi 只是加入一個簡單的線性偏置,結果卻能讓模型像人一樣,透過看短文字,就能在測試時自動擴充套件到長文字,那以後都不用考慮太長文字訓練了。

但是,真的是這樣嗎?分析最後給出了一個反轉。

作者們卻粉碎上面這個想法,因為他們發現,當用滑窗式方法來進行推理,即使當推理時的長度變長,但 ppl 並沒有顯著提升,這和常識是違背的。

Alibi位置向量外推性:看起來很長其實還是短

特別是和實際更大長度訓練模型進行對比時,比如說在 512 長度訓練的,即使推理長度 1024 可以做,但效果還是沒實際在 1024 長度訓練過的好。

因此作者給出的解釋,ALiBi 看起來外推性非常好,好像能夠在比訓練時候長非常多的樣本上進行推理,但現實是,一旦當

時,還是隻能用到

長度的背景資訊。

之所以比 Sinusoidal 好,同時為什麼 Rotary 還有 T5 Bias 的外推性也比較好,感覺主要跟相對位置編碼的性質有關。

所以其實這樣看來其實 ALiBi 這些還是沒有真正的外推性,還是訓練多長,推理就多長,只是因為它用的相對位置向量,所以表面上看起來好像能用很長長度進行推理,但實際還是訓練時的長度。

Reference

[1] Transformer Architecture: The Positional Encoding

[2] Transformer中的position encoding

[3] Transformer升級之路:2、博採眾長的旋轉式位置編碼

[4] 虛數的意義

相關文章