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

贊助商廣告

X

蘋果公司研究團隊發現:主流AI大模型存在一個被忽視多年的根本性缺陷,他們是怎麼修復的?

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

這項由蘋果公司(Apple)研究團隊完成的工作發表於2026年5月,論文編號為arXiv:2605.06216v1,感興趣的讀者可通過該編號在arXiv學術平台上查閱完整原文。

你有沒有想過,當一個聰明的助手每天只接觸少數幾類任務時,它對其他任務的了解會逐漸變得稀薄甚至扭曲?這正是當前幾乎所有主流大型語言模型(也就是ChatGPT、Llama這類AI)在底層結構上存在的一個隱患。蘋果公司的研究團隊發現,這個隱患並非源於數據不夠多、模型不夠大,而是源於一個長期被視為"理所當然"的設計選擇——一個從未被認真質疑過的假設。他們將這個發現以及解決方案整理成論文,提出了一個名為TIDE(Token Identity Delivered Everywhere,即"詞語身份傳遞至每一處")的全新架構,並從理論和實驗兩個層面證明了它的價值。

一、那個被所有人忽視的設計缺陷

所有現代大型語言模型處理文字的方式,本質上都像是一條流水線。當你輸入一句話,模型會先把每個詞(更準確地說是每個"詞元",英文叫token)轉換成一個數字向量,就好比給每個詞貼上一張"身份證"。然後,這張身份證只在入口處被讀取一次,隨後就被丟進流水線的第一道工序,從此再也不被直接查閱。接下來的所有工序——模型的每一層計算——都只能看到前一道工序交出的"加工結果",而不是最初那張原始的身份證。

這個設計被稱為"單次注入假設"(single-injection assumption)。幾乎所有人都默默接受了它,從未追問過:這樣真的沒有問題嗎?蘋果團隊的回答是:有問題,而且有兩個很嚴重的問題。

