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/