無需訓練,Fast-DetectGPT讓文本檢測速度提升340倍
大語言模型如 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 檢測)。這些方向的應用值得進一步研究。