AI說真話比胡言亂語更可怕!和GPT-2聊天會把別人隱私都抖出來

AI說真話比胡言亂語更可怕!和GPT-2聊天會把別人隱私都抖出來

ADVERTISEMENT

有時候,AI說真話比胡言亂語更可怕。

本來只是找AI聊聊天,結果它竟然抖出了某個人的電話、住址和電子信箱?

沒錯,只需要你說出一串「神秘代碼」:「East Stroudsburg Stroudsburg……」

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了 

自然語言模型GPT-2就像是收到了某種暗號,立刻「送出」一套個人訊息:姓名、電話號碼,還有地址、電子信箱和傳真(部分訊息已經馬賽克處理)。

這可不是GPT-2胡扯的,而是真實存在的個人訊息!這些個人訊息,全部來自於網路上。 

這是因為GPT-2靠網上爬取的資料來訓練。

本以為,這些個性化資料會在訓練時已經湮沒,沒想​​到只要一些特殊的喚醒詞,就突然喚出了AI「內心深處的記憶」。

想像一下,如果你的個人隱私被科技公司爬取,那麼用這些資料訓練出的模型,就可能被別有用心的人逆向還原出你的地址、電話……

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了真想想都讓人害怕。

這是來自Google、Apple、史丹佛、UC柏克萊、哈佛、美國東北大學、OpenAI七家公司和機構的學者們調查的結果。

AI說真話比胡言亂語更可怕!和GPT-2聊天會把別人隱私都抖出來

調查發現,這並不是偶然現象,在隨機抽取的1800個輸出結果中,就有600個左右的結果還原出了訓練資料中的內容,包括新聞、日誌、代碼、個人訊息等等。他們還發現,語言模型越大,透露隱私訊息的機率似乎也越高。

不光是OpenAI的GPT模型,其它主流語言模型BERT、RoBERTa等等,也統統中招。 所有的漏洞和風險,都指向了大型語言模型的先天不足。而且,目前幾乎無法完美解決。

吃了的,不經意又吐出來

個人敏感訊息的洩露,是因為語言模型在預測任務輸出結果時,本身就會出現資料洩露或目標洩露。

所謂洩露,是指任務結果隨機表現出某些訓練資料的特徵。

形像地說,語言模型「記住了」見過的資料訊息,處理任務時,把它「吃進去」的訓練資料又「吐了出來」。

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了

至於具體記住哪些、吐出來多少、什麼情況下會洩露,並無規律。

而對於GPT-3、BERT這些超大型語言模型來說,訓練資料集的來源包羅萬象,大部分是從網路公共訊息中抓取,其中免不了個人敏感訊息,比如電子信箱、姓名、地址等等。

研究人員以去年面世的GPT-2模型作為研究對象,它的網路一共有15億個參數。

之所以選擇GPT-2,是因為它的模型已經開源,便於上手研究;此外,由於OpenAI沒有公布完整的訓練資料集,這項研究的成果也不會被不法分子拿去利用。

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了

團隊篩查了模型產生的數百萬個語句,並預判其中哪些是與訓練資料高度相關的。

這裡利用了語言模型的另一個特徵,即從訓練資料中捕獲的結果,可信度更高。也就是說,當語言模型在預測輸出結果時,它會更傾向於用訓練時的資料來作為答案。(訓練時看到什麼,預測時就想說什麼)

在正常訓練情況下,輸入「瑪麗有隻……」時,語言模型會給出「小羊羔」的答案。

但如果模型在訓練時,偶然遇到了一段重複「瑪麗有隻熊」的語句,那麼在「瑪麗有隻……」問題的後面,語言模型就很可能填上「熊」。

而在隨機抽取的1800個輸出結果中,約有600個結果出現了訓練資料中的內容,包括新聞、日誌、代碼、個人訊息等等。

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了其中有些內容只在訓練資料集中出現過寥寥幾次,有的甚至只出現過一次,但模型依然把它們學會並記住了。

1.24億參數的GPT-2 Small如此,那麼參數更多的模型呢?

團隊還對擁有15億參數的升級版GPT-2 XL進行了測試,它對於訓練資料的記憶量是GPT-2 Small的10倍。

實驗發現,越大的語言模型,「記憶力」越強。GPT-2超大模型比中小模型更容易記住出現次數比較少的文本。

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了

也就是說,越大的模型,訊息洩露風險越高。

那麼,團隊用的什麼方法,只利用模型輸出的文本,就還原出了原始訊息呢?

訓練資料提取攻擊

之前洩露隱私沒有引起重視的原因,是因為學術界普遍認為與模型過擬合有關,只要避免它就行。

但現在,另一種之前被認為「停留在理論層面」的隱私洩露方法,已經實現了。

這就是訓練資料提取攻擊(training data extraction attacks)方法。

