ChatGPT 最新漏洞曝光,一句話就能讓訓練數據原封不動地洩露。
隻需要讓它重複一個詞,它就會在一定次數後 " 發瘋 ",甚至毫無防備說出某人的個人隐私信息。
DeepMind 的研究人員聯合華盛頓大學、康奈爾大學等高校,發現了 ChatGPT 的數據洩露漏洞。
利用他們的方法,隻要預算充足,可以提取出大約 1GB 的訓練數據。
更可怕的是,訓練時間越長——也就是越強大的模型,洩露出來的數據反而越多。
研究團隊已在論文發表之前 90 天把這一情況報告給了 OpenAI,後者也做出了一定修複。
但到現在還是有網友發現,把論文裏的詞改一改,bug 就會卷土重來。
那麽,這個漏洞究竟是怎麽一回事呢?
數據洩露防不勝防
作者攻擊 ChatGPT(API 訪問,3.5-turbo 版本)的方式,叫做分歧攻擊。
他們發現,當 ChatGPT 被要求重複一個單詞多次時,模型會在某些情況下偏離正常的聊天式生成,開始輸出與訓練數據更接近的文本。
這些内容五花八門,除了個人信息,還包括文學作品、學術論文、鏈接、代碼……甚至是工作場所不宜内容。
爲了驗證這些内容是否來自于訓練數據,作者用了多個公開模型的訓練數據組成了 AuxDataset 數據集(由于 ChatGPT 數據集未公開,隻能通過其他模型的數據來估計)。
結果發現有上萬條内容命中了 AuxDataset,這些内容長度不等,最長的有 4000 多 token。
作者還發現,這種攻擊方法對單詞提示更有效,而對多詞提示則效果較差,特别是當被要求重複的詞是 company 時,能獲得到的信息是最多的。
作者使用 Good-Turing 估計器估計了 ChatGPT 中可提取記憶的總量,結論是至少有 150 萬個獨特的 50-gram 序列(相鄰的 50 個 token)是可提取的。
不過由于預算有限,作者表示這個估計可能低估了可提取數據的規模。
不僅是 API,在正式的網頁版 ChatGPT 中測試,也有概率得到同樣的結果,說明模型之外的 " 系統護欄 " 也沒能防住這波攻擊。
我們簡單實測了一下,發現這個漏洞到目前仍然沒有被完全修複。
當重複詞爲 "text" 時,ChatGPT 沒有輸出其他内容,但給對話起了一個奇怪的标題。
而當重複詞爲 "company" 時,ChatGPT 經過三次 regenerate 後輸出了一段疑似是 ins 文案的内容。
不過作者表示,這種攻擊方法目前隻對 3.5 版本奏效,GPT-4 由于專門做過防洩露方面的對齊,逃過了一劫。
這種對齊在 3.5 版本中也有設置,但 3.5 的防禦措施可以通過論文中展示的提示詞攻擊方法來繞過。
除了 ChatGPT,作者也對 Llama、Falcon、Mistral 等開源或半開源模型進行了測試,結果發現同樣存在數據洩露現象。
而越強大的模型,洩露出的數據也越多,ChatGPT 洩露的數據量明顯超過了其他模型。
洩露現象出現的範圍也不局限在語言模型,該團隊之前還從 Stable Diffusion 中提取了訓練數據集中的約 100 張人物照片和其他類型的圖像。
他們發現,當用訓練數據集中人物的姓名做 Prompt 時,Stable Diffusion 就會 " 偷懶 ",直接把照片當做輸出結果。
網友:還有其他攻擊方法
這篇論文中提到的方式并不是孤例,還有其他攻擊方法也能達到類似的結果,比如用沒什麽實際意義的 123ABC 加上簡單的代碼就讓 ChatGPT 生成了一段關于臭氧層的文本。
發現者解釋到,這是 ChatGPT 的輸入清理機制的漏洞導緻的,它清除了套娃式的兩個 <|endoftext> 标簽中處于内部的一個,但外部的 " 殼 " 則由于初始形态被拆開而被忽略。
作者和網友們的這些新發現,意味着 ChatGPT 違反了歐盟通用數據保護條例(GDPR)的規定,OpenAI 可能會因此遇到麻煩。
GDPR 第 17 條規定,數據主體(用戶)有權要求控制者(模型開發者)立即删除與其有關的個人數據,也就是擁有 " 遺忘權 "。
不過,一般個人對此也不必那麽擔心,因爲這種攻擊方式成本不低。
在這個實驗中,研究者提取幾 MB 數據,就已經花費了 200 美元。
那麽,對于 ChatGPT 洩露數據這件事,你有什麽看法?
論文地址:
https://arxiv.org/abs/2311.17035
參考鏈接:
[ 1 ] https://not-just-memorization.github.io/extracting-training-data-from-chatgpt.html
[ 2 ] https://stackdiary.com/chatgpts-training-data-can-be-exposed-via-a-divergence-attack/