視覺Transformer中ReLU替代softmax,DeepMind新招讓成本速降
Transformer 架構已經(jīng)在現(xiàn)代機器學習領域得到了廣泛的應用。注意力是 transformer 的一大核心組件,其中包含了一個 softmax,作用是產(chǎn)生 token 的一個概率分布。softmax 有較高的成本,因為其會執(zhí)行指數(shù)計算和對序列長度求和,這會使得并行化難以執(zhí)行。
Google DeepMind 想到了一個新思路:用某種不一定會輸出概率分布的新方法替代 softmax 運算。他們還觀察到:在用于視覺 Transformer 時,使用 ReLU 除以序列長度的注意力可以接近或匹敵傳統(tǒng)的 softmax 注意力。
論文:https://arxiv.org/abs/2309.08586
這一結(jié)果為并行化帶來了新方案,因為 ReLU 注意力可以在序列長度維度上并行化,其所需的 gather 運算少于傳統(tǒng)的注意力。
方法
注意力
注意力的作用是通過一個兩步式流程對 d 維的查詢、鍵和值 {q_i, k_i, v_i} 進行變換。
在第一步,通過下式得到注意力權重 :
其中 ? 通常是 softmax。
下一步,使用這個注意力權重來計算輸出 這篇論文探索了使用逐點式計算的方案來替代 ?。
ReLU 注意力
DeepMind 觀察到,對于 1 式中的 ? = softmax,是一個較好的替代方案。他們將使用
的注意力稱為 ReLU 注意力。
已擴展的逐點式注意力
研究者也通過實驗探索了更廣泛的 選擇,其中 α ∈ [0, 1] 且 h ∈ {relu,relu2 , gelu,softplus, identity,relu6,sigmoid}。
序列長度擴展
他們還觀察到,如果使用一個涉及序列長度 L 的項進行擴展,有助于實現(xiàn)高準確度。之前試圖去除 softmax 的研究工作并未使用這種擴展方案。
在目前使用 softmax 注意力設計的 Transformer 中,有 ,這意味著
盡管這不太可能是一個必要條件,但
能確保在初始化時
的復雜度是
,保留此條件可能會減少替換 softmax 時對更改其它超參數(shù)的需求。
在初始化的時候,q 和 k 的元素為 O (1),因此 也將為 O (1)。ReLU 這樣的激活函數(shù)維持在 O (1),因此需要因子
才能使
的復雜度為
。
實驗與結(jié)果
主要結(jié)果
圖 1 說明在 ImageNet-21k 訓練方面,ReLU 注意力與 softmax 注意力的擴展趨勢相當。X 軸展示了實驗所需的內(nèi)核計算總時間(小時)。ReLU 注意力的一大優(yōu)勢是能在序列長度維度上實現(xiàn)并行化,其所需的 gather 操作比 softmax 注意力更少。
序列長度擴展的效果
圖 2 對比了序列長度擴展方法與其它多種替代 softmax 的逐點式方案的結(jié)果。具體來說,就是用 relu、relu2、gelu、softplus、identity 等方法替代 softmax。X 軸是 α。Y 軸則是 S/32、S/16 和 S/8 視覺 Transformer 模型的準確度。最佳結(jié)果通常是在 α 接近 1 時得到。由于沒有明確的最佳非線性,所以他們在主要實驗中使用了 ReLU,因為它速度更快。
qk-layernorm 的效果
主要實驗中使用了 qk-layernorm,在這其中查詢和鍵會在計算注意力權重前被傳遞通過 LayerNorm。DeepMind 表示,默認使用 qk-layernorm 的原因是在擴展模型大小時有必要防止不穩(wěn)定情況發(fā)生。圖 3 展示了移除 qk-layernorm 的影響。這一結(jié)果表明 qk-layernorm 對這些模型的影響不大,但當模型規(guī)模變大時,情況可能會不一樣。
添加門的效果
先前有移除 softmax 的研究采用了添加一個門控單元的做法,但這種方法無法隨序列長度而擴展。具體來說,在門控注意力單元中,會有一個額外的投影產(chǎn)生輸出,該輸出是在輸出投影之前通過逐元素的乘法組合得到的。圖 4 探究了門的存在是否可消除對序列長度擴展的需求。總體而言,DeepMind 觀察到,不管有沒有門,通過序列長度擴展都可以得到最佳準確度。也要注意,對于使用 ReLU 的 S/8 模型,這種門控機制會將實驗所需的核心時間增多大約 9.3%。