新算法給AI生成文本加水印:置信度高達99.999999999994%
AI生成文本,又遇新對手!憑藉識別AI生成文本中的“水印”,一種新算法能夠準確判斷文本到底是誰寫的。無需訪問模型參數、API,結果置信度高達99.999999999994%。
方法一經發布就引來大量網友圍觀。這回拿ChatGPT“作弊”,怕不是要更難了?
要知道,最近一段時間,ChatGPT先是成為美國高中生的寫作業利器,後面幫專業媒體寫稿子,引發巨大恐慌。如Nature、紐約教育部等,都針對ChatGPT發布禁令。
馬里蘭大學學者們提出的這一新方法,為解決這些麻煩提出了個新思路。
不少網友都覺得,這個方法提出的正是時候,而且效果看著也不錯。
有學者還和美國高中生喊話,你們要做好準備了!
作者表示,方法代碼將在2月15日免費開源。
計算文本由AI生成的概率
所謂模型水印,人類無法看到,但是計算機可以。
這是一種現在被常用於大規模語言模型(LLM)中的方法,能讓AI生成的文本帶有“特殊標記”。即把信號嵌入到生成的文本中,讓算法能從一小段token中檢測出來。
最近,OpenAI方面也表示,考慮在ChatGPT中添加水印,以降低模型被濫用帶來的負面影響。
這篇最新論文的作者,就想驗證下這個想法到底靠不靠譜。他們通過給LLM中嵌入水印,然後再進行檢測。其中水印的嵌入不會影響文本生成質量。
具體來說,大規模語言模型每次生成一個token,每個token將從包含大約5萬個詞彙的詞彙表中進行選擇。
在新token生成之前,該方法會從基於最近已生成的token為隨機數生成器(RNG)提供“種子”,以此來壓一個水印。
然後使用RNG,能將詞彙表分為黑名單和白名單,並要求LLM接下來只能從白名單中選擇詞彙。
如果整段文本中,白名單中的詞彙越多,就意味著越有可能是AI生成的。
黑白名單的區分,基於一個原則:
人類使用詞彙的隨機性更強。
舉例來說,如果在“美麗的”後面生成詞彙,水印算法會將“花”列入白名單,將“蘭花”列入黑名單。
論文作者認為,AI更可能使用“花”這個詞彙,而不是“蘭花”。
然後,就能通過計算整段文本中白名單token出現的情況,來檢測水印。
如果一共有生成了N個token,所有的token都使用了白名單詞彙,那麼這段文字只有2的N次方分之一概率是人類寫的。
即便這段文字只有25個詞組成,那麼水印算法也能判斷出它到底是不是AI生成的。
但作者也表示,水印有時候也不一定完全靠譜。
比如模型輸出了“SpongeBob Square”,下一個單詞一定會是“Pants”吧?但是Pants會被標記到黑名單裡,即認為是只有人才會寫的詞。
(注:SpongeBob SquarePants是《海綿寶寶》動畫片的英文,可理解為一個專有名詞)
這種情況會嚴重影響算法的準確性,因此作者將其定義為低熵token,因為模型幾乎不會有更好的選擇。
對應來看,也會有高熵token,比如“海綿寶寶感覺____”這個句式裡,能填入的詞彙太多了。
對於這一情況,作者選擇針對高熵token制定更強的規則,同時保留低熵token,確保水印質量更好。
與此同時,他們還添加了波束搜索(Beam search),允許LLM能夠排布一整個token序列,以避免黑名單詞彙。
這麼做,他們能確保LLM使用白名單詞彙的概率在大約80%左右,而且不影響文本生成質量。
舉例來看,對於下面這段文字,水印算法認為它有99.999999999994%的可能是由AI生成的。
因為在這段文字中,包含36個token。如果是人類寫的,那麼文本中應該包含9±2.6個白名單詞彙(白名單詞彙的概率約為25%)。
但這段文字中,包含了28個白名單詞彙。
計算來看,這段文字由人類寫出的概率,僅有0.0000000000006% (6乘以10的-15次方)。
如下標註的是文本中的黑名單token。
需要注意的是,如果想要水印正常發揮作用,並不受到攻擊,就必須對文本進行一些標準化處理,並且需要檢測某些類型的對抗性提示。
這一方法是對外公開的,將在2月15日開源代碼。
加一個隨機秘鑰,也能變成保密模式並且託管到API上,這能保證水印不會被篡改。
論文中使用的模型是Meta開源的OPT-1.3B模型。
由於不用訪問底層模型,所以該檢測方法的速度很快,成本也不會很高。
而且可以使用標準語言模型生成帶水印的文本,不用再重新訓練。
網友:似乎很容易繞過?
巴特,不少網友覺得,這個方法的具體實踐效果可能遠不及理想,質疑之聲迭起。
有人提出:
如果我在AI生成的文字基礎上,修改幾個詞,還能被查出來嗎?那在替換成近義詞後,檢測準確率會下降多少?
畢竟大家往往不會一字不改、直接用AI生成的內容。
對此,論文通訊作者、馬里蘭大學副教授Tom Goldstein回答稱:
對於一段自帶水印的文字,至少得修改40%-75%的token,才可能成功去除水印。
(如果用其他程序修改內容話),為發生同義詞攻擊,導致生成內容的質量很低。
簡而言之,想要通過換近義詞來消除水印,得大篇幅修改,而且若不是人親自手動修改的話,效果會很拉胯。
還有人提出:
對於專門設計過的低熵token序列,應該能檢測出水印。但是,長度和檢測率之間(存在一些矛盾),它們的優先級應該如何權衡?
對此,Tom教授表示:
根據設定,使用波束搜索時,絕大多數(通常是90%)的token在白名單上,即使是低熵token,也會被列入白名單。
所以,至少得修改一半以上的token,才能刪除水印,而這需要一個超級強大的LLM模型才行,一般人很難接觸到。
不過,研究者們也在論文中承認,這種方法確實存在一些局限性。
比如,檢測水印的z統計量,只取決於白名單大小參數γ和生成白名單的哈希函數,和其他不少重要的參數並沒有什麼相關性。
這就讓他人可以在下游水印檢測器上做手腳,可以改變水印採樣算法,重新部署水印,最終讓原本生成的水印失效。
就連OpenAI CEO Sam Altman也表示:
創造完美檢測AI抄襲的工具,從根本上來說是不可能的。
(儘管他說OpenAI打算啟用水印大法)
但話說回來,人們為了限制AI生成文字的負面影響,還是煞費苦心——
之前就有人搞出了一個檢測ChatGPT的網站,名曰GPTZero,只需要把相應的內容粘進去,幾秒內就能分析出結果。
論文地址:https://arxiv.org/abs/2301.10226
來源:量子位