宅中地 - 每日更新
宅中地 - 每日更新

贊助商廣告

X

蘋果公司研究團隊發現:AI大模型的「記憶賬單」貴得離譜,但其實可以大幅打折

2026年05月05日 首頁 » 熱門科技

這項由蘋果公司研究團隊完成的工作以預印本形式發布於2026年4月,論文編號為arXiv:2604.22782,感興趣的讀者可通過該編號查閱完整原文。

每次你用手機上的AI助手聊天、用電腦請大模型幫你寫文章,背後的伺服器都在做一件你完全看不見卻極其耗資源的事情——把你說過的每一句話、每一個字,在模型的每一層"思考層"里都存一份"快照"。這份快照叫做KV緩存(Key-Value Cache),它是大模型能夠記住上下文、生成流暢對話的關鍵。然而,這份快照的儲存代價大得令人咋舌。

以目前廣泛部署的Llama-2-7B模型為例,你輸入的每一個漢字或英文詞,在模型里只需要2到4個字節來儲存原始資訊,但它在所有層的KV緩存加起來卻要占用約512KB的內存空間——這是原始資訊體量的十萬倍以上。蘋果團隊用了一個非常形象的例子:如果你把《愛麗絲夢遊仙境》這本書的內容(約4萬個詞)輸入Llama-2-7B,僅僅是儲存這本書的上下文緩存,就需要大約1.4倍於整個模型參數文件的內存。換句話說,這台號稱能把海量知識壓縮進參數的"智能大腦",在處理一本普通小說時,居然需要比自己的"大腦重量"還多的臨時記憶空間。

這就是蘋果團隊這項研究想要解決的核心矛盾。他們提出了一種叫做**隨機跨層注意力**(R-CLA,Random Cross-Layer Attention)的訓練方案,讓模型在不損失太多能力的前提下,大幅減少需要儲存的緩存層數,從而降低推理成本。

一、為什麼AI模型的"記憶賬單"這麼貴

要理解這個問題,先要明白大模型是怎麼"閱讀"你輸入的文字的。你可以把一個大型語言模型想像成一棟多層辦公樓,每層樓都有一批分析師在工作。當你輸入一段文字時,這段文字會從一樓開始,逐層往上傳遞,每一層的分析師都會對它做一番處理,提煉出自己這層的理解。

在這個過程中,每一層都需要把自己處理後的"理解結果"保存下來,以便後續生成回復時隨時查閱。這些被保存的結果,就是所謂的Key(鍵)和Value(值),合稱KV緩存。問題在於,樓層越多,存的東西就越多;你輸入的文字越長,每層要存的內容就越多。當模型有32層、48層甚至更多層時,這些緩存疊加起來的總量就會變得相當可觀。

在實際的伺服器部署中,KV緩存會隨著對話長度線性增長,同時還要乘以同時服務的用戶數量(批處理大小)。這意味著,當伺服器同時服務大量用戶、或者用戶輸入非常長的文檔時,KV緩存會迅速占滿GPU的顯存,導致伺服器不得不減少同時服務的用戶數量,或者限制用戶能輸入的最大文本長度。更麻煩的是,每生成一個新詞,模型都要把所有層的KV緩存從顯存里讀取出來做一遍計算,這種"反覆搬運大箱子"的操作會造成嚴重的延遲。

過去幾年裡,學界提出了各種減少KV緩存的方法。一類是"時間軸壓縮"——在時間維度上做減法,即識別出哪些輸入詞不太重要,把它們對應的緩存直接刪掉。但這種方法有個根本性的風險:一個詞現在看起來不重要,不代表它之後也不重要。一旦刪掉就無法恢復,可能導致模型回答錯誤甚至產生"幻覺"。另一類方法是通過改變模型架構來減少緩存,比如讓多個"注意力頭"共享同一份KV(分組查詢注意力,GQA),或者讓相鄰兩層共享一份KV(跨層注意力,CLA)。這些方法有效,但通常需要從頭重新訓練模型,成本極高。

蘋果團隊的切入點是另一個維度:**深度維度**。他們的核心洞察是,模型的不同層之間,其實存在大量的資訊冗餘。第10層存的KV和第11層存的KV,很可能高度相似,完全沒必要都存。如果能讓第11層直接借用第10層的KV,就可以省掉第11層的儲存開銷,而模型的表現未必會有明顯下降。