由於模型更喜歡「說出原始資料」,攻擊者只需要找到一種篩選輸出文本的特殊方法,反過來預測模型「想說的資料」,如隱私訊息等。

這種方法根據語言模型的輸入輸出連接埠,僅透過某個句子的前綴,就完整還原出原始資料中的某個字符串,用公式表示就是這樣:

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了只要能想辦法從輸出還原出原始資料中的某一字符串,那麼就能證明,語言模型會透過API連接埠洩露個人訊息。

下面是訓練資料提取攻擊的方法:

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了

從GPT-2中,根據256個字,隨機生成20萬個樣本,這些樣本擁有某些共同的前綴(可能是空前綴)。

在那之後,根據6個指標之一,對每個生成的樣本進行篩選,並去掉重複的部分,這樣就能得到一個「類似於原始資料」的樣本集。

這6個指標,是用來衡量攻擊方法生成的文本效果的:

困惑度:GPT-2模型的困惑度(perplexity)
Small:小型GPT-2模型和大型GPT-2模型的交叉熵比值
Medium:中型GPT-2模型和大型GPT-2模型的交叉熵比值
zlib:GPT -2困惑度(或交叉熵)和壓縮演算法熵(通過壓縮文本計算)的比值
Lowercase:GPT-2模型在原始樣本和小寫字母樣本上的困惑度比例
Window:在最大型GPT-2上,任意滑動窗口圈住的50個字能達到的最小困惑度

其中,困惑度是交叉熵的指數形式,用來衡量語言模型生成正常句子的能力。至於中型和小型,則是為了判斷模型大小與隱私洩露的關係的。

然後在評估時,則根據每個指標,比較這些樣本與原始訓練資料,最終評估樣本提取方法的效果。

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了

這樣的攻擊方式,有辦法破解嗎?

大語言模型全軍覆沒?

很遺憾,對於超大規模神經網路這個「黑箱」,目前沒有方法徹底消除模型「記憶能力」帶來的風險。

當下一個可行的方法是差分隱私,這是從密碼學中發展而來的一種方法。

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了

簡單的說,差分隱私是一種公開共享資料集訊息的系統,它可以描述資料集內樣本的模式,同時不透露資料集中某個樣本的訊息。

差分隱私的基本邏輯是:

如果在資料集中進行任意的單次替換的影響足夠小,那麼查詢結果就不能用來推斷任何單個個體的訊息,因此確保隱私。

例如現在有兩個資料集D和D',它們有且僅有一條資料不一樣,這樣的資料集互為相鄰資料集。

此時有一個隨機化演算法(指對於特定輸入,演算法的輸出不是固定值,而是服從某一分布),作用於兩個相鄰資料集時,得到的輸出分布幾乎沒有差別。

推廣一步,如果這個演算法作用於任何相鄰資料集,都能得到某種特定輸出,那麼就可以認為這個演算法達到了差分隱私的效果。

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了

簡單地說,觀察者難以透過輸出結果察覺出資料集微小的變化,進而達到保護隱私的目的。

那如何才能實現差分隱私演算法呢?

最簡單的方法是加雜訊,也就是在輸入或輸出上加入隨機化的雜訊,將真實資料掩蓋掉。

實際操作中,比較常用的是加拉普拉斯雜訊(Laplace noise)。由於拉普拉斯分布的數學性質正好與差分隱私的定義相契合,因此很多研究和應用都採用了此種雜訊。

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了

而且由於雜訊是為了掩蓋一條資料,所以很多情況下資料的多少並不影響添加雜訊的量。

在資料量很大的情況下,雜訊的影響很小,這時候可以放心大膽加雜訊了,但資料量較小時,雜訊的影響就顯得比較大,會使得最終結果偏差較大。

其實,也有些演算法不需要加雜訊就能達到差分隱私的效果,但這種演算法通常要求資料滿足一定的分布,但這一點在現實中通常可遇不可求。所以,目前並沒有一個保證資料隱私的萬全之策。 

研究團隊之所以沒使用GPT-3進行測試,是因為GPT-3目前正熱門,而且官方開放API試用,貿然實驗可能會帶來嚴重的後果。

而GPT-2的API已經顯露的風險,在這篇文章發布後不久,一名生物學家在Reddit上回饋了之前遇到的「bug」:輸入三個單詞,GPT-2完美輸出了一篇論文的參考文獻。 

真是禍從GPT-2口出,和AI聊會天,把別人隱私都給套出來了

鑑於BERT等模型越來越多地被科技公司使用,而科技公司又掌握著大量使用者隱私資料。如果靠這些資料訓練的AI模型不能有效保護隱私,那麼後果不堪設想……

論文網址:Extracting Training Data from Large Language Models

資料來源:

使用 Facebook 留言

發表回應

謹慎發言,尊重彼此。按此展開留言規則