第一個問題叫做"稀有詞語的梯度饑渴"。語言世界遵循一個著名的規律,叫做"齊普夫定律"(Zipf's Law)——用通俗的話說,就是少數詞語被反覆高頻使用,而大量詞語只是偶爾出現。比如"的""了""是"這些詞,在任何一段中文裡都俯拾皆是;而"頭孢呋辛"、"光合作用自養"、"特奧蒂瓦坎"這些專業名詞或罕見詞,可能整個訓練數據集裡也就出現那麼幾次。

AI模型的學習方式依賴"反覆練習"——一個詞出現越多次,模型就有越多機會調整和完善對它的理解,就像一個學生反覆做某道題,自然越做越熟練。但稀有詞語幾乎從不出現,模型對它們的理解就長期停留在"半生不熟"的狀態,就像一個學生某道題只做過一兩次,印象極其模糊。研究團隊通過分析LLaMA-1B模型的訓練數據發現,最稀有的詞語和最常見詞語之間,所接受的"練習次數"相差可達百萬倍,差距極其驚人。

第二個問題叫做"上下文崩塌"。由於詞語的身份資訊在入口處讀取後就再不出現,模型到了深層計算時,區分兩個詞語的唯一手段就是它們所處的語境。可一旦兩個詞出現在幾乎相同的語境裡,模型就會把它們混為一談,產生極其相似甚至相同的內部表示。

舉個具體例子:英文中"their"(他們的)和"there"(那裡)在很多句子裡語法位置極為相似,模型內部對它們的區分就可能變得非常模糊。更嚴重的是數字類詞語,比如"1847"和"1851"這兩個年份,當它們出現在類似的句子結構中時,模型深層計算對它們的區分幾乎完全消失。研究團隊通過實驗量化了這一現象:用250個模板句子分別替換目標詞對,然後測量模型各層的內部表示距離,發現在絕大多數中間層,這些本質不同的詞對之間的距離幾乎為零——它們在模型眼裡幾乎成了"同一個東西"。

這兩個問題的根源是相同的:詞語的身份資訊在入口處讀取後就永久消失,沒有任何機制能在後續層次中恢復它。研究團隊把這個類比為:位置資訊(RoPE,一種讓模型知道每個詞在句子裡處於第幾位的技術)在每一層的注意力計算中都會被重新注入,但詞語本身"是什麼"的資訊,卻只在最開始出現一次,此後杳無音訊。一旦這個資訊在某一層被"稀釋",後續所有層都無從彌補。

二、解決思路:讓每一層都知道"這個詞是誰"

蘋果團隊提出的解決方案,核心思路出奇地簡單:既然詞語身份資訊只注入一次是問題所在,那就讓它在每一層都被重新注入一次。不過具體實現方式頗為精巧,值得細細道來。

他們在標準Transformer(變換器,也就是現代大型語言模型的基礎結構)旁邊,額外設計了一個叫做"嵌入記憶"(EmbeddingMemory)的模組。這個模組由K個相互獨立的"記憶塊"(MemoryBlock)組成,每個記憶塊都維護一張獨立的"詞語→向量"查找表——也就是說,給定任意一個詞語,每個記憶塊都能獨立地輸出一個代表該詞語身份的向量。這K個記憶塊沒有共享參數,各自獨立學習,每個塊都試圖用不同的方式"理解"詞語的本質含義。

關鍵在於,這些記憶塊輸出的向量,是在整個前向傳播過程開始時一次性計算出來的,然後在模型的每一層計算中都能被"插入"到計算結果里。換句話說,不管模型當前處於第幾層的計算,它都可以直接查閱詞語的原始身份資訊,而不必依賴前幾層是否"保住"了這個資訊。

具體的插入方式也很巧妙。在每一層,有一個輕量級的"路由器"(router),它會根據當前層的計算狀態,決定從K個記憶塊中以何種比例混合提取資訊。這個混合是通過一個叫做softmax的數學操作實現的,它能確保各個記憶塊的權重加起來等於1。更聰明的是,研究團隊還額外引入了一個"空白槽"(null bank),其輸出始終為零向量。這個空白槽的作用是給路由器提供一個"不插入任何記憶資訊"的選項——當模型認為某一層不需要詞語身份資訊時,路由器可以把大部分權重分配給空白槽,從而讓記憶模組對該層的影響幾乎為零。這一設計的理論意義在於:當空白槽被充分激活時,TIDE在行為上與標準Transformer完全一致,也就是說TIDE是對標準架構的嚴格推廣,不會比原來更差。

記憶模組輸出的向量是以加法方式注入到每一層的計算結果中的,與正常的前饋網路(FFN)輸出完全獨立,互不干擾。這就好比在原本的生產流水線旁邊,增設了一條專門傳遞"這個產品原材料是什麼"資訊的輔助傳送帶,每個工位都能隨時查閱,但它並不替代原有的任何工序。

三、理論上能保證什麼

研究團隊不僅提出了這個架構,還從數學上嚴格證明了三件事。

第一件事是TIDE對標準Transformer的"漸近推廣性"。也就是說,當路由器把幾乎所有權重都給到空白槽時,記憶模組的貢獻趨近於零,TIDE的行為趨近於一個普通的Transformer。這意味著TIDE至少不會比原來的模型更差——它只會更好或持平,而不會退步。

第二件事是"K倍梯度放大"。前面說過,稀有詞語因為出現頻率低,獲得的學習機會(即梯度更新次數)極少。在TIDE中,每個詞語有K個獨立的記憶塊表示,而每次這個詞語出現時,K個記憶塊會同時獲得學習信號,等於把稀有詞語每次出現所攜帶的學習價值放大了K倍。從公式上說,標準Transformer中某個詞語的累積梯度信號上界與其出現頻率成正比;而TIDE中,這個下界是K乘以同樣的量。對於稀有詞語來說,這種K倍放大是實質性的幫助。

第三件事是"繞過了前饋網路的Lipschitz限制"。Lipschitz連續性是數學中描述一個函數"不會變化太快"的性質,前饋網路天然滿足這個性質——這意味著,如果給前饋網路輸入兩個非常相近的向量,它輸出的兩個向量也必然非常相近,不會突然相差很遠。這正是"上下文崩塌"的數學根源:兩個詞語的中間層表示已經很近了,前饋網路再怎麼努力也無法把它們分開,否則就會破壞對其他大量沒有崩塌的詞語的處理。記憶塊則完全不同——它的輸入是詞語的離散下標(就是詞語在詞表里的編號),而不是連續的向量,因此根本不受Lipschitz限制。對於記憶塊來說,"their"就是"their","there"就是"there",無論它們的中間層向量多麼相近,記憶塊都能輸出截然不同的值。研究團隊用一個精確的數學命題證明了:對於任意兩個在某層發生崩塌的詞對,都能找到記憶塊參數使得兩個詞的記憶輸出距離等於任意給定的目標值,與崩塌程度無關。

四、實驗數據說了什麼

理論上成立,實踐中呢?研究團隊在多個維度上進行了詳盡的實驗驗證。

在語言建模質量上,他們訓練了從350M到3B參數的多個規模的模型,將標準LLaMA架構與配備不同數量記憶塊(K=2、4、8、16、24)的TIDE版本進行對比,在WikiText-2、PubMed生物醫學文本和DCLM通用語料三個數據集上持續跟蹤驗證困惑度(perplexity,衡量語言模型預測準確性的指標,數值越低越好)。結果顯示,所有TIDE變體從K=2到K=24都單調優於基礎模型,且隨訓練數據量增加,優勢持續擴大而不飽和。一個特別值得關注的數據是:僅有2個記憶塊的TIDE在100B訓練詞元時已能達到標準模型需要200B詞元才能達到的困惑度——換句話說,同樣的模型規模下,TIDE的學習效率大約是標準架構的兩倍。

在稀有詞語的專項分析上,他們把詞表按照出現頻率均勻分成10檔,從最稀有到最常見,分別計算各檔詞語的交叉熵損失,並比較標準模型與TIDE-8E-1B(即有8個記憶塊的1B參數TIDE模型)在200B詞元訓練後的差異。結果極為清晰:TIDE在所有10檔上都優於基礎模型,但優勢大小呈現出強烈的不對稱性。最稀有檔的改進幅度是0.704 nats,而常見詞語損失僅從2.967下降到2.892(下降0.075),前者的改善幅度是後者的5.6倍。每增加一個記憶塊帶來的邊際收益,在稀有詞語上比在常見詞語上高出3.7倍。

在上下文崩塌的專項分析上,研究團隊選取了三類代表性詞對:語法同音異義詞(如their/there、affect/effect等)、數字詞(如1847/1851、100/1000等)和稀有領域專業詞(如ibuprofen/acetaminophen、mitosis/meiosis等),用150個模板句子替換詞對,測量模型各層的L2距離。結果顯示,TIDE在所有三類詞對、所有層次上的L2距離都顯著高於標準模型。其中,數字詞對的改善最為突出,其次是稀有領域詞,語法同音詞也有明顯改善。這與理論預測完全一致:記憶塊通過在每一層注入離散詞語身份信號,有效阻止了崩塌現象的蔓延。

在下游任務的零樣本(zero-shot)評測上,研究團隊在ARC-C、ARC-E(科學常識題)、BoolQ(是非判斷題)、HellaSwag(常識推理)、LAMBADA(長程理解)、OBQA(開放書本問答)、PIQA(物理直覺問答)、SciQ(科學問答)八個基準數據集上進行了測試。以1B參數規模為例,標準LLaMA的平均分為61.4%,TIDE-24E-1B的平均分為63.7%,提升了2.3個百分點,且隨K增大呈單調提升。在3B參數規模上,TIDE-8E的平均分從67.2%提升至68.3%。

五、記憶塊內部在儲存什麼

研究團隊還深入分析了記憶塊在訓練後究竟學到了什麼,以及路由器的行為模式。

通過計算主嵌入表E與8個記憶塊之間的餘弦距離(一種衡量向量相似度的指標,距離越大表示越不相似),他們發現:每個記憶塊與主嵌入表的平均餘弦距離在0.65到0.99之間,說明記憶塊學到的表示與主嵌入表的內容高度不重疊,是真正的"互補資訊"而非簡單複製。同時,記憶塊相互之間的距離則相對較小,說明它們收斂到了有所重疊但未完全崩塌的不同子空間。

路由器的行為也非常有意義。將路由器對不同頻率檔位詞語的權重分配進行分析後發現:空白槽權重與詞語頻率呈單調正相關——最稀有檔詞語的空白槽權重均值約為0.530,而最常見檔詞語的空白槽權重均值高達0.889。用更直白的話說,路由器對稀有詞語"開了更大的記憶之門"(允許更多記憶資訊進入),而對常見詞語則傾向於"基本關閉記憶通道"。這個行為是模型自發學習到的,沒有任何顯式的指導規則。此外,不同記憶塊並非均等地對所有詞語生效,而是呈現出明顯的分工:某個記憶塊對稀有詞語貢獻顯著,另一個則專門對中頻詞語更為活躍,而在常見詞語上幾乎所有記憶塊的權重都接近於零。

通過對具體詞語的近鄰分析,研究團隊進一步發現:對於常見詞語,記憶塊找到的語義近鄰與主嵌入表高度重疊(Jaccard重疊係數較高);而對於稀有詞語,記憶塊發現的近鄰與主嵌入表差異懸殊(Jaccard重疊係數極低),且包含了大量主嵌入表未能捕捉到的有意義關聯資訊。以稀有詞語"asynchronously"(異步地)為例,主嵌入表的近鄰幾乎全是以"-ly"結尾的副詞;而某個記憶塊則找到了"Asynchronous JavaScript and XML"(一種異步編程技術)和"callbacks"(回調函數)等技術含義更精確的關聯詞。

六、計算開銷與儲存代價

一個自然的擔憂是:增加K個記憶塊,會不會大幅增加模型的計算量和內存占用?答案是:運行時內存占用幾乎不變,計算開銷增加有限,而儲存代價可以通過量化和壓縮大幅降低。

在運行時,每個記憶塊的操作僅包含一次查表和一次歸一化,沒有任何矩陣乘法,相比模型主體中大量的矩陣乘法操作,這部分開銷微乎其微。每一層的路由器只是一個(K+1)維的softmax操作和K+1個向量的加權求和,同樣可以忽略不計。在實際測量中,TIDE-2E-1B的每個詞元解碼時間為11.236毫秒,TIDE-24E-1B為13.422毫秒,而標準LLaMA-1B為11.085毫秒,即便是最大配置的TIDE也只慢了約21%。

在儲存方面,記憶塊的參數量會隨K線性增長。以TIDE-8E-1B為例,記憶塊部分在FP16精度下需要約4.2GB儲存空間,而模型主體僅需1.028GB。但關鍵在於,記憶塊的權重在訓練完成後是完全靜態的——它們不依賴任何運行時的上下文,因此可以用4位量化(將每個參數從16位壓縮到4位)儲存到SSD硬碟中,按需異步讀取,同時不影響模型主體在GPU顯存中的正常運行。研究團隊測試了量化效果:8位量化幾乎不損失性能(WikiText-2困惑度從10.088略增至10.089),4位量化損失也較小(困惑度增至10.263)。此外,通過對記憶塊矩陣進行SVD低秩分解(一種數學壓縮方法),在保持約30%以內秩壓縮比的情況下,性能幾乎不降;即便壓縮到50%,性能損失也處於可接受範圍。

七、每一層的記憶注入都同等重要嗎

研究團隊還專門設計了一組消融實驗:每次"隱藏"模型中某一層的記憶注入,測量困惑度的變化,以此判斷不同深度的記憶注入對模型性能的貢獻。

結果揭示出一個有趣的"非均勻"模式:隱藏第0層(最底層)的記憶注入,會導致困惑度災難性上升,在PubMed數據集上相對基線的惡化幅度超過百萬倍。隱藏第1層的影響次之,但仍然顯著(困惑度上升8%至13%)。然而,從第4層到第12層這段區間,隱藏任何單層的影響都不到2%,說明記憶資訊在這些層次已經被充分整合進殘差流,任何一層的缺失都可以被其他層補償。值得注意的是,第13層出現了一個明顯的"第二峰值"——隱藏這一層的影響再次顯著上升。研究團隊將此解讀為:早期層注入的詞語身份資訊在中間層被逐漸"消化"利用,當這些資訊被耗盡後,模型需要從更深的層次重新補充詞語身份信號。

歸根結底,TIDE所做的事情,本質上是填補了一個長期被忽視的資訊斷層。現代大型語言模型花費了大量精力處理詞語之間的上下文關係,卻在不經意間讓詞語"忘記了自己是誰"。TIDE通過一個相對簡潔的架構修改,給每一層都保留了一個直接查閱詞語原始身份的渠道,從而同時解決了稀有詞語學習不足和相似上下文導致的詞語混淆兩個問題。從實驗數字來看,這個改動帶來的收益是實實在在且跨越不同任務、不同模型規模的。

當然,這項研究也有若干有待深入探索的方向。記憶塊的儲存開銷仍然隨K線性增長,在極端資源受限的場景下需要依賴壓縮技術。目前的實驗覆蓋了750M到3B參數、200至500B訓練詞元的範圍,更大規模模型和更長訓練過程中的表現還有待驗證。此外,經過指令微調或人類反饋強化學習(RLHF)之後,這一改進是否依然有效,也是需要後續研究回答的問題。

對於任何關心AI語言模型質量——尤其是模型在處理專業詞彙、罕見名詞、數字等"冷門"內容時的可靠性——的人來說,這項工作提供了一個頗具說服力的方案,指向了一個此前從未被認真審視的瓶頸。有興趣深入了解技術細節的讀者,可以通過arXiv編號2605.06216查閱完整論文。

Q&A

Q1:為什麼說大型語言模型對稀有詞語的理解存在嚴重缺陷?

A:大型語言模型通過反覆練習來學習詞語,詞語出現越多次,模型對它的理解越準確。然而語言遵循齊普夫定律,少數高頻詞占據絕大多數使用場景,大量稀有詞極少出現。研究發現,稀有詞與高頻詞之間的訓練信號差距可達百萬倍,導致模型對專業術語、罕見名詞等稀有詞的理解長期停留在模糊狀態。

Q2:TIDE架構是如何解決詞語在模型深層"被遺忘"的問題的?

A:標準模型只在入口處讀取一次詞語身份資訊,後續層無法再直接查閱。TIDE在模型旁邊增設了一個"嵌入記憶"模組,包含K個獨立的記憶塊,每塊都儲存著每個詞語的身份向量。這些向量在每一層計算時都會被重新注入到模型的計算結果中,確保模型在任意深度都能直接感知"當前處理的詞是哪個",不再依賴前幾層是否保住了這個資訊。

Q3:TIDE增加了那麼多記憶塊,運行速度會慢很多嗎?

A:實際測試中,TIDE的速度損耗相當有限。標準模型每個詞元解碼需要約11毫秒,即便是配備24個記憶塊的最大TIDE變體也只需約13.4毫秒,慢了約21%。更重要的是,記憶塊參數訓練完成後完全靜態,可以用4位低精度量化儲存到硬碟上按需讀取,不占用GPU顯存,因此實際部署中主體內存開銷與標準模型幾乎持平。

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