DetectGPT:使用概率曲率的零樣本機器生成文本檢測
DetectGPT的目的是確定一段文本是否由特定的llm生成,例如GPT-3。為了對段落 x 進行分類,DetectGPT 首先使用通用的預(yù)訓練模型(例如 T5)對段落 ~xi 生成較小的擾動。然后DetectGPT將原始樣本x的對數(shù)概率與每個擾動樣本~xi進行比較。如果平均對數(shù)比高,則樣本可能來自源模型。
ChatGPT是一個熱門話題。人們正在討論是否可以檢測到一篇文章是由大型語言模型(LLM)生成的。DetectGPT定義了一種新的基于曲率的準則,用于判斷是否從給定的LLM生成。DetectGPT不需要訓練單獨的分類器,不需要收集真實或生成的段落的數(shù)據(jù)集,也不需要顯式地為生成的文本加水印。它只使用由感興趣的模型計算的對數(shù)概率和來自另一個通用預(yù)訓練語言模型(例如T5)的文章隨機擾動。
1、DetectGPT:隨機排列和假設(shè)
識別并利用了機器生成的通道x~pθ(左)位于logp (x)的負曲率區(qū)域的趨勢,其中附近的樣本平均具有較低的模型對數(shù)概率。相比之下,人類書寫的文本x~preal(.)(右)傾向于不占據(jù)具有明顯負對數(shù)概率曲率的區(qū)域。
DetectGPT基于一個假設(shè),即來自源模型pθ的樣本通常位于pθ對數(shù)概率函數(shù)的負曲率區(qū)域,這是人類文本不同的。如果我們對一段文本 x~pθ 應(yīng)用小的擾動,產(chǎn)生 ~x,與人類編寫的文本相比,機器生成的樣本的數(shù)量 log pθ(x) - log pθ(~x) 應(yīng)該相對較大。利用這個假設(shè),首先考慮一個擾動函數(shù) q(.|x),它給出了在 ~x 上的分布,x 的略微修改版本具有相似的含義(通??紤]粗略的段落長度文本 x)。例如,q(.|x) 可能是簡單地要求人類重寫 x 的其中一個句子的結(jié)果,同時保留 x 的含義。使用擾動函數(shù)的概念,可以定義擾動差異 d (x; pθ, q):
因此,下面的假設(shè) 4.1也就是:
如果q(.|x)是來自掩碼填充模型(如T5)的樣本而不是人類重寫,那么假設(shè)4.1可以以自動的、可擴展的方式進行經(jīng)驗檢驗。
2、DetectGPT:自動測試
對一篇文章進行改寫后,模型生成的文章的對數(shù)概率(擾動差異)的平均下降始終高于人工書寫的文章
對于真實數(shù)據(jù),使用了XSum數(shù)據(jù)集中的500篇新聞文章。當提示XSum中每篇文章的前30個令牌時,使用四個不同llm的輸出。使用T5-3B施加擾動,遮蔽隨機采樣的2個單詞跨度,直到文章中15%的單詞被掩蓋。上面公式(1)中的期望近似于T5中的100個樣本。
上述實驗結(jié)果表明,人寫文章和模型樣本的攝動差異分布有顯著差異;模型樣本往往有較大的擾動差異。根據(jù)這些結(jié)果,就可以通過簡單地閾值擾動差異來檢測一段文本是否由模型p生成。
通過用于估計 E~x q(.|x) log p (~x) 的觀測值的標準偏差對擾動差異進行歸一化提供了更好的檢測,通常將 AUROC 增加 0.020 左右, 所以在實驗中使用了擾動差異的歸一化版本。
DetectGPT 的檢測過程偽代碼
擾動差異可能是有用的,它測量的是什么還無法明確解釋,所以作者在下一節(jié)中使用曲率進行解釋。
3、將微擾差異解釋為曲率
擾動差異近似于候選段落附近對數(shù)概率函數(shù)局部曲率的度量,更具體地說,它與對數(shù)概率函數(shù)的 Hessian 矩陣的負跡成正比。
這一節(jié)內(nèi)容比較多,這里就不詳細解釋了,有興趣的可以看看原論文,大概總結(jié)如下:
語義空間中的采樣確保所有樣本都保持在數(shù)據(jù)流形附近,因為如果隨機添加擾動標記,預(yù)計對數(shù)概率總是下降。所以可以將目標解釋為近似限制在數(shù)據(jù)流形上的曲率。
4、結(jié)果展示
零樣本機器生成文本檢測
每個實驗使用150到500個例子進行評估。機器生成的文本是通過提示真實文本的前30個標記來生成的。使用AUROC)評估性能。
可以看到DetectGPT最大程度地提高了XSum故事的平均檢測精度(AUROC提高0.1 )和SQuAD維基百科上下文(AUROC提高0.05 )。
對于15種數(shù)據(jù)集和模型組合中的14種,DetectGPT提供了最準確的檢測性能,AUROC平均提高了0.06。
與有監(jiān)督檢測器的比較
在真實文本和生成文本的大型數(shù)據(jù)集上訓練的有監(jiān)督的機器生成文本檢測模型在分布內(nèi)(頂部行)文本上的表現(xiàn)與DetectGPT一樣好,甚至更好。零樣本方法適用于新域(底部一行),如PubMed醫(yī)學文本和WMT16中的德語新聞數(shù)據(jù)。
來自每個數(shù)據(jù)集的200個樣本進行評估,監(jiān)督檢測器對英語新聞等分布內(nèi)數(shù)據(jù)的檢測性能與DetectGPT相似,但在英語科學寫作的情況下,其表現(xiàn)明顯差于零樣本方法,而在德語寫作中則完全失敗。
DetectGPT檢測GPT-3的平均AUROC與專門為機器生成文本檢測訓練的監(jiān)督模型相當。
從PubMedQA、XSum和writingprompt數(shù)據(jù)集中抽取了150個示例。將兩種預(yù)訓練的基于roberta的檢測器模型與DetectGPT和概率閾值基線進行了比較。DetectGPT 可以提供與更強大的監(jiān)督模型競爭的檢測。
機器生成文本檢測的變體
這部分是看檢測器是否可以檢測到人工編輯的機器生成文本。通過用 T5–3B 中的樣本替換文本的 5 個單詞跨度來模擬人工修訂,直到 r% 的文本被替換。即使模型樣本中近四分之一的文本已被替換,DetectGPT 仍能將檢測 AUROC 保持在 0.8 以上。DetectGPT 顯示了所有修訂級別的最強檢測性能。