ICML2024高分!魔改注意力,讓小模型能打兩倍大的模型
改進Transformer核心機制注意力,讓小模型能打兩倍大的模型!
ICML 2024高分論文,彩雲科技團隊構建DCFormer框架,替換Transformer核心組件多頭注意力模塊(MHA),提出可動態組合的多頭注意力(DCMHA)。
DCMHA解除了MHA注意力頭的查找選擇迴路和變換回路的固定綁定,讓它們可以根據輸入動態組合,從根本上提升了模型的表達能力。
可以近似理解爲,原來每層有固定的H個注意力頭,現在用幾乎同樣的參數量和算力,可按需動態組合出多至HxH個注意力頭。
DCMHA即插即用,可在任何Transformer架構中替換MHA,得到通用、高效和可擴展的新架構DCFormer。
這項工作由來自北京郵電大學、AI創業公司彩雲科技的研究人員共同完成。
研究人員用在DCFormer基礎上打造的模型DCPythia-6.9B,在預訓練困惑度和下游任務評估上都優於開源Pythia-12B。
DCFormer模型在性能上與那些計算量是其1.7-2倍的Transformer模型相當。
大模型的scaling law告訴我們,隨着算力的提升,模型更大、數據更多,模型效果會越來越好。雖然還沒有人能明確說明這條路的天花板有多高,能否達到AGI,但這確實是目前大家最普遍的做法。
但除此以外,另一個問題同樣值得思考:目前絕大多數大模型都基於Transformer,它們都是用一個一個Transformer塊像搭積木一樣搭起來的,那作爲積木塊的Transformer本身,還有多大的改進提升空間?
這是模型結構研究要回答的基本問題,也正是彩雲科技和北京郵電大學聯合完成的DCFormer這項工作的出發點。
在Transformer的多頭注意力模塊(MHA)中,各個注意力頭彼此完全獨立的工作。
這個設計因其簡單易實現的優點已在實踐中大獲成功,但同時也帶來注意力分數矩陣的低秩化削弱了表達能力、注意力頭功能的重複冗餘浪費了參數和計算資源等一些弊端。基於此,近年來有一些研究工作試圖引入某種形式的注意力頭間的交互。
根據Transformer迴路理論,在MHA中 ,每個注意力頭的行爲由WQ、WK、WV、WO四個權重矩陣刻畫(其中WO由MHA的輸出投影矩陣切分得到)。
其中,WQWK叫做QK迴路(或叫查找選擇迴路),決定從當前token關注上下文中的哪個(些)token,例如:
WOWV叫做OV迴路(或叫投影變換回路),決定從關注到的token取回什麼信息(或投影什麼屬性)寫入當前位置的殘差流,進而預測下一個token。例如:
研究人員注意到,查找(從哪拿)和變換(拿什麼)本來是獨立的兩件事,理應可以分別指定並按需自由組合(就像在SQL查詢中,WHERE後的選擇條件和SELECT後的屬性投影是分開寫的一樣),MHA硬把它們放到一個注意力頭的QKOV裡“捆綁銷售”,限制了靈活性和表達能力。
例如,假設有個模型存在注意力頭A、B、C其QK和OV迴路能夠完成上面的例子=,那換成:
需要交叉組合現有注意力頭的QK和OV迴路,模型就可能“轉不過彎兒”了(經研究人員系統構造的合成測試集驗證,<=6B的中小尺寸模型在這類看似簡單的任務上確實表現不佳)。
動態組合多頭注意力長啥樣?
以此爲出發點,本文研究團隊在MHA中引入compose操作:
如下圖所示,得到DCMHA:
△圖1. DCMHA總體結構
將QWQ和KWK算出的注意力分數矩陣AS和注意力權重矩陣AW,與VWV相乘之前,對其在num_heads維上做線性映射得到新的矩陣A’,通過不同的線性映射矩陣(composition map),以實現各種注意力頭組合的效果。
例如圖2(c)中將head 3和7的QK迴路與head 1的OV迴路組合在一起,形成一個“新的”注意力頭。
△圖2. 8個注意力頭的簡化的典型composition map的功能,淺色表示大值
爲了最大限度的增強表達能力,研究人員希望映射矩陣由輸入動態生成,即動態決定注意力頭怎樣組合。
但他們要生成的映射矩陣不是一個,而是對序列中每對源位置的query Qi和目的位置的key Kj,都要生成這樣一個矩陣,計算開銷和顯存佔用都將難以接受。
爲此,他們進一步將映射矩陣分解爲一個輸入無關的靜態矩陣Wb、一個低秩矩陣w1w2和一個對角矩陣Diag(wg)之和,分別負責基礎組合、注意力頭間的有限方式(即秩R<=2)的動態組合和頭自身的動態門控(見圖2(d)和圖3(b))。其中後兩個矩陣由Q矩陣和K矩陣動態生成。
在不犧牲效果的前提下,將計算和參數複雜度降低到幾乎可以忽略的程度(詳見論文中複雜度分析)。再結合JAX和PyTorch實現層面的優化,讓DCFormer可以高效訓練和推理。
△圖3. Compose的計算
規模擴展
評估一個架構的好壞,研究人員關注的最核心指標是算力轉化爲智能的效率(或叫性能算力比),即投入單位算力能帶來的模型性能提升——花更少的算力,得到更好的模型。
從圖4和圖5的scaling law曲線(在對數座標下,每個模型架構的損失隨算力的變化可畫出一條近似直線,損失越低,模型越好)可以看出,DCFormer可以達到1.7~2倍算力的Transformer模型的效果,即算力智能轉化率提升了1.7~2倍。
△圖4. Transformer和DCFormer的規模擴展效果
△圖5. Pythia和DCPythia的規模擴展效果
怎麼理解這個提升幅度呢?
自2017年Transformer誕生至今,從改進性能算力比的角度,GLU MLP和旋轉位置編碼RoPE是經大量實踐驗證普適有效且被廣泛採用的爲數不多的兩項架構改進。
在原始Transformer中加入這兩項改進的架構也叫Transformer++,Llama、Mistral等最強開源模型均採用該架構。無論Transformer還是Transformer++架構,都可通過DCMHA獲得顯著改進。
在1.4B模型規模下,DCMHA的改進幅度大於Transformer++的兩項改進之和,且擴展性更好(圖4下藍綠線和黑線的對比,DCMHA的改進幅度隨算力增加衰減的更慢,以及圖4和圖5的對比)。
可以說,DCFormer讓Transformer的能力又躍上一個新臺階。
下游任務評測
研究團隊訓練了DCPythia-2.8B和DCPythia-6.9B兩個模型在主流NLP下游任務上進行測評並和同規模的開源模型Pythia進行比較(訓練採用和Pythia完全相同超參數設置)。
△表1. DCFormer 和 Pythia 在下游任務中的表現
從表1中可以看出,DCPythia-2.8B和6.9B不僅在Pile驗證集上的ppl 更低,而且在大部分下游任務上都顯著超過了Pythia,DCPythia6.9B在 ppl 和下游任務上的平均準確率甚至超過了Pythia-12B。
DCFormer++2.8B相對於DCPythia-2.8B有進一步的提升,驗證了DCMHA和Lllama架構結合的有效性。
訓練和推理速度
雖然引入DCMHA會帶來額外的訓練和推理開銷,但是從表2中可以看出DCFormer++的訓練速度是Transformer++的74.5%-89.2%,推理速度則是81.1%-89.7%,而且隨着模型參數的增長,額外的計算開銷會逐漸降低。
△表2. Transformer++和DCFormer++的訓練和推理速度對比
訓練速度是在TPU v3 pod,序列長度爲2048,batch_size爲1k的情況下對比得到的;推理速度是在A100 80G GPU上進行評測的,輸入長度1024,生成長度128。
消融實驗
結果如下:
△表3. DCMHA的消融實驗
從表3中可以看出以下幾點:
此外,研究人員還通過增加局部注意力層的比例和只用query-wise動態組合的方式去進一步減少訓練和推理開銷,詳見論文Table 10。
總的來說,研究團隊有兩點總結。
關於動態權重:近期Mamba,GLA,RWKV6,HGRN等SSM和線性注意力/RNN的工作,通過引入動態(input-dependent)權重的方式,追趕上了Transformer++,但DCFormer用動態組合注意力頭的方式說明了在使用 softmax 注意力的情況下,通過引入動態權重也可以大幅提升Transformer++的效果。
關於模型架構創新:這項工作表明,如果存在一個具有極限算力智能轉化效率的“理想模型架構”,當前的Transformer架構雖已非常強大,但距離這個理想架構很可能還存在很大的差距,仍有廣闊的提升空間。因此,除了堆算力堆數據的大力出奇跡路線,模型架構創新同樣大有可爲。
研究團隊還表示,彩雲科技會率先在旗下產品彩雲天氣、彩雲小譯、彩雲小夢上應用DCformer。
有關更多研究細節,可參閱原始論文。
ICML2024論文鏈接:https://icml.cc/virtual/2024/poster/34047Arxiv 論文鏈接:https://arxiv.org/abs/2405.08553代碼鏈接:https://github.com/Caiyun-AI/DCFormer