微軟亞研院提出模型基礎架構RetNet或將成為Transformer有力繼承者
作為全新的神經網絡架構,RetNet 同時實現了良好的擴展結果、并行訓練、低成本部署和高效推理。這些特性將使 RetNet 有可能成為繼 Transformer 之后大語言模型基礎網絡架構的有力繼承者。實驗數據也顯示,在語言建模任務上:
- RetNet 可以達到與 Transformer 相當的困惑度(perplexity)
- 推理速度達8.4倍
- 內存占用減少70%
- 具有良好的擴展性
并且當模型大小大于一定規(guī)模時,RetNet 的表現會優(yōu)于 Transformer。具體詳情,一起來看。解決“不可能三角”Transformer 在大語言模型中的重要性毋庸置疑。無論是 OpenAI 的 GPT 系列,還是谷歌的 PaLM、Meta 的 LLaMA,都是基于 Transformer 打造。但 Transformer 也并非完美無缺:其并行處理機制是以低效推理為代價的,每個步驟的復雜度為 O(N);Transformer 是內存密集型模型,序列越長,占用的內存越多。在此之前,大家也不是沒想過繼續(xù)改進 Transformer。但主要的幾種研究方向都有些顧此失彼:線性 Attention 可以降低推理成本,但性能較差;循環(huán)神經網絡則無法進行并行訓練。也就是說,這些神經網絡架構面前擺著一個“不可能三角”,三個角代表的分別是:并行訓練、低成本推理和良好的擴展性能。
RetNet 的研究人員想做的,就是化不可能為可能。具體而言,RetNet 在 Transformer 的基礎上,使用多尺度保持(Retention)機制替代了標準的自注意力機制。與標準自注意力機制相比,保持機制有幾大特點:引入位置相關的指數衰減項取代 softmax,簡化了計算,同時使前步的信息以衰減的形式保留下來。引入復數空間表達位置信息,取代絕對或相對位置編碼,容易轉換為遞歸形式。另外,保持機制使用多尺度的衰減率,增加了模型的表達能力,并利用 GroupNorm 的縮放不變性來提高 Retention 層的數值精度。
RetNet 的雙重表示每個 RetNet 塊包含兩個模塊:多尺度保持(MSR)模塊和前饋網絡(FFN)模塊。保持機制支持以三種形式表示序列:
- 并行
- 遞歸
- 分塊遞歸,即并行表示和遞歸表示的混合形式,將輸入序列劃分為塊,在塊內按照并行表示進行計算,在塊間遵循遞歸表示。
其中,并行表示使 RetNet 可以像 Transformer 一樣高效地利用 GPU 進行并行訓練。遞歸表示實現了O(1)的推理復雜度,降低了內存占用和延遲。分塊遞歸則可以更高效地處理長序列。這樣一來,RetNet 就使得“不可能三角”成為可能。以下為 RetNet 與其他基礎架構的對比結果:
在語言建模任務上的實驗結果,進一步證明了 RetNet 的有效性。結果顯示,RetNet 可以達到與 Transformer 相似的困惑度(PPL,評價語言模型好壞的指標,越小越好)。同時,在模型參數為70億、輸入序列長度為8k的情況下,RetNet 的推理速度能達到 Transformer 的8.4倍,內存占用減少70%。在訓練過程中,RetNet 在內存節(jié)省和加速效果方面,也比標準 Transformer+FlashAttention 表現更好,分別達到25-50%和7倍。值得一提的是,RetNet 的推理成本與序列長度無關,推理延遲對批量大小不敏感,允許高吞吐量。
另外,當模型參數規(guī)模大于20億時,RetNet 的表現會優(yōu)于 Transformer。