二、舊方法為什麼行不通,蘋果的新方案做了什麼

既然深度維度有這麼大的優化空間,為什麼之前的方法沒有很好地解決這個問題呢?

之前的研究嘗試過幾種路線。有人嘗試讓所有層共享同一份KV緩存,但為了保證質量,需要一個獨立的雙向編碼器來生成這份共享緩存。問題在於,每當新增一個輸入詞,就需要重新運行這個編碼器,計算開銷很大。另一種方法是讓所有層都直接使用最頂層的KV,但這需要多次前向傳播才能得到足夠準確的頂層結果,導致處理用戶輸入(預填充階段)的時間大幅增加,用戶等待第一個回複詞出現的時間變長。還有一種"事後諸葛亮"式的方法:模型已經訓練好了,強行讓相鄰層共享KV,但因為模型從未見過這種操作,效果有限。

蘋果團隊提出的R-CLA從訓練階段就下手,思路乾淨利落:**在模型訓練時,隨機決定每一層是用自己的KV還是借用前面某一層的KV**。

具體來說,對於模型中的每一層,在每一次訓練的前向傳播過程中,系統都會拋一枚"硬幣"。如果正面朝上(概率為p),這一層就正常運作,用自己生成的K和V來做注意力計算。如果反面朝上(概率為1-p),這一層就不用自己的KV,而是隨機從它前面的某一層里借一份KV來用。

這個過程就像訓練一個人在嘈雜環境下工作。如果一個分析師每次都只能看自己的原始資料,他會對自己的資料形成強烈依賴。但如果經常強迫他去查閱樓上或樓下同事的資料來完成任務,他就會慢慢學會如何從各種不同格式、不同層次的資料中提取有用資訊,最終變得更加靈活。

訓練完成後,部署時就可以採用一種"固定借用方案":比如只給第1、5、9、13層……存KV,其餘層全部借用離自己最近的、已儲存的那一層的KV。由於模型在訓練時已經見過各種隨機借用場景,它不會對這種固定方案感到"陌生"。最關鍵的是,同一個模型可以在不同硬體條件下靈活調整借用比例:內存充足時存更多層的KV,內存緊張時只存少數幾層的KV,不需要為每種硬體配置單獨訓練一個模型。

從算法層面看,傳統推理時,每經過一層都要從顯存中把這一層的KV數據搬出來、計算完再搬回去,如此重複L次(L為總層數)。引入深度維度共享後,非"領導層"(不存自己KV的層)只需加載一次已有緩存,跳過自己的K、V投影計算,從而節省了大量重複的顯存讀寫操作。

三、從訓練到部署:完整的實驗驗證

蘋果團隊從兩個截然不同的角度驗證了R-CLA的有效性:一是從零開始的預訓練實驗,二是在已有大模型上做任務特化的微調實驗。

**預訓練實驗**的目的是驗證R-CLA是否會破壞模型的基礎訓練穩定性。畢竟,如果一種方法在訓練過程中引發震盪、導致損失無法收斂,那它再好也沒有實用價值。團隊使用Qwen3-1.7B架構的模型,在OpenWeb語料庫上從零訓練,總訓練量約340億個詞(這是該規模模型的計算最優訓練量)。他們測試了p=0.25、0.5、0.6、0.75四種配置,也就是說最激進的情況下,75%的注意力操作都被強制借用其他層的KV。

結果令人欣慰:在p=0從標準訓練到p=0.75的極端配置下,最終驗證集損失僅從2.424小幅上升到2.461,增幅不到2%。訓練曲線全程平穩,沒有任何不穩定的跡象。這說明R-CLA完全可以作為預訓練的一部分,從模型誕生之初就引入,而不會破壞訓練過程。

更有趣的對比實驗是:將"深層模型+KV共享"與"淺層模型+完整KV"在相同緩存內存預算下進行比較。例如,一個28層模型開啟p=0.5的R-CLA(相當於只存14層的KV),與一個14層的標準模型(存14層的KV)相比,哪個更好?答案是28層的R-CLA模型在所有測試的緩存預算下都顯著優於14層的淺層模型。這個結論非常重要:**深度帶來的能力提升是真實的,而這種能力在KV共享的情況下依然能保留下來**。換句話說,深層模型的價值不僅在於它的KV緩存,更在於它的多層變換能力本身。

