ICLR 2024 | 無需訓練,Fast-DetectGPT讓文字檢測速度提升340倍

机器之心發表於2024-03-18
Fast-DetectGPT 同時做到了高準確率、高速度、低成本、通用,掃清了實際應用的障礙!

語言模型如 ChatGPT 和 GPT-4 在各個領域對人們的生產和生活帶來便利,但其誤用也引發了關於虛假新聞、惡意產品評論和剽竊等問題的擔憂。本文提出了一種新的文字檢測方法 ——Fast-DetectGPT,無需訓練,直接使用開源小語言模型檢測各種大語言模型生成的文字內容。

Fast-DetectGPT 將檢測速度提高了 340 倍,將檢測準確率相對提升了 75%,成為新的 SOTA。在廣泛使用的 ChatGPT 和 GPT-4 生成文字的檢測上,均超過商用系統 GPTZero 的準確率

Fast-DetectGPT 同時做到了高準確率、高速度、低成本、通用,掃清了實際應用的障礙!

圖片

  • 論文題目:Fast-DetectGPT: Efficient Zero-Shot Detection of Machine-Generated Text via Conditional Probability Curvature
  • 論文連結:https://openreview.net/forum?id=Bpcgcr8E8Z
  • 程式碼連結:https://github.com/baoguangsheng/fast-detect-gpt

研究動機

語言模型(LLMs)在各個領域已產生了深遠影響。這些模型在新聞報導、故事寫作和學術研究等多元領域提升了生產力。然而,它們的誤用也帶來了一些問題,特別是在假新聞、惡意產品評論和剽竊方面。這些模型生成的內容流暢連貫,甚至讓專家都難以辨別其來源是人類還是機器。因此,我們需要可靠的機器生成文字檢測方法來解決這個問題。

現有的檢測器主要分為兩類:有監督分類器和零樣本分類器。雖然有監督分類器在其特定訓練領域表現出色,但在面對來自不同領域或不熟悉模型生成的文字時,其表現會變差。零樣本分類器則能夠免疫領域特定的退化,並且在檢測精度上可以與有監督分類器相媲美。

然而,典型的零樣本分類器,如 DetectGPT,需要執行大約一百次模型呼叫或與 OpenAI API 等服務互動來建立擾動文字,這導致了過高的計算成本和較長的計算時間。同時它需要用生成文字的源語言模型來進行檢測的計算,使得該方法不能用於檢測由未知模型生成的文字。

在這篇論文中,我們提出了一種新的假設來檢測機器生成的文字。我們認為,人類和機器在給定上下文的情況下選擇詞彙存在明顯的差異,而機器和機器之間的差異不明顯。利用這種差異我們能夠有效地用一套模型和方法檢測不同模型生成的文字內容

方法

Fast-DetectGPT 的操作基於一個前提,即人類和機器在文字生成過程中傾向於選擇不同的詞彙,人類的選擇比較多樣,而機器更傾向於選擇具有更高模型機率的詞彙。

這個假設源於這樣一個事實,即在大規模語料庫上預訓練的 LLM 反映的是人類的集體寫作行為,而非個體的寫作行為,這導致它們在給定上下文時的詞彙選擇存在差異。

這個假設在一定程度上也得到了文獻中的觀察結果的支援,這些觀察結果表明,機器生成的文字通常具有比人類寫作的文字有更高的統計機率(或更低的困惑度)。

然而,我們的方法並不僅僅依賴於機器生成文字具有更高的統計機率的假設。而是進一步假設,在條件機率函式中,機器生成的文字週圍的區域性空間存在一個正曲率。據此,我們提出條件機率曲率指標,用以區分機器生成文字和人類撰寫文字。

我們的實驗觀察如圖 1 所示,在四個不同開源模型上,人類撰寫文字的條件機率曲率近似一個均值為 0 的正態分佈,而機器生成文字的條件機率曲率近似一個均值為 3 的正態分佈,這兩個分佈只有少量的重疊。根據這種分佈上的特點,我們可以選擇一個閾值,大於這個閾值判斷為機器生成文字,小於則為人類撰寫,從而獲得一個檢測器。

