首頁  >  文章  >  科技週邊  >  DetectGPT:使用機率曲率的零樣本機器產生文字偵測

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

PHPz
PHPz轉載
2023-04-14 10:13:021493瀏覽

DetectGPT的目的是確定一段文字是否由特定的llm生成,例如GPT-3。為了對段落 x 進行分類,DetectGPT 首先使用通用的預訓練模型(例如 T5)對段落 ~xi 產生較小的擾動。然後DetectGPT將原始樣本x的對數機率與每個擾動樣本~xi進行比較。如果平均對數比高,則樣本可能來自來源模型。

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

ChatGPT是一個熱門話題。人們正在討論是否可以偵測到一篇文章是由大型語言模型(LLM)產生的。 DetectGPT定義了一種新的基於曲率的準則,用於判斷是否從給定的LLM生成。 DetectGPT不需要訓練單獨的分類器,不需要收集真實或產生的段落的資料集,也不需要明確地為生成的文字加上浮水印。它只使用由感興趣的模型計算的對數機率和來自另一個通用預訓練語言模型(例如T5)的文章隨機擾動。

1、DetectGPT:隨機排列和假設

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

#識別並利用了機器產生的通道x~pθ(左)位於logp (x)的負曲率區域的趨勢,其中附近的樣本平均具有較低的模型對數機率。相較之下,人類書寫的文字x~preal(.)(右)傾向於不佔據具有明顯負對數機率曲率的區域。

DetectGPT基於一個假設,即來自來源模型pθ的樣本通常位於pθ對數機率函數的負曲率區域,這是人類文本不同的。如果我們對一段文字 x~pθ 應用小的擾動,產生 ~x,與人類編寫的文本相比,機器產生的樣本的數量 log pθ(x) - log pθ(~x) 應該相對較大。利用這個假設,首先考慮一個擾動函數 q(.|x),它給出了在 ~x 上的分佈,x 的略微修改版本具有相似的含義(通常考慮粗略的段落長度文本 x)。例如,q(.|x) 可能是簡單地要求人類重寫 x 的其中一個句子的結果,同時保留 x 的含義。使用擾動函數的概念,可以定義擾動差異d (x; pθ, q):

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

#因此,下面的假設4.1也就是:

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

如果q(.|x)是來自掩碼填充模型(如T5)的樣本而不是人類重寫,那麼假設4.1可以以自動的、可擴展的方式進行經驗檢驗。

2、DetectGPT:自動測試

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

#對一篇文章進行改寫後,模型產生的文章的對數機率(擾動差異)的平均下降總是高於人工書寫的文章

對於真實數據,使用了XSum資料集中的500篇新聞文章。當提示XSum中每篇文章的前30個令牌時,使用四個不同llm的輸出。使用T5-3B施加擾動,遮蔽隨機採樣的2個單字跨度,直到文章中15%的單字被掩蓋。上面公式(1)中的期望近似於T5中的100個樣本。

上述實驗結果表明,人寫文章和模型樣本的攝動差異分佈有顯著差異;模型樣本往往有較大的擾動差異。根據這些結果,就可以透過簡單地閾值擾動差異來偵測一段文字是否由模型p產生。

透過用於估計E~x q(.|x) log p (~x) 的觀測值的標準差對擾動差異進行歸一化提供了更好的檢測,通常將AUROC 增加0.020 左右, 所以在實驗中使用了擾動差異的歸一化版本。

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

DetectGPT 的偵測過程偽代碼

#擾動差異可能是有用的,它測量的是什麼還無法明確解釋,所以作者在下一節中使用曲率進行解釋。

3、將微擾差異解釋為曲率

擾動差異近似於候選段落附近對數機率函數局部曲率的度量,更具體地說,它與對數機率函數的Hessian矩陣的負跡成正比。

這一節內容比較多,這裡就不詳細解釋了,有興趣的可以看看原文論文,大概總結如下:

語意空間中的取樣確保所有樣本都保持在資料流形附近,因為如果隨機添加擾動標記,預計對數機率總是下降。所以可以將目標解釋為近似限制在資料流形上的曲率。

4、結果展示

零樣本機器產生文字偵測

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

#每個實驗使用150到500個範例進行評估。機器產生的文字是透過提示真實文字的前30個標記來產生的。使用AUROC)評估效能。

可以看到DetectGPT最大程度地提高了XSum故事的平均檢測精度(AUROC提高0.1 )和SQuAD維基百科上下文(AUROC提高0.05 )。

對於15種資料集和模型組合中的14種,DetectGPT提供了最準確的檢測效能,AUROC平均提高了0.06。

與有監督偵測器的比較

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

在真實文字和生成文字的大型資料集上訓練的有監督的機器生成文字偵測模型在分佈內(頂部行)文字上的表現與DetectGPT一樣好,甚至更好。零樣本方法適用於新領域(底部一行),如PubMed醫學文本和WMT16中的德語新聞資料。

來自每個資料集的200個樣本進行評估,監督偵測器對英語新聞等分佈內資料的偵測效能與DetectGPT相似,但在英文科學寫作的情況下,其表現明顯差於零樣本方法,而在德語寫作中則完全失敗。

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

DetectGPT偵測GPT-3的平均AUROC與專門為機器產生文字偵測訓練的監督模型相當。

從PubMedQA、XSum和writingprompt資料集中抽取了150個範例。將兩種預訓練的基於roberta的檢測器模型與DetectGPT和機率閾值基線進行了比較。 DetectGPT 可以提供與更強大的監督模型競爭的檢測。

機器產生文字偵測的變體

DetectGPT:使用機率曲率的零樣本機器產生文字偵測

這部分是看偵測器是否可以偵測到手動編輯的機器產生文字。透過用 T5–3B 中的樣本替換文字的 5 個單字跨度來模擬人工修訂,直到 r% 的文字被替換。即使模型樣本中近四分之一的文字已被替換,DetectGPT 仍能將偵測 AUROC 保持在 0.8 以上。 DetectGPT 顯示了所有修訂等級的最強檢測效能。

以上是DetectGPT:使用機率曲率的零樣本機器產生文字偵測的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除