張量快取:用於Transformer的基於驅逐條件的關聯記憶
張量快取是一種兩層級快取架構,結合滑動視窗注意力作為一級快取(L1)和固定大小的外積快速權重記憶作為二級快取(L2),L2由視窗驅逐的KV對填充。該方法透過線性注意力恆等式實現高效讀取,並引入可學習的門控融合L1和L2輸出。實驗表明,張量快取在記憶-質量邊界上優於有狀態基線。
文章情報
要點
- 提出張量快取,一種兩層級快取機制,結合精確區域性注意力和壓縮記憶。
- 二級快取使用外積快速權重記憶,僅由滑動視窗驅逐的KV對填充。
- 識別並修復了常見分塊均值訓練捷徑中的虛假交叉標記外積問題。
- 在多個基準測試中,張量快取改進了記憶-質量邊界。
為什麼重要
這條新聞值得關注,因為提出張量快取,一種兩層級快取機制,結合精確區域性注意力和壓縮記憶。
技術影響
可能影響模型選型、推理成本、產品能力和評測基準。
近日,一篇題為“Tensor Cache: Eviction-conditioned Associative Memory for Transformers”的論文在arXiv上釋出,提出了一種新穎的兩層級快取架構,旨在解決自迴歸Transformer模型中鍵值(KV)快取隨上下文長度線性增長的問題。傳統的滑動視窗快取雖然能夠限制記憶體使用,但會完全丟棄被驅逐的令牌,導致視窗外的重要資訊無法被訪問,從而限制了模型處理長上下文的能力。
張量快取(Tensor Cache)透過兩層級設計巧妙地將精確的區域性注意力與壓縮的關聯記憶結合起來。第一級快取(L1)採用標準的滑動視窗softmax注意力,保留最近令牌的精確注意力計算。第二級快取(L2)則是一個固定大小的外積快速權重記憶,其內容完全由從滑動視窗中驅逐的鍵值對填充。每當一個鍵值對被驅逐出視窗時,它會被壓縮到每層的一個矩陣A中。未來查詢可以透過一次矩陣乘法高效地讀取這些壓縮記憶,這得益於線性注意力恆等式q_t(k_i ⊗ v_i) = ⟨q_t, k_i⟩v_i。這種設計使得模型能夠以最小的記憶體開銷訪問視窗外的歷史資訊。
論文的作者為Kabir Swain等五位研究人員,他們貢獻了多個關鍵創新。首先,他們引入了可學習的標量門來融合L1和L2的輸出,並且每個注意力頭都有獨立的衰減率和寫入率引數,這些引數透過端到端訓練得到。其次,他們識別並修正了常見分塊均值訓練捷徑中存在的問題。該捷徑使用A←λA+η(ķ⊗v)進行更新,但這樣會在每個分塊中引入C²-C個虛假的跨令牌外積,從而破壞了記憶的準確性。作者透過並行加權和掃描(等同於每令牌寫入,誤差在float32 epsilon內)來彌補這一差距,恢復了正確的記憶更新。
在系統擴充套件性、受控關聯回憶、長上下文語言建模和記憶容量診斷等一系列實驗中,張量快取相比有狀態基線顯著改進了記憶-質量邊界。實驗結果表明,該方法能夠有效地平衡記憶體效率與長上下文表現,為Transformer模型的推理最佳化提供了新思路。這項工作可能對需要長上下文理解的應用程式(如文件分析、對話系統和程式碼生成)產生重要影響。