圖片

圖 1:條件機率曲率在不同源模型設定上的分佈

條件機率曲率

給定一個輸入文字段落 x 和模型圖片,我們使用的條件機率可以形式化的表達為:

圖片

可以看到,在給定 x 的條件下,圖片的不同位置上的 tokens圖片之間是互相獨立的。這種條件獨立性質將給我們的取樣帶來極大的便利。

進一步,給定打分模型圖片和取樣模型圖片,我們將條件機率曲率形式化的表達為:

圖片

其中:圖片

圖片

圖片表示由取樣模型圖片生成的樣本圖片在打分模型圖片上的期望得分,圖片表示得分的期望方差。我們用隨機樣本的平均對數機率來近似期望得分圖片,用對數機率的樣本方差來近似期望方差圖片

條件獨立取樣

對替代tokens圖片的獨立取樣是 Fast-DetectGPT 能快速計算的關鍵。具體來說,我們在固定文字 x 的條件下,從圖片中取樣每個token圖片,而不依賴於其他取樣的token。

在實踐中,我們可以簡單地透過一行 PyTorch 程式碼生成 10,000 個樣本(我們的預設設定):samples = torch.distributions.categorical.Categorical (logits=lprobs).sample ([10000]),其中 lprobs 是圖片的對數機率分佈,j 從 0 到 x 的長度。

取樣過程對我們理解 Fast-DetectGPT 的機制起著關鍵的作用。為了判斷給定上下文中的一個token是機器生成的還是人類編寫的,必須將其與同一上下文中的一系列替代token進行比較。透過取樣大量的替代token(比如說 10,000 個),我們可以有效地描繪出它們的圖片值的分佈。將原始文字token的圖片值放在這個分佈中,可以清楚地看到它的相對位置,使我們能夠確定它是一個異常值還是一個更典型的選擇。這個基本的洞察形成了 Fast-DetectGPT 方法的核心理念。

檢測過程

如圖 2 所示,Fast-DetectGPT 提出了一個新的三步檢測過程,包括 1)取樣 -- 我們引入一個取樣模型,給定條件 x 生成備選樣本圖片,2)打分 -- 透過將 x 作為輸入的評分模型的單次前向傳遞,可以輕易獲得條件機率。所有樣本都可以在同一預測分佈中進行評估,因此我們不需要多次呼叫模型,以及 3)比較 -- 段落和樣本的條件機率被比較以計算條件機率曲率。更多的細節在論文的演算法部分進行了詳細描述。

圖片

圖 2:Fast-DetectGPT vs DetectGPT

我們發現 “取樣” 和 “打分” 兩個步驟在實現上可以進一步合併,並有一個解析解,而不是取樣近似,詳細論述和證明見論文附錄 B。此外,我們發現使用相同的模型進行取樣和評分時,條件機率曲率與簡單的似然函式和熵基線有緊密的聯絡,具體論述見論文第 2 章結束部分。

實驗結果

圖片

表 1:結果概況

如表 1 所示,Fast-DetectGPT 和基線 DetectGPT 相比,在速度上提升 340 倍,在檢測準確率上相對提升約 75%,具體展開如下。

340 倍的推理加速

我們比較了 Fast-DetectGPT 和 DetectGPT 在 Tesla A100 GPU 上的推理時間(不包括初始化模型的時間)。儘管 DetectGPT 使用了 GPU 批處理,將 100 個擾動分成 10 個批次,但它仍然需要大量的計算資源。它在五次執行中(對應 5 個源模型)總共需要 79,113 秒(大約 22 小時)。相比之下,Fast-DetectGPT 僅用 233 秒(大約 4 分鐘)就完成了任務,實現了約 340 倍的顯著加速,突顯出其顯著的效能提升。

準確的 ChatGPT 和 GPT-4 文字檢測

我們進一步在黑盒環境中評估 Fast-DetectGPT,使用由 ChatGPT 和 GPT-4 生成的段落來模擬真實世界場景。我們為每個資料集和源模型生成了 150 個樣本,包括 150 個模型生成的文字段落和 150 個人工撰寫的文字段落。

