明敏 Alex 發自 凹非寺
量子位 | 公眾號 QbitAI
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
參考連結:
[1]https://twitter。com/tomgoldsteincs/status/1618287665006403585
[2]https://twitter。com/goodside/status/1610552172038737920
[3]https://www。technologyreview。com/2023/01/27/1067338/a-watermark-for-chatbots-can-spot-text-written-by-an-ai/
— 完 —
量子位 QbitAI · 頭條號簽約