模型进化狂飙,DetectGPT能否识别最新模型生成结果?
【新智元导读】 语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT: 判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。 本次报告主要围绕其功能,实现和效果等展开。 Eric mitchell 是斯坦福大学计算机系四年级博士生,由Chelsea Finn 和 Christopher D. Manning 教授指导。研究目标是使神经网络中的知识更易于重用和更新,以适应这个持续变化的世界。研究兴趣为深度学习、元学习和持续学习,特别是在大语言模型的背景下。本科毕业于普林斯顿大学,曾在伦敦 DeepMind 担任研究实习生。曾担任纽约三星人工智能中心的一名研究工程师。空闲时间,他喜欢吉他和人声创作音乐,还喜欢户外活动,尤其是高尔夫和登山。 阅读时,如果一篇文章辞藻华丽,或是包含许多「看似合理」的例证,我们的大脑就会在潜意识里认为它是可信的,这是人类大脑最普遍的运行逻辑,而大语言模型的一大缺点便是模仿了人类的这一风格。所以它们写出来的文字可能非常通顺,而且看似很有说服力,但却缺少事实佐证,仅仅是华而不实。 比如当我们让ChatGPT写一篇论文时,他会引经据典,分析的有理有据。但问题是,引用和证据都是他胡乱编写的。所以越来越多的人担心这些模型的出现会让网上充斥着各种错误信息,或是被学生利用来完成作业,阻碍他们的学习和写作能力。 纽约时报最近做了一份关于世界各地学生对ChatGPT看法的调查。调查显示,许多学生认为固然ChatGPT能够帮助学习,但是它并不总是正确,还会帮助作弊。 当然,语言模型的影响不只局限于教育界,就比如CNET(美国一家科技媒体)就发现,在其网站上,有包括个人理财,投资等在内的许多技术文章,都是由同一个模型生成的,这些文章很大一部分都有着巨大的事实错误。 因此:我们迫切需要一项新的技术来判断一篇文章是否为语言模型所作。 那么该如何实现这项针对语言模型(LM)的检测技术呢? 首先,最简单的方法是直接训练另一个语言模型 。 该方法可以分为以下三步: 2. 训练一个二元分类器来区分人类文本和语言模型文本。 3. 最后我们便需要测试他的训练成果能否顺利泛化到测试集。 这种方法的优点是,检测模型可以非常灵活的学习各种强大的语言模型,从而在训练中展现出良好的分类效果。但其缺点也很明显。 首先,我们需要获取大量的数据样本和分类器模型。其次,该类模型很容易过拟合, 模型可能在训练集中取得很好的效果,但是如果我们用一些真正的文章来测试他时,模型往往表现不佳。 另一种直观的方法是,基于源模型的零样本学习(zero-shot)检测方法。 如果使用该方法,我们无须对需要判断的语言模型本身进行训练,只需要训练一个模型,然后对待检测文本计算每个词汇的对数概率(Log probability), 如果语句的平均对数概率很高,或是他们的平均对数秩((log-)rank)很低,那么我们就有理由相信它是由AI所写。 Q&A:请问我们该如何计算词汇的对数概率和文本的平均对数概率? Eric:大语言模型可以给出下一个单词或是符号的概率分布,可以利用这个分布查询到待检验单词的对数概率,然后就可以求平均值获得平均对数概率。 这种方法的优点便是不需要收集大量数据,而且可以泛化应用到各个领域。然而这种模型的判断并不准确。 有了上面两种基本方案的铺垫,我们就自然而然的开始思考,是否有种模型,能够扬长避短,既能准确的给出检测结果,又能避免对大量数据的依赖呢? 如果我们选取一段由模型生成的文本,然后稍稍改变他的措辞,文段的意思并不会改变,但是在模型看来,这段新文本出现的概率却往往比原始文本低很多。所以模型有一种奇怪的思维方式,它们会喜欢对文本进行某种组合,而非语义相同的另一种组合。 基于这种现象,Eric提出的一个解决方案是:探究模型在候选段落周围的概率函数结构,以提高检测的准确性。通俗来说,我们不只是关注待检测文本本身出现的概率有多大,而是关注我们这段文字和一些对它进行细微修改后的文字相比,其概率是否是最大。 对于模型生成的文本,我们假设x轴为我们所有可能的文本空间, 也就是所有可能的单词序列组合;y轴为它对应的对数密度。 如果我们取x轴上一点,然后移动它,从而从一个单词序列移动到另一个。如果这些序列是机器生成的,即使语义相似,只在组成上略有不同,其概率密度也会随着移动发生比较明显的变化,而且概率密度往往会明显降低。但是这种明显的变化只存在于模型输出的序列中, 人类写出的文本往往没有这种特性。 下图中左边是模型生成序列的概率曲线,右边是人类文本的;其中红色五角星对应的序列是模型生成的文本,绿色五角星是人类所写的文本。只关注Y轴的话,我们可以看到这两段文字有着相同的绝对概率, 这也导致如果使用上面提到的绝对概率判断方法,我们无法区分这两段文字,很容易造成判断失误;但是我们很明显可以看出他们附近曲线的差异非常明显,这也是关注周围概率的方法的显著优势。 当然,这种假设是否正确合理呢? 我们只需要用很多个模型生成一些文本,同时收集许多人类完成的文本,然后使用T5模型 来对这些文本进行细微的修改,就能轻松得到X轴对应的数据。然后我们计算原始文本和添加扰动后的文本的对数概率,就可以轻松判断假设是否正确。 答:我会先随机生成一段原始文本,然后随机屏蔽15%的单词,最后用T5生成填充,重复一百次即可。 下图为人类和模型样本的扰动文本的对数概率分布,其中X轴代表对数概率,且越往右概率越高。左右图中各有一条竖线分别表示模型和人类原始文本(Original)的对数概率。然后左右图各有100个使用T5模型添加干扰后的文本用原始模型计算得到的概率分布,每段文本与原始文本仅有几个单词的区别。作者用另一条竖线表示该分布的对数概率平均值(Avg perturbed)。可以明显看到平均值比原始值更小。然后我们把两条线之间的距离称做扰动差异,在模型样本中,扰动差异比较大,而在人类样本中的扰动差异则小很多。 上图我们清晰地看到了扰动差异,当我们对模型生成的文本添加扰动时,对数概率很明显的下降了。 随后Eric选取了300个人类所写的文字样本和模型生成的样本,用同样的方法添加扰动,然后计算了扰动后,原始模型输出的对数概率的变化。从下图我们可以看出,人类样本和模型样本有很好的分离,且模型生成的文本相对于人类编写的文本更容易受到扰动的影响,前者概率变化更大,且扰动对概率的消极影响更大。因此我们实际上可以以极高的精度对人类和模型样本进行分类。我们设置一个阈值,如果扰动差异小于零很多(Negative),便认定为机器所写,反之则视为人类所作。 总结一下就是:语言模型生成的样本倾向于对数概率的局部最大值,而人类文本却往往并非如此。 下面介绍Eric的DetectGPT模型的整个检测流程。首先我们将原始文本(X)添加一系列轻微的扰动;然后,我们将添加扰动后的一系列文本传给原始模型(如GPT-3),从而计算得到原始文本和扰动后的文本的对数概率;接下来,我们将原始的概率密度和扰动文本的概率密度相除然后取对数,最后求得他们的均值,如果求得的均值大于某个阈值,就有理由相信他是GPT-3所写,否则就认为它的来源并不是GPT-3,比如他可能为人类所写,也可能来自于另一个模型。 上面提到的这种检测方式,在学术上称为: 概率曲率检测(Detection with Probability Curvature)。 关于DetectGPT的这种概率曲率检测,下面我们重点介绍具体实现。 为了减少计算压力,我们只需要通过有限差分 求得近似,对概率曲率进行估算。举例来说,假定X(original)是原始文本,X(perturbed)是添加扰动后的文本,则二者的对数概率密度可以近似表示为: 简而言之,我们先用Hessian矩阵和以一个想象出的方向向量来估算概率密度,然后再用Hutchinson's Trace Estimator(哈钦森迹估计法)对式一的右式进行式二的化简,最后经过上面两次近似,我们就不需要通过复杂的计算获得准确的对数概率密度,只需计算Hessian矩阵的迹即可,这大大减少了我们模型的计算量。同如果H的迹是一个数值上低于阈值的负数,我们就可以近似认为这篇文章是由模型生成。 值得注意的是,v表征了在语义空间中,我们原始文本到扰动后文本的改变方向,他是一个只存在于理论中的虚拟量,并不能真的被观测到,但是它的存在可以帮助我们更好的理解模型。 Hessian矩阵是一个多元函数的二阶偏导数构成的方阵, 描述了函数的局部曲率。Hessian矩阵体现了不同输入维之间相互加速的速率。常用于解决优化问题,利用海森矩阵可判定多元函数的极值问题。海森矩阵在图像处理中有广泛的应用,比如边缘检测、特征点检测等。Hutchinson’s Trace Estimator源于随机取样的思想,主要应用于对大型矩阵迹的估算。 其基本思路是通过从矩阵A中随机抽样列,来获得一个较小的矩阵B,并用B的迹来作为A的近似估计值。 为了减轻计算压力,我们只需要通过有限差分 逼近模型对数概率函数方向二阶导数的方法,对概率曲率进行粗略近似。 结 合上图,我们用H表示对数概率密度函数在我们要检测的文本处求得的海森矩 阵,v是一个单位向量,代表着在文本空间中的一个方向。 则扰动文本的方向二阶导数就可以表示为v的转秩乘以Hv。 举例来说,假定X(original)是原始文本,X(perturbed)是添加扰动后的文本,则二者的对数概率密度可以近似表示为: 海森矩阵是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。海森矩阵体现了不同输入维之间相互加速的速率。常用于解决优化问题,利用海森矩阵可判定多元函数的极值问题。海森矩阵在图像处理中有广泛的应用,比如边缘检测、特征点检测等。 实际上v表征了在语义空间中,我们原始文本到扰动后文本的改变方向,他是一个只存在于理论中的虚拟量,并不能真的被观测到,但是它的存在可以帮助我们更好的理解模型。 再使用Hutchinson's Trace Estimator(哈钦森迹估计法)对右式化简。我们可以对上面右式进行如下的估计,即上图右式的期望可以用Hessian矩阵的迹 来估计: Hutchinson’s Trace Estimator源于随机取样的思想,主要应用于对大型矩阵迹的估算。其基本思路是通过从矩阵A中随机抽样列,来获得一个较小的矩阵B,并用B的迹来作为A的近似估计值。 经过两次近似,我们在计算对数概率密度时,只需要计算Hessian矩阵的迹即可,这大大减少了我们模型的计算量。同时,如果我们计算得到的迹是一个数值上低于阈值的负数,我们就可以近似认为这篇文章是由模型生成。 首先,我们当然要对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 答:这听起来可能有些搞笑,不过我最初并非研究该领域的问题的,甚至在ChatGPT出现之前,该领域几乎并没有人研究。直到它推出几个星期后,人们才开始广泛的知道并开始探讨这个模型有多么神奇。当时我正在假期,我的朋友发短信询问我是否能建立起一个检测ChatGPT输出样本的算法。于是我窝在沙发上开始思考这个问题。最初我想到的便是上面提到的两种基本算法,虽然他们并不完善,但是我认为我的大方向是正确的。于是我开始阅读各方面的资料,然后开始不断在最初模型尝试和创新,最终完成了这个模型。 2. 你是如何平衡工作与生活的,你思路匮乏的时候是否会从生活里吸取灵感? 答:你知道的,许多人都会认为研究人员就像是一个工作狂,每天都泡在实验室里,但是我依然是一个热爱生活的人,我喜欢旅行,喜欢听音乐,我会尽量平衡好工作与生活。此外,我会在生活中吸取灵感,比如当我工作到了一个难以突破的瓶颈时, 与其冥思苦想,我更愿意听点音乐 ,我总是能沉浸在音乐中,然后慢慢感受音乐带给我的灵感。这很有意思。 3. 你未来的目标和计划是什么,你的导师对你完成该模型是否有帮助? 答:我正在完成我的博士毕业论文,内容也是关于检测问题的。不过我会尝试使用最近几个月的该领域的最新成果,以此提高检测的精度,完成更强大的监测模型。此外,我还在研究一些关于大模型的编辑问题。说到克里斯教授,我认为他是一个难得的好教授。大部分教授都不会直接参与你的工作,他们只会在大的方向上给你指导;但是克里斯教授是一个十分细致的人,他会在一些具体问题上给我启发,我非常感激他。 4. 请问您怎么看待ChatGPT等模型引发的道德问题? 答:这是个好问题,我也常常思考这些模型的出现是利大于弊还是弊大于利,甚至它们会不会引发一些道德问题。一方面,它们确实提高了我们的效率,另一方面,它们也限制了我们的创造力。不过这更多的取决于他的使用者,我们需要找到一个巧妙的临界点。不过综合来看,我依然是乐观的,在某些情况下,它们可以比如帮助我们学习外语,学习一些专业知识,它们已然成为了一个很有用的博学多才的老师,更重要的是,它们是完全私人和可以互动的导师。 5. 目前 深度伪造 是一个热门话题,比如如何鉴别合成视频或图片,请问您的方案能迁移到该领域吗? 答:当然,我认为很有可能,因为这些模型总是有着相似之处的,我的模型比较好的抓住了这种相似点。比如我们可以用图像的扩散模型来代替扰动文本。 在迁移中,我认为最大的问题应该是图像模型并不会直接告诉你输出图片的概率,如果能重点解决这个问题后,我们的模型应该就能实现迁移。 6. 请问为什么使用对数概率差异而不是直接使用概率差异? 答:这更像是一种经验之谈。因为在某种意义上,这两种算法的概念是相似的,但是我们发现以1为单位的比例差异太大了, 使用对数概率缩小了比例,能够更好的提高模型准确率。 答:我们先获取了在各个领域下人类文字的样本,然后取人类文本的大约20个单词作为对模型的提示,就可以得到大致相同主题的模型生成的文本样本了。 答: 首先,在文本中加入一些只有人类才会使用的流行语或语法错误等可能会骗过模型。 其次,使用更多的提示,让模型根据这也刻意的提示生成文本可能是另一种方案。此外,使用DetectGPT等模型训练源语言模型,使他们的输出被识别为人类文本也是一种很可行的方案,但是问题在于这样计算成本很高。 9. 请问DetectGPT模型未来的改进方向是什么,随着语言模型的迭代,该模型在未来还会有优势吗? 答:这是一个开放性问题,像上面提到的,未来重点还是要提高模型的计算效率。我认为未来新的语言模型可能会使用重新措辞部分文本等方法来攻击我们的模型。老实说,这将会是全新的挑战,我可能会用全新的方法去重新设计模型。所以我认为这个领域还有很多工作要做。此外,我没提及但是最重要的工作是要完善基准测试, 基准测试应该包含全面且有代表性的样本,而且好的基准测试应该是要包含有「攻击性」的样本的,这样才能全方位的检测出一个模型的好坏。一个好的基准测试是研究模型最重要的一点,可惜的是,我们的领域才刚刚起步,在这方面并不完善。 10. 你是如何看待语言模型试图欺骗检测模型这件事情的? 答:从技术的方面来说,这就像是一场猫鼠游戏,模型会通过训练来输出更为流畅和更接近人类语言的文本,甚至它们会用检测模型来训练他们的语言模型,虽然在现阶段这种方法并不好,因为检测模型依然需要大量的算力,这样会极大地增加训练的负担。从使用者的角度来说,更流畅的语言模型一方面确实会帮助人们更好的提高学习和工作效率;但是另一方面,如果模型能输出越来越通顺和流畅文本的话,肯定也会有更多的人试图用它做一些欺骗之类的行为,尽管现在我还不知道这些行为究竟会对我们社会带来多么大的影响,但是必须要警惕它们。
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报 。