圖片

表 2:ChatGPT 和 GPT-4 生成內容的檢測效果(AUROC)

如表 2 所示,Fast-DetectGPT 展現出一致的優越的檢測能力。它在 ChatGPT 和 GPT-4 的相對 AUROC 上分別超過了 DetectGPT 的 78.3%和 75.1%。與監督檢測器 RoBERTa-base/large 相比,Fast-DetectGPT 實現了更高的整體準確性。這些結果展示 Fast-DetectGPT 在真實世界場景中工作的潛力。

更有趣的是,商業模型 GPTZero 在新聞(XSum)上表現較好,但在故事(WritingPrompts)和技術寫作(PubMedQA)上表現較差。我們猜測該模型是有監督的檢測器,其訓練資料中可能包含比較多的新聞語料。雖然商用模型一般都有額外的針對性的效果上的改進,但總體上 Fast-DetectGPT 比 GPTZero 還是要好 2 到 3 個點。

低誤報率、高召回率

在實際使用中,我們希望檢測器有較低的誤報率,否則會給使用者帶來困擾,傷害真實的內容創作者。在較低誤報率的前提下,我們希望檢測器有較高的召回率,能夠識別出大部分機器生成的內容。

圖片

圖 3:誤報率(False Positive Rate) vs 召回率(True Positive Rate)

如圖 3 所示,在正負樣本一比一的 WritingPrompts 評測資料集上,橙色線標示的 Fast-DetectGPT 對比紫色線標示的 DetectGPT 和其它方法。我們可以看到,在誤報率為 1% 的條件下,使用 Fast-DetectGPT 能獲得的召回率比其它方法高出很多。比如說,在 ChatGPT 生成文字上,Fast-DetectGPT 能達到 87% 的召回率,而 Likelihood 和 DetectGPT 只有 64% 和 6% 的召回率。在 GPT-4 生成文字上,差距進一步拉大,Fast-DetectGPT 能達到 44% 的召回率,而 Likelihood 和 DetectGPT 只有 9% 和 0% 的召回率。

文字越長準確率越高

零樣本檢測器由於其統計性質,對較短的文字段落表現通常比較差。我們透過將 WritingPrompts 評測資料集中的文字段落截斷到各種目標長度來進行評估。

圖片

圖 4:不同長度上的魯棒性

如圖 4 所示,這些檢測器在由 ChatGPT 生成的段落上,整體檢測準確率隨著段落長度的增加而增加。在 GPT-4 生成的段落上,檢測準確率顯示出不一致的趨勢。

具體來說,當段落長度增加時,有監督檢測器的效能表現出下降趨勢,而 DetectGPT 在開始時經歷了一個增漲,然後在段落長度超過 90 個詞時出現了顯著的下降。

我們推測,有監督檢測器和 DetectGPT 的非單調趨勢源於它們將段落視為一個整體的token鏈(token chain),導致其檢測效果不能泛化到不同長度的文字上。相比之下,Fast-DetectGPT 在段落長度增加時表現出一致的、單調的準確性增加,展示穩健的效果。

結語

主要結論: 透過研究發現,條件機率曲率是機器生成文字上更本質的指標,驗證了我們關於機器和人類文字生成過程區別的假設。基於這個新假設,檢測器 Fast-DetectGPT 在 DetectGPT 基礎上加速了兩個數量級,並在白盒和黑盒設定中都顯著提高了檢測精度。

未來展望: Fast-DetectGPT 依賴於預訓練語言模型來覆蓋多個領域和語言,但沒有單一的模型可以覆蓋所有的語言和領域,要使檢測器更通用,我們可能需要聯合多個語言模型以獲得更全面的覆蓋。另一方便,條件機率曲率能區分機器生成文字和人類撰寫文字,也可能區分由兩個不同模型生成的文字(作者識別),還可能用於判別 OOD 文字(OOD 檢測)。這些方向的應用值得進一步研究。

相關文章