【NLP】什么是模型的記憶力!
作者 | 太子長琴
整理 | NewBeeNLP
語言模型能夠記住一些訓(xùn)練數(shù)據(jù),如果經(jīng)過合適地提示引導(dǎo),可能會生成記住的數(shù)據(jù)。這肯定不太合適,因為可能會侵犯隱私、降低效用(重復(fù)的容易記住的詞往往質(zhì)量比較低),并且有失公平(有些文本被記住而有些沒有)。
在我們今天要分享來自Google的Paper:Quantifying Memorization Across Neural Language Models[1]中,描述了三個對數(shù)線性關(guān)系,量化了 LM 生成記憶數(shù)據(jù)的程度。如果增大:(1)模型的容量,(2)樣本的重復(fù)次數(shù),(3)提示文的 Token 數(shù)量,記憶會顯著增加??偟膩碚f,LM 的記憶比之前認(rèn)識到的更普遍,并隨著模型不斷增大可能變得更糟。
一句話概述:更大的模型更可能學(xué)到重復(fù)數(shù)據(jù)的特性,去重是緩解模型記憶危害的不錯策略。
其實,關(guān)于模型的記憶一直以來都是有被人們認(rèn)識到的,尤其當(dāng)我們在做文本生成時,總是特別擔(dān)心模型會說出什么「驚人」的話語。亞馬遜的音響案例僅僅是一方面,還有可能會生成政治敏感、歧視、暴力、色情等多種不當(dāng)言論,這還是被動的方面。模型也可能被懷有不良意圖的人「誘導(dǎo)」而生成一些能被他們利用到的言論和信息。
目前對 LM 這方面的評估還比較淺,對不同大小的模型和數(shù)據(jù)集能帶來多少記憶的變化的理解還不夠深入。之前的很多研究主要聚焦在模型或數(shù)據(jù)集固定的情況,或比較狹窄的變化上。也有衡量現(xiàn)有模型記憶的,但更多關(guān)注如何避免問題并確保模型輸出的新穎性,而不是研究最大限度地記憶來研究模型風(fēng)險。
本文從三個能顯著影響記憶的屬性進行研究:
模型規(guī)模:大模型比小模型能多記住 2-5 倍的數(shù)據(jù)。 數(shù)據(jù)重復(fù):樣本重復(fù)次數(shù)越多越容易被提取。 上下文:圍繞的上下文越長越容易被提取。
方法
記憶的定義
如果存在一個長度為 k 的文本 p,通過模型 f + greedy decoding,可以生成文本 s,而 p+s 包含在訓(xùn)練數(shù)據(jù)中,則稱 s 是可提取的。選擇此定義的原因是更加可執(zhí)行。其他定義包括:差異隱私或反事實記憶的下限(需要大量模型評估隱私,對大模型不合適);計算曝光(每個序列需要數(shù)千個生成,為精心設(shè)計訓(xùn)練樣本設(shè)計,大規(guī)模實驗不可行);k-eidetic 記憶,對非提示的記憶是個有用的定義,但對使用訓(xùn)練數(shù)據(jù)進行提示的情況不太有用。
評估數(shù)據(jù)的選擇
首先不可能是所有訓(xùn)練數(shù)據(jù)了,本文選擇了 50000 句,當(dāng)然也不能隨機選,否則不可能包含到要評估的方向。本文構(gòu)造了一個重復(fù)歸一化的子集,對每個序列長度 L(50,100,150,……,500)和整數(shù) n,選擇 1000 個序列,在訓(xùn)練數(shù)據(jù)中包含了 2^{n/4} - 2^{n+1}/4 次。這個操作直到某個 n 時,訓(xùn)練數(shù)據(jù)中按此標(biāo)準(zhǔn)沒法得到 1000 句時停止。這有助于評估樣本重復(fù)這個因子。對 50-500 之間的每個序列長度,都分別收集了大約 50000 個重復(fù)不同次數(shù)的樣本,總共大概 50 萬個序列。比如,對 L=50,從 n=7 時,重復(fù)次數(shù) 3-4 次,選擇 1000 個,然后增加 n,直到訓(xùn)練數(shù)據(jù)中找不到 1000 個時停止,一共大概有 50000 個。
對每個長度 L,使用前 L-50 個 Token 進行提示,預(yù)測 50 個 Token 看看是不是和原文完全匹配。50 個 Token 對應(yīng) 127 個字符或 25 個單詞,遠(yuǎn)超過典型英語句子的長度。通過對所有長度 L(而不是重復(fù)次數(shù))求平均值來計算序列可提取的平均概率。
實驗
主要研究 GPT-Neo,在 Pile 數(shù)據(jù)集(各種來源的 825G 語料)上訓(xùn)練的。模型有四種尺寸:125M,1.3B,2.7B 和 6B。
實驗結(jié)果如下圖所示:
更大模型記住更多
如圖 a 所示,相比 Baseline 的 GPT-2 能完成 6% 的評估樣本,GPT-Neo 相似大?。?.3B)達到了 40%,GPT-2 記住的大多是無意義的序列(數(shù)字、重復(fù)的幾個 Token 或標(biāo)點)。因此,得出的結(jié)論是: 較大模型具有較高比例的提取率,這是因為它們記住了數(shù)據(jù),而不僅僅是因為大模型通常更準(zhǔn)確。
重復(fù)文本記住更多
如圖 b 所示,重復(fù)的文本越多被記住的概率越大。而且還可以發(fā)現(xiàn), 即使只有很少的重復(fù)記憶也會發(fā)生 ,因此去重并不能完美的防止泄露。
更長的提示記住更多
如圖 c 所示,隨著提示長度的增加,記憶也有顯著的增加。作者稱其為「可發(fā)現(xiàn)現(xiàn)象」:一些記憶只有在特定條件下才會變得明顯,例如當(dāng)模型被提示具有足夠長的上下文時。一方面看這是好的,因為一些記憶難以被發(fā)現(xiàn);另一方面看,也會損害我們在機器學(xué)習(xí)模型審計隱私的能力。
以下是備用實驗設(shè)置,結(jié)果如下圖所示:

