機器之心報道
編輯:+0、張倩
GPT 系列模型的記憶容量約為每個參數 3.6 比特。
語言模型到底能記住多少信息?Meta、DeepMind、康奈爾大學和英偉達的一項測量結果顯示:每個參數大約 3.6 比特。一旦達到這個極限,它們就會停止記憶并開始泛化。
長期以來,記憶與泛化之間的模糊性一直困擾著對模型能力和風險的評估,即區分其輸出究竟源于對訓練數據的「記憶」 (對其訓練數據分布的編碼程度) ,還是對潛在模式的「泛化」理解 (將理解擴展到未見過的新輸入)。 這種不確定性阻礙了在模型訓練、安全、可靠性和關鍵應用部署方面的針對性改進。
這就好比我們想知道一個學生考試得了高分,是因為他真的理解了知識點(泛化),能夠舉一反三,還是僅僅因為他把教科書上的例題和答案都背下來了(記憶)。
基于此,研究團隊提出了一種新方法,用于估計一個模型對某個數據點的「了解」程度,并利用該方法來衡量現代語言模型的容量。
- 論文標題:How much do language models memorize?
- 論文地址:https://arxiv.org/pdf/2505.24832
研究團隊從形式上將記憶分為兩個組成部分:
- 非預期記憶—— 模型包含的關于特定數據集的信息;
- 泛化—— 模型包含的關于真實數據生成過程的信息。
通過消除泛化部分,可以計算出給定模型的總記憶量,從而估計出模型容量:測量結果估計,GPT 系列模型的容量約為每個參數 3.6 比特
研究團隊在規模不斷增大的數據集上訓練語言模型,觀察到模型會持續記憶,直到其容量飽和,此時「頓悟」(grokking)現象開始出現,非預期記憶隨之減少,模型開始泛化。也就是說,在海量數據上訓練的語言模型根本不可能記住所有訓練數據,因為根本沒有足夠的容量。
研究團隊訓練了數百個參數量從 50 萬到 15 億不等的 Transformer 語言模型,并由此提出了一系列關于模型容量、數據規模與成員推斷之間關系的 scaling law。
研究團隊還借鑒了「信息論之父」 Claude Shannon 1953 的一項重要工作《The Lattice Theory of Information》的一些理論。該論文將他早期關于信息論中熵和信道容量的概念,與數學中的格理論聯系起來,為理解和處理復雜信息系統提供了新的視角。
這項研究激發了社區對蒸餾、量化、模型安全等方面的思考。
兩種「記憶」:非預期記憶和泛化
在論文中,作者希望找到一個方法來量化模型對特定數據點的記憶程度,并且這種記憶定義要滿足以下幾點:
- 與泛化區分開;
- 能夠針對具體的數據樣本;
- 不依賴于具體的訓練算法;
統計學視角下的記憶定義
作者從信息論的角度出發,利用「互信息(Mutual Information)」來定義記憶。
在論文中,大寫字母(例如 X、Θ)用來指代隨機變量,小寫字母用來指代隨機變量的實例(例如 x ~ X 和 θ ~ Θ)。
信息論已經為隨機變量發展出了被廣泛理解的信息概念。對于隨機變量 X,通常使用 H (X),即 X 的熵,來定義 X 中存在的信息量。此外,對于兩個不同的隨機變量 X、Y,可以將 X | Y 定義為在固定 Y 后 X 中剩余的不確定性。定義了這個量之后,現在可以通過從總信息中減去剩余信息來測量 X 和 Y 之間的互信息:I (X, Y) = H (X) ? H (X | Y)。
現在假設有一個機器學習 pipeline。作者有一個關于底層模型的先驗 Θ,它捕獲了作者的數據集分布 X。作者有一個學習算法 L,它將來自 X 的樣本映射到訓練好的模型 。為了理解有多少關于 X 的信息存儲在 中,作者可以使用互信息的概念:
注意這捕獲了存儲在 中的關于 X 的所有信息。正如前面所討論的,記憶的概念需要同時考慮泛化。因此,當測量非預期記憶時,作者只對 X | Θ 中存在的信息感興趣,這是在固定 Θ 后 X 中剩余的不確定性。
因此,可以將非預期記憶化定義為:
然后泛化(或預期記憶)應該是:
現在作者已經定義預期和非預期記憶的概念,作者將注意力轉向實際測量它們。讓作者首先陳述一個能夠非預期記憶的命題:
命題 1(非預期記憶的 Super-additivity)。 假設 X = (X_1, . . . , X_n) 是 n 個獨立同分布樣本的數據集。作者有:
這個命題表明,為了測量數據集級別非預期記憶的下界,可以將每個樣本的記憶相加。另一方面,訓練模型本身的信息內容的熵作為非預期記憶的上界。這個命題的另一個含義是,非預期記憶應該隨數據集大小 scale,但不能超過模型的總容量。
用 Kolmogorov 復雜度測量非預期記憶
用似然度估計 Kolmogorov 復雜度
確定了 Kolmogorov 記憶概念后,現在描述如何在不同設置中估計 H^K。注意,Kolmogorov 復雜度的精確計算是已知不可計算的(其判定版本是不可判定的)。然而,仍然可以使用最佳可用壓縮方案來近似它。在論文中, 作者總結了如何近似定義中的每個項。
模型記憶容量
非預期記憶為作者提供了一種有原則的方法,用以衡量模型 θ 對某一數據點 x 所掌握的確切比特數。
如果將數據集中每個數據點的信息加起來,就可以衡量模型對整個數據集所掌握的總比特數。并且,在由于每個數據點完全獨立而無法進行泛化的情況下,可以通過對每個數據點的非預期記憶進行求和來估計給定模型 θ 的容量。
定義模型容量
作者首先對特定語言模型 θ 的這種記憶容量概念進行形式化。容量是指在 θ 的所有參數中可以存儲的記憶總量。
用合成序列測量模型容量
實驗
實驗結果
圖 2 展示了不同模型規模和數據量下的記憶情況。這樣,便可以將不同數據集規模 (x 軸) 下的非預期記憶量 (y 軸) 進行可視化,并按模型規模 (線條顏色) 分組。研究中觀察到,一旦模型達到其容量上限,便會出現一個明顯的平臺期。當數據集足夠大時,無論數據規模如何,模型的凈記憶量都會達到一個上限。對于容量充足的模型而言,小型數據集會被完全記憶。
文中將每個模型的容量,估計為在所有數據集規模上測得的最大非預期記憶比特數。隨后,在圖 6 中將這一容量與模型規模進行了比較。有趣的是,即便在當前這種小規模實驗中,也能觀察到所測容量(即在所有數據集上測得的最大記憶量)與模型參數數量之間,存在一種非常平滑的對應關系。圖 6 中呈現了這種關系:在當前的實驗設置下,文中所述模型每參數能穩定記憶 3.5 至 3.6 比特的信息。
這印證了先前研究的發現,即事實性信息的存儲量與模型容量成線性關系。文中的估計值略高于 Allen-Zhu & Li (2024) 的結果 —— 他們通過量化方法估計模型每參數約可存儲 2 比特信息。
由于模型是通過梯度下降進行學習的,因此并不能保證找到全局最優解;所以,作者所測量的始終是模型容量的一個下限。作者進一步仔細研究了訓練曲線,以分析一個包含 800 萬參數的語言模型的收斂情況。圖 6 展示了模型在訓練過程中的收斂動態。
可以看到,對于樣本量從 16,000 到 400 萬的各個數據集,其記憶的比特數均在 3.56×10^6 到 3.65×10^6 的范圍內。這表明測量結果在一個數量級內具有穩健性,并且作者認為,即使進行更多的訓練迭代,模型能記憶的信息量也不會有顯著增加。這一發現也印證了作者的假設:即模型的容量與參數數量大致成正比。
其中,兩個最大的數據集(樣本量分別為 400 萬和 800 萬),其收斂后的總記憶量分別為 2.95×10^6 和 1.98×10^6 比特。作者預計,若進行更多輪次的訓練,這些模型所記憶的數據總量將繼續向其容量上限增長。
精度如何影響容量?
一個很自然的問題是:對 α 的估計值,在多大程度上取決于語言模型訓練時所用的精度?
事實上,盡管多數軟件默認采用 32 位精度進行訓練,但近期研究已表明,即使將語言模型量化到每參數不足 2 比特的水平,它們仍能保留大部分原有功用。
鑒于所有其他實驗均在 bfloat16 精度下進行,作者特地在完整的 fp32 精度下重做了這些實驗,以分析其對容量的影響。
結果顯示,對于不同規模的模型,容量均略有提升,α 的平均值也從 3.51 比特 / 參數增加到了 3.83 比特 / 參數。
這一增幅遠不及參數 θ 比特數實際達到的兩倍增長,這表明,當精度從 bfloat16 提升至 float32 時,模型中增加的額外比特,大部分并未被用于原始數據的存儲。
更多信息請參見原文。
特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.