Alex Wang 發表了一篇技術文章,提出透過「記憶體儲存」的直觀視角來理解 Transformer 架構中的線性映射、多層感知器(MLP)及自注意力機制。文章的核心論點在於,評估記憶體儲存品質的關鍵指標是「干擾與訊號比率」(interference-to-signal ratio),即當嘗試召回特定記憶時,其他記憶造成的干擾程度。一個儲存系統在干擾超過訊號之前所能容納的記憶數量,被定義為其「容量」。文章展示了從基礎線性儲存到進階機制的演進過程及其容量差異:
1. **外積記憶體儲存(Outer Product Memory Store)**:這是最基礎的線性儲存方式,透過將鍵值對的外積累加到權重矩陣中來儲存記憶。查詢時,系統計算輸入與所有儲存鍵的相似度加權和。然而,由於空間維度限制,當儲存記憶數 $M$ 超過鍵維度 $d_k$ 時,干擾會迅速增加。理論分析顯示,其容量約為 $M \approx d_k$。例如,在 64 維鍵的情況下,容量僅約 64 個記憶。
2. **最佳線性記憶體儲存(Optimal Linear Memory Store)**:透過將儲存過程視為線性回歸問題,並對鍵進行「白化」(whitening)處理以消除協方差,可以顯著降低干擾。這種方法在 $M \le d_k$ 時能實現無干擾的完美召回;當 $M > d_k$ 時,其容量約為 $M \approx 2d_k$,即基礎線性儲存的兩倍。
3. **MLP 與自注意力(Self-Attention)**:文章指出,透過引入非線性函數進行選擇性召回,可以進一步抑制低相似度鍵的干擾,從而提升容量與召回品質。原文引言中給出了一個容量階梯的概略數據:以 64 維鍵為例,容量從線性儲存的約 64 個記憶,跳升至約 2,700 個記憶,最終自注意力機制可儲存超過一百萬個記憶。需要注意的是,提供的截斷文本僅在引言中列出此數字序列,並未展開說明「約 2,700」這個中間數值具體對應哪一種架構(如 MLP 的特定參數配置)或其詳細推導過程,因此該數值應視為原文提出的概略量級參考,而非已驗證的特定架構標準容量。這表明自注意力機制具有極佳的召回能力,且理論上可儲存潛在無限數量的記憶。
文章還提供了一個互動式應用程式,讓讀者可以調整儲存記憶數量 $M$ 和銳度參數 $\beta$,直觀觀察不同記憶體儲存機制(線性、ReLU、ReLU²、Softmax)下的干擾與訊號比率變化,從而理解為何現代大型語言模型能夠從海量知識中準確召回特定資訊。
事件背景
在深度學習理論中,梯度下降更新線性層權重的過程可以被視為一種記憶體寫入操作。具體而言,對於線性層 $y = Wx$,其權重更新規則 $W \leftarrow W - \eta \bar{y} x^T$ 等效於以輸入 $x$ 為鍵、以負梯度 $-\eta \bar{y}$ 為值寫入一條新記憶。這種觀點將訓練過程解釋為對所有訓練輸入的注意力機制,相關理論可參考 Irie, Csordás & Schmidhuber 的研究。此外,透過相似度進行召回的記憶體儲存機制在學術文獻中被稱為「關聯式記憶體」(associative memory)。
社群觀察
作者 Alex Wang 在討論區分享了一個 Twitter 摘要連結,以便讀者快速掌握重點。讀者 tooDumbForML_th 表示雖然能大致理解內容,但希望透過具體例子(如儲存 50 個州首府)來加深理解,並提及曾觀看 Karpathy 的教學影片。讀者 crediblejhj 是一名計算機科學大一學生,嘗試用自己的語言總結核心概念:將層視為儲存鍵值對的函數,查詢時與所有鍵比較,若維度不足則產生干擾,並請求確認其理解是否正確。讀者 yoz-y 則幽默地評論文章標題中的「你」(you)應定義清楚讀者需具備哪些先決條件。



