下面介绍Eric的DetectGPT模型的整个检测流程。首先我们将原始文本(X)添加一系列轻微的扰动;然后,我们将添加扰动后的一系列文本传给原始模型(如GPT-3),从而计算得到原始文本和扰动后的文本的对数概率;接下来,我们将原始的概率密度和扰动文本的概率密度相除然后取对数,最后求得他们的均值,如果求得的均值大于某个阈值,就有理由相信他是GPT-3所写,否则就认为它的来源并不是GPT-3,比如他可能为人类所写,也可能来自于另一个模型。
上面提到的这种检测方式,在学术上称为:概率曲率检测(Detection with Probability Curvature)。关于DetectGPT的这种概率曲率检测,下面我们重点介绍具体实现。
- 候选1:
为了减少计算压力,我们只需要通过有限差分求得近似,对概率曲率进行估算。举例来说,假定X(original)是原始文本,X(perturbed)是添加扰动后的文本,则二者的对数概率密度可以近似表示为:
简而言之,我们先用Hessian矩阵和以一个想象出的方向向量来估算概率密度,然后再用Hutchinson's Trace Estimator(哈钦森迹估计法)对式一的右式进行式二的化简,最后经过上面两次近似,我们就不需要通过复杂的计算获得准确的对数概率密度,只需计算Hessian矩阵的迹即可,这大大减少了我们模型的计算量。同如果H的迹是一个数值上低于阈值的负数,我们就可以近似认为这篇文章是由模型生成。值得注意的是,v表征了在语义空间中,我们原始文本到扰动后文本的改变方向,他是一个只存在于理论中的虚拟量,并不能真的被观测到,但是它的存在可以帮助我们更好的理解模型。
Hessian矩阵是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。Hessian矩阵体现了不同输入维之间相互加速的速率。常用于解决优化问题,利用海森矩阵可判定多元函数的极值问题。海森矩阵在图像处理中有广泛的应用,比如边缘检测、特征点检测等。 Hutchinson’s Trace Estimator源于随机取样的思想,主要应用于对大型矩阵迹的估算。 其基本思路是通过从矩阵A中随机抽样列,来获得一个较小的矩阵B,并用B的迹来作为A的近似估计值。
- 候选2:
为了减轻计算压力,我们只需要通过有限差分逼近模型对数概率函数方向二阶导数的方法,对概率曲率进行粗略近似。结合上图,我们用H表示对数概率密度函数在我们要检测的文本处求得的海森矩阵,v是一个单位向量,代表着在文本空间中的一个方向。则扰动文本的方向二阶导数就可以表示为v的转秩乘以Hv。举例来说,假定X(original)是原始文本,X(perturbed)是添加扰动后的文本,则二者的对数概率密度可以近似表示为:
海森矩阵是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。海森矩阵体现了不同输入维之间相互加速的速率。常用于解决优化问题,利用海森矩阵可判定多元函数的极值问题。海森矩阵在图像处理中有广泛的应用,比如边缘检测、特征点检测等。
实际上v表征了在语义空间中,我们原始文本到扰动后文本的改变方向,他是一个只存在于理论中的虚拟量,并不能真的被观测到,但是它的存在可以帮助我们更好的理解模型。再使用Hutchinson's Trace Estimator(哈钦森迹估计法)对右式化简。我们可以对上面右式进行如下的估计,即上图右式的期望可以用Hessian矩阵的迹来估计:
Hutchinson’s Trace Estimator源于随机取样的思想,主要应用于对大型矩阵迹的估算。其基本思路是通过从矩阵A中随机抽样列,来获得一个较小的矩阵B,并用B的迹来作为A的近似估计值。
经过两次近似,我们在计算对数概率密度时,只需要计算Hessian矩阵的迹即可,这大大减少了我们模型的计算量。同时,如果我们计算得到的迹是一个数值上低于阈值的负数,我们就可以近似认为这篇文章是由模型生成。从实验结果出发:检验DetectGPT
首先,我们当然要对ChatGPT这一现象级的语言模型进行检验。这里Eric用DetectGPT同其他的模型进行比较,从而得到了下面的结果。表格的左边是四种不同方法,第一种log p(x)就是我们上面提及的第二种基本方法,通过比较对数概率的绝对值,判断人工与模型的文本;接下来的几种方法就不过多介绍。而XSum,SQuAD和WritingPrompts分别表示了新闻文章,维基百科和通过阅读数据集完成的故事创意文章,t和p代表了两种不同的取样方法。数字表示被成功分辨的样本占总样本的百分比。我们不难发现DetectGPT模型相较其他四个模型有较大的优势,且在不同的数据集上都有着很好的一致性。
接下来Eric专门对实验用到的模型进行了微调,确保我们的模型没有学习过这些模型生成的数据,我们可以看到DetectGPT依然有着相对一致的跨模型的表现,而其他模型则往往表现不佳。
那么当我们使用更大的模型呢,下面是DetectGPT在GTP3.2的表现,我们可以发现它一如既往的稳健。如果对机器生成的文本进行一定的修改呢?下图中x轴是我们更改的百分比程度,y轴为准确率。可以看出,DetectGPT相比其他模型优势依旧明显。
局限性和未来展望
首先,最大的局限性就是我们需要使用待判断的模型来计算对数概率,那么如果使用不同的模型呢?下图中可以明显看出使用不同的模型计算对数概率密度会对我们模型的准确性产生较大的影响。所以Eric未来的一个研究方向就是让DetectGPT可以使用不同的模型来检测样本。
第二个缺点是DetectGPT计算成本很高,因为我们需要使用100个扰动来进行检测。此外,DetectGPT模型也不是无法被破解,你可以通过巧妙地向模型提示,从而让他写出更人性化的文本,进而骗过检测模型。最后,Eric再次强调,包括DetectGPT在内的检测模型现阶段的判断效果不可能达到百分百,人们不应该过分相信模型的结论。
小结
LM生成文本的数量正在爆发式的增长,相比于DetectGPT等检测模型,使用LM生成文本的人类作者应该负担起检查文本正确性的任务。最后,DetectGPT的成功开发也表明了语言模型大都有着自己独特的「语言模型水印」。
如果你想要阅读Eric的Paper或者代码,可以访问:ericmitchell.ai/detectgpt如果你想运行该模型在GPT-2上的demo,可以访问:detectgpt.ericmitchell.ai
Q&A
1. 请问您的灵感来源是什么?答:这听起来可能有些搞笑,不过我最初并非研究该领域的问题的,甚至在ChatGPT出现之前,该领域几乎并没有人研究。直到它推出几个星期后,人们才开始广泛的知道并开始探讨这个模型有多么神奇。当时我正在假期,我的朋友发短信询问我是否能建立起一个检测ChatGPT输出样本的算法。于是我窝在沙发上开始思考这个问题。最初我想到的便是上面提到的两种基本算法,虽然他们并不完善,但是我认为我的大方向是正确的。于是我开始阅读各方面的资料,然后开始不断在最初模型尝试和创新,最终完成了这个模型。2. 你是如何平衡工作与生活的,你思路匮乏的时候是否会从生活里吸取灵感?答:你知道的,许多人都会认为研究人员就像是一个工作狂,每天都泡在实验室里,但是我依然是一个热爱生活的人,我喜欢旅行,喜欢听音乐,我会尽量平衡好工作与生活。此外,我会在生活中吸取灵感,比如当我工作到了一个难以突破的瓶颈时,与其冥思苦想,我更愿意听点音乐,我总是能沉浸在音乐中,然后慢慢感受音乐带给我的灵感。这很有意思。3. 你未来的目标和计划是什么,你的导师对你完成该模型是否有帮助?答:我正在完成我的博士毕业论文,内容也是关于检测问题的。不过我会尝试使用最近几个月的该领域的最新成果,以此提高检测的精度,完成更强大的监测模型。此外,我还在研究一些关于大模型的编辑问题。说到克里斯教授,我认为他是一个难得的好教授。大部分教授都不会直接参与你的工作,他们只会在大的方向上给你指导;但是克里斯教授是一个十分细致的人,他会在一些具体问题上给我启发,我非常感激他。4. 请问您怎么看待ChatGPT等模型引发的道德问题?答:这是个好问题,我也常常思考这些模型的出现是利大于弊还是弊大于利,甚至它们会不会引发一些道德问题。一方面,它们确实提高了我们的效率,另一方面,它们也限制了我们的创造力。不过这更多的取决于他的使用者,我们需要找到一个巧妙的临界点。不过综合来看,我依然是乐观的,在某些情况下,它们可以比如帮助我们学习外语,学习一些专业知识,它们已然成为了一个很有用的博学多才的老师,更重要的是,它们是完全私人和可以互动的导师。5. 目前深度伪造是一个热门话题,比如如何鉴别合成视频或图片,请问您的方案能迁移到该领域吗?答:当然,我认为很有可能,因为这些模型总是有着相似之处的,我的模型比较好的抓住了这种相似点。比如我们可以用图像的扩散模型来代替扰动文本。在迁移中,我认为最大的问题应该是图像模型并不会直接告诉你输出图片的概率,如果能重点解决这个问题后,我们的模型应该就能实现迁移。6. 请问为什么使用对数概率差异而不是直接使用概率差异?答:这更像是一种经验之谈。因为在某种意义上,这两种算法的概念是相似的,但是我们发现以1为单位的比例差异太大了,使用对数概率缩小了比例,能够更好的提高模型准确率。7. 请问您是如何获取测试样本的?答:我们先获取了在各个领域下人类文字的样本,然后取人类文本的大约20个单词作为对模型的提示,就可以得到大致相同主题的模型生成的文本样本了。8. 请问对检测模型有什么常见的攻击方法吗?答:首先,在文本中加入一些只有人类才会使用的流行语或语法错误等可能会骗过模型。其次,使用更多的提示,让模型根据这也刻意的提示生成文本可能是另一种方案。此外,使用DetectGPT等模型训练源语言模型,使他们的输出被识别为人类文本也是一种很可行的方案,但是问题在于这样计算成本很高。9. 请问DetectGPT模型未来的改进方向是什么,随着语言模型的迭代,该模型在未来还会有优势吗?答:这是一个开放性问题,像上面提到的,未来重点还是要提高模型的计算效率。我认为未来新的语言模型可能会使用重新措辞部分文本等方法来攻击我们的模型。老实说,这将会是全新的挑战,我可能会用全新的方法去重新设计模型。所以我认为这个领域还有很多工作要做。此外,我没提及但是最重要的工作是要完善基准测试,基准测试应该包含全面且有代表性的样本,而且好的基准测试应该是要包含有「攻击性」的样本的,这样才能全方位的检测出一个模型的好坏。一个好的基准测试是研究模型最重要的一点,可惜的是,我们的领域才刚刚起步,在这方面并不完善。10. 你是如何看待语言模型试图欺骗检测模型这件事情的?答:从技术的方面来说,这就像是一场猫鼠游戏,模型会通过训练来输出更为流畅和更接近人类语言的文本,甚至它们会用检测模型来训练他们的语言模型,虽然在现阶段这种方法并不好,因为检测模型依然需要大量的算力,这样会极大地增加训练的负担。从使用者的角度来说,更流畅的语言模型一方面确实会帮助人们更好的提高学习和工作效率;但是另一方面,如果模型能输出越来越通顺和流畅文本的话,肯定也会有更多的人试图用它做一些欺骗之类的行为,尽管现在我还不知道这些行为究竟会对我们社会带来多么大的影响,但是必须要警惕它们。