推理成本比MoE直降83%!字節最新大模型架構入圍ICLR 2025
豆包大模型團隊 投稿
量子位 | 公眾號 QbitAI
字節出了個全新架構,把推理成本給狠狠地打了下去!
有多狠?
推理速度相比MoE架構提升2-6倍,推理成本最高可降低83%。

這個全新的稀疏模型架構叫做UltraMem,有效地解決了目前主流的MoE架構和PKM架構所存在的局限性。
例如MoE在做推理時,較小的batch size會激活全部專家,導致訪存急劇上升,推理延遲增加;而PKM雖然減少了訪存開銷,但效果較差且擴展能力有限。
實驗結果表明,訓練規模達2000 萬value的UltraMem模型,在同等計算資源下,可同時實現業界領先的推理速度和模型性能,為構建數十億規模value或expert開闢了新路徑。
這項研究目前已經被ICLR 2025接收。

那麼UltraMem架構具體是如何做到這點的呢?我們繼續往下看。
兼顧訪存和模型效果
隨著大語言模型能力的提升,所需的計算資源呈指數級增長,這在實時應用等資源受限的環境中帶來了巨大挑戰。
為了應對計算資源的瓶頸,研究者們提出了多種解決方案,其中包括MoE和Product Key Memory (PKM)。
然而,這些方法各自存在一定的局限性。
MoE 通過稀疏激活專家(expert)的方式,將計算與參數解耦,從而在訓練時能夠有效減少計算量;但在推理場景中,MoE 的表現卻不盡如人意。
由於推理時模型需要逐字生成輸出,batch size和sequence length通常較小,而通常情況下,數量較少的token就可以激活幾乎所有的專家。
這種全專家激活的模式使得訪存需求急劇增加,進而引發嚴重的訪存瓶頸,最終導致推理延遲大幅上升。
另一方面,PKM提出了 large memory layer的概念,其中包含了大量的稀疏參數 value(每個 value 實際上是一個向量)。
在推理時,每個 token 會通過「行路由」和「列路由」定位到得分最高的幾個 value,並對其進行加權求和(weighted sum pooling),作為 memory layer 的輸出。
由於每個token在推理時僅激活極少數的value,PKM能夠有效避免訪存瓶頸。然而,儘管PKM在訪存效率上表現優異,其模型效果卻較差,且擴展能力(scaling)有限,難以應對更大規模的模型需求。
總的來說,MoE和PKM雖然在一定程度上緩解了計算資源的問題,但它們在推理效率、模型效果和擴展能力等方面仍存在明顯不足,亟需新的解決方案來進一步優化大模型的推理性能。

而UltraMem則是參考了PKM的設計,但針對PKM的3個缺陷予以補充,以實現更高效的訪存、更優質的value檢索,同時,降低了顯存和部署成本。
1、優化模型結構
PKM的設計中,memory layer只有1層,插在整個Transformer的中間層,這對大規模訓練並不友好,並且如此龐大的稀疏參數應該儘可能多的參與到每次的殘差連接中。
因此,研究團隊拆分出多個小memory layer,以固定的間隔分佈在 Transformer layer中;並且增加了skip-layer的操作,即當前層的memory layer的輸出會加到後面某層Transformer layer 的輸出。
這使得模型可以並行地執行memory layer的訪存操作和Transformer layer的計算。

2、優化value檢索方式
在檢索時,只有score最高的m個value會被激活,PKM的score是通過「行score」+「列score」得到的。
團隊進一步探索了一種更複雜的乘法方法Tucker Decomposed Query-Key Retrieval(TDQKR)。
這一方法受啟發於Tucker Decomposition。具體來看,給定values,shape為(n,n,h),其中h為hidden size,那麼values的score S_grid可以做如下分解:

其中Srow,Scol∈Rr×n,C∈Rr×r是可學習的tucker core。這個結構下,每個value的score由r個行score和r個列score的組合乘加獲得,具備更高的複雜度。

3、隱式擴展稀疏參數
更多的稀疏參數通常會帶來更好的效果,但過多的參數又會給顯存和部署帶來麻煩。
為此,研究團隊提出了Implicit Value Expansion (IVE)方法隱式地擴展稀疏參數,並引入了virtual memory和physical memory的概念。
以4倍擴展為例(如下圖所示),virtual memory的數量是physical memory的4倍,給定多對(score, index)後,首先按照virtual memory address table做查表,4個virtual block會查詢同一個physical memory table,之後各自做 weighted sum pooling,並經過不同的線性層,最後再求和輸出。
由於最後的Linear和取value之間沒有任何非線性操作,因此每個Linear都可以和physical memory table做融合,生成一個全新的memory table,這個例子下,實際上隱式擴展了4倍的value 數量。

較MoE最高提速6倍
1、模型性能評估
研究團隊在151M、680M、1.6B三個尺寸的激活參數上做了廣泛的實驗,其中MoE、PKM和UltraMem的總稀疏參數保持在激活參數的12倍。
如下表所示,可以發現 UltraMem在680M、1.6B上具有顯著的效果優勢。

隨著稀疏參數的增加,UltraMem的效果和推理速度如何變化?
-
下圖(b)展示了UltraMem的效果變化,橫軸為稀疏參數和稠密參數的比值,每個顏色的線代表了一種稀疏度。稀疏度定義為value的數量 / 每個token激活的value數量。觀察發現,持續增加稀疏參數和loss的下降呈對數關係;且稀疏度越小,模型效果越好;但是稀疏度持續降低帶來的收益在逐漸飽和。
-
下圖(c)展示了UltraMem的推理時間變化,橫軸為稀疏參數和稠密參數的比值。觀察發現,UltraMem在持續增加稀疏參數時推理時間幾乎不變,反觀MoE有顯著增長的趨勢。

2、消融實驗
研究團隊在151M激活、1.5B總參數的稀疏模型上進行了全面的消融實驗。
從最原始的PKM開始,逐漸增加一些 trick 和上文提出的結構改進,最終能拿到C4 validation loss -0.092的顯著收益,同時稀疏參數和計算量幾乎不變。

綜上所述,研究團隊提出的UltraMem具有極小的訪存,因此,相比 MoE 實現了最高達6倍的速度提升,推理成本最高可降低83%。
同時,在性能方面,隨著模型容量的增加,在相同的參數和計算量情況下,UltraMem超過了MoE,表明其具有更強的擴展能力。
這項工作可以說是為開發更高效和可擴展的語言模型提供了一個有希望的方向。
論文地址:
https://arxiv.org/abs/2411.12364