**微調實驗**則更貼近實際應用場景。團隊選取了問答(QA)任務作為測試場景,因為這類任務要求模型必須從輸入的長文本中精準提取資訊,對KV緩存的完整性要求極高——如果緩存丟失了關鍵資訊,模型就會答錯。

實驗涉及三個主流模型:Qwen3-8B、Mistral-7B和Llama-3.1-8B,五個數據集:需要多跳推理的HotpotQA、考察閱讀理解的SQuAD v2、資訊檢索類的MSMarco和TriviaQA,以及專門用虛構內容測試的RepLiQA(這個數據集的妙處在於,因為內容是虛構的,模型不可能依賴預訓練中學到的知識來作弊,只能老老實實從輸入文本里找答案)。

測試時設置了三種緩存保留比例:100%(所有層都存KV,正常情況)、50%(只存一半層的KV)、25%(只存四分之一層的KV)。

以Llama-3.1-8B在HotpotQA上的表現為例,標準訓練的基線模型在保留50%緩存時F1分數從0.203跌至0.171,保留25%時更是慘跌至0.080;而經過R-CLA微調的模型,在保留50%時幾乎維持在0.305,保留25%時也還有0.237——是基線模型的接近三倍。這種差距在Qwen3-8B上更為誇張:保留25%緩存時基線模型F1隻剩0.011,而R-CLA模型達到0.098,提升了超過八倍。TriviaQA上甚至出現了更極端的情況:Qwen3-8B基線模型在25%緩存下F1隻有0.005,而R-CLA模型達到0.131,提升幅度超過2000%。

不僅在縮減緩存的場景下表現更好,R-CLA在保留100%緩存(即正常使用)時,往往也不比甚至優於基線模型。以Llama-3.1-8B為例,HotpotQA滿緩存下R-CLA比基線高出51%,SQuAD v2高出30%。這一現象說明R-CLA的隨機訓練機制帶來了某種類似正則化的效果,讓模型不容易過擬合到訓練數據上,泛化能力更強。

四、隨機性到底起了什麼作用——消融實驗的答案

R-CLA中有兩個關鍵要素:一是跨層共享KV這件事本身,二是"隨機"地決定借哪一層。為了搞清楚這兩者各自貢獻了多少,團隊做了一組消融實驗,對比了四種變體方案。

第一種叫CLA@2,即固定每兩層共享一份KV,訓練和測試都用這個固定方案。第二種叫CLA@4,即固定每四層共享一份KV。第三種叫RD-CLA@2,訓練時用固定的每兩層共享方案,但每次前向傳播時隨機決定是用共享的KV還是自己的KV。第四種就是完全隨機的R-CLA,不固定共享哪層,完全隨機。

結果顯示出清晰的規律。在100%緩存保留(也就是測試時不做任何緩存刪減)的情況下,CLA@k方案有時能略微超過R-CLA,說明在"能力提升"這一點上,KV共享本身發揮了主要作用,隨機性的貢獻相對有限。但當緩存被削減到50%或25%時,情況完全反轉:固定方案的CLA@k急劇下滑,因為測試時的削減方案與訓練時的固定方案不匹配,模型毫無準備;而R-CLA因為訓練時見過各種隨機借用方式,能優雅地適應各種削減比例,表現遠超所有固定方案。

這說明隨機性的核心價值不在於提升模型能力,而在於賦予模型**靈活性**:同一個R-CLA模型可以在不同的硬體環境下以不同的緩存削減比例部署,而CLA@k模型只能在它訓練時對應的那個固定比例下表現最好。

五、實實在在的推理效率提升

研究團隊還專門做了工程層面的效率測試,使用與Qwen3-8B規模匹配的架構(36層,8個KV頭,bfloat16精度)在單塊80GB GPU上進行了系統性基準測試。

在輸入長度為8192個詞、組大小g=4(即每4層共用一份KV)的配置下,KV緩存從基線的1170MB降至293MB,減少了75%。解碼吞吐量從每秒34.0個詞提升至41.6個詞,提升約22%。時間到首詞(TTFT,用戶輸入後等待AI開始回答的時間)基本持平,說明引入KV共享不會讓用戶感覺響應變慢。

在批處理規模擴展測試中,當同時服務16個用戶、每人輸入約8K詞時,標準基線方案直接因顯存不足而崩潰,而g=4的共享方案仍能正常運行,峰值顯存60GB,吞吐量8.0詞/秒。這意味著在同等硬體條件下,KV共享方案可以服務更多並發用戶,或者支持更長的上下文長度,對實際的服務能力提升相當直接。

團隊也坦承,這些測試結果還是偏保守的下限。目前的實現雖然跳過了非領導層的KV投影計算並節省了緩存分配,但注意力計算本身仍然需要從高頻寬內存中讀取KV數據,不管這份KV是自己的還是共享來的。如果在底層做更深入的融合優化——比如把相鄰共享層的注意力計算合併成一次顯存讀取操作,理論上還能獲得更大的效率提升。

六、這項工作的邊界和未來方向

研究團隊在論文中誠實地列出了這項工作的局限性。R-CLA需要進行訓練或微調,不能直接應用於已有的標準模型,這對沒有足夠計算資源的用戶來說是一個門檻。實驗主要在問答任務上進行,雖然這類任務對緩存完整性要求很高,是很好的測試場景,但更廣泛的任務驗證會讓結論更有說服力。此外,研究團隊尚未在混合專家(MoE)架構上測試,也沒有探索過度訓練的場景。KV共享與時間維度的緩存驅逐方法或KV量化方法的組合效果也有待驗證——理論上這些方法彼此正交,可以疊加使用,但需要實驗確認。

說到底,這項工作的核心貢獻可以用一句話概括:通過在訓練時引入"強迫借用"的隨機擾動,讓模型學會了在記憶不完整的情況下依然正常工作,從而在部署時獲得了大幅削減緩存開銷的能力,而且這種能力可以靈活匹配各種不同的硬體限制。

這對普通用戶意味著什麼?最直接的影響是,在同等硬體條件下,未來的AI服務可以同時處理更多用戶的請求,或者支持更長的對話歷史,而不需要購買更多昂貴的GPU。對於需要在手機、筆記本電腦等邊緣設備上本地運行AI模型的應用來說,這項技術更是打開了一扇門——通過削減75%甚至更多的KV緩存,原本只能在伺服器上運行的8B參數模型,有可能真正跑在內存受限的消費級設備上,而性能損失控制在可接受範圍之內。

如果你對這項技術的細節感興趣,可以通過arXiv編號2604.22782查閱完整的原始論文,裡面包含了完整的實驗數據、算法偽代碼和訓練曲線。

---

Q&A

Q1:KV緩存是什麼,為什麼它會占用那麼多內存?

A:KV緩存是大語言模型在處理文本時,每一層網路保存的中間計算結果(鍵Key和值Value)。模型在生成每個新詞時都需要回顧之前所有的輸入內容,KV緩存讓它不必每次重新計算,但代價是每一個輸入詞在每一層都要存一份數據。以Llama-2-7B為例,一個詞的KV緩存約512KB,比原始詞本身大十萬倍以上,文本越長、模型層數越多,占用的內存就越龐大。

Q2:R-CLA訓練方法和普通的跨層注意力(CLA)方法有什麼本質區別?

A:普通CLA在訓練時固定某個層共享方案(比如每兩層固定共享一份KV),模型只學會應對這一種固定配置,換一種削減比例就會性能崩潰。R-CLA在訓練時完全隨機決定每層借哪層的KV,讓模型見過幾乎所有可能的共享方式,從而訓練出來的單個模型可以在部署時靈活適應任意削減比例,不需要為不同硬體單獨訓練不同版本。

Q3:R-CLA方法減少KV緩存後,模型回答問題的質量會下降多少?

A:在50%緩存保留率下,經過R-CLA微調的模型性能幾乎與滿緩存持平,有時甚至更好。在25%緩存保留率這種極端削減下,基線模型往往會出現災難性崩潰(F1分數跌至接近零),而R-CLA模型仍能保留相當一部分能力。滿緩存使用時,R-CLA模型在多數任務上還略優於基線模型,蘋果團隊認為這是隨機訓練帶來的類正則化效果。

宅中地 - Facebook 分享 宅中地 - Twitter 分享 宅中地 - Whatsapp 分享 宅中地 - Line 分享
相關內容
Copyright ©2026 | 服務條款 | DMCA | 聯絡我們
宅中地 - 每日更新