隨機采樣
為 100 200 500 1000 的長度各隨機選擇了 10 萬,結(jié)果如圖 a 和 b 所示,記憶的絕對概率遠(yuǎn)低于之前實驗的結(jié)果,不過整體的趨勢是一樣的。另外,長序列相比短序列更容易預(yù)測正確(圖 b Baseline,GPT2-XL,1.5B)。
解碼策略
如圖 c(左)所示,beam search(b=100)只是輕微增加了記憶,而且兩者在 45% 的時間內(nèi)產(chǎn)生了相同的輸出。
其他定義
就是本來是和原始那條數(shù)據(jù)對比,現(xiàn)在是在整個語料上看有沒有一樣的。這其實是放寬了記憶,因為有些句子前綴一樣,但后面不一樣。按之前那種做法,如果后綴正好生成了另外一句的,那就不算記住了;但現(xiàn)在的定義也算記住了。
結(jié)果如圖 c(右)所示,稍微用腦子想一下都知道結(jié)果肯定是增加了,而且隨著重復(fù)次數(shù)的增加,差異更加明顯。
定性分析
普遍的記憶序列都是非常規(guī)文本,如代碼片段或高度重復(fù)的文本(如開源許可)。另外,增加模型大小會導(dǎo)致大量非重疊的記憶序列,盡管每個模型都有一些彼此不同享的記憶量。如下圖所示:

同時,還發(fā)現(xiàn)雖然較小模型的生成和訓(xùn)練數(shù)據(jù)不匹配,但通常主題相關(guān)且局部一致,但它們只是語法上合理,語義上不正確。
復(fù)制研究
接下來,進一步將上面的分析復(fù)制到在不同數(shù)據(jù)集(重復(fù)的 C4)和具有不同訓(xùn)練目標(biāo)上訓(xùn)練的不同語言模型家族(T5)上。
實驗結(jié)果如下圖所示:

T5 MLM
首先需要重新定義一下什么是記憶,由于是 MLM,這里就定義為可以完美地完成填空(15% 的空),簡單起見每句只檢查一組。結(jié)果如上圖 a 所示,結(jié)果與圖 1 類似,隨著參數(shù)的增加,記憶增加。雖然趨勢一致,但與同等大小的因果模型相比,MLM 的記憶要少一個數(shù)量級。
接下來是重復(fù)樣本的情況,如上圖 b 所示,結(jié)果開始變得不那么明朗,趨勢并不明顯,出現(xiàn)大約 140 次的序列更可能被記住。進一步定性分析發(fā)現(xiàn),138-158 重復(fù)組中包含的大多數(shù)重復(fù)樣本大多是空格 Token,這就比其他重復(fù)次數(shù)的序列更容易預(yù)測。
在重復(fù)數(shù)據(jù)上訓(xùn)練的 LM
共三組結(jié)果,分別是:C4,刪除近似重復(fù)的文檔后的 C4,刪除長度為 50 Token 的重復(fù)后的 C4。結(jié)果如上圖 c 所示,去重后記住的要更少,但只有在重復(fù) 100 次以下時有效,重復(fù)超過 100 次后就沒用了,可能意味著重復(fù)數(shù)據(jù)刪除并未徹底(重復(fù)的不同但有效的定義)。
說實話,這個解釋真的很牽強啊……
結(jié)論
對于研究文本生成的從業(yè)者來說,本文證明,雖然當(dāng)前 LM 確實準(zhǔn)確模擬了訓(xùn)練數(shù)據(jù)的分布,但并不一定意味著它們將對所需的基礎(chǔ)數(shù)據(jù)分布進行建模。特別當(dāng)訓(xùn)練數(shù)據(jù)分布偏斜(比如有很多重復(fù)樣本)時,更大的模型更可能會學(xué)習(xí)到意外的數(shù)據(jù)集特性。因此,仔細(xì)分析用于訓(xùn)練更大模型的數(shù)據(jù)集變得更加重要,因為更大模型可能比小模型記住更多細(xì)節(jié)。
對于研究隱私的從業(yè)者來說,本文的研究表明,當(dāng)前大型語言模型可能會記住其訓(xùn)練數(shù)據(jù)的很大一部分,記憶與模型大小呈對數(shù)線性關(guān)系。同時,這種記憶常常不容易被發(fā)現(xiàn),并且對于實際提取這些數(shù)據(jù)的攻擊,必須開發(fā)定性的新攻擊策略。幸運的是,僅出現(xiàn)一次的訓(xùn)練數(shù)據(jù)似乎很少被記住,因此去重可能是緩解模型記憶危害的一項實用技術(shù)。
本文參考資料
Quantifying Memorization Across Neural Language Models: https://arxiv.org/abs/2202.07646
往期精彩回顧
適合初學(xué)者入門人工智能的路線及資料下載 (圖文+視頻)機器學(xué)習(xí)入門系列下載 機器學(xué)習(xí)及深度學(xué)習(xí)筆記等資料打印 《統(tǒng)計學(xué)習(xí)方法》的代碼復(fù)現(xiàn)專輯 機器學(xué)習(xí)交流qq群955171419,加入微信群請掃碼
