模型进化狂飙,DetectGPT能否识别最新模型生成结果?
新智元 2023-04-23 15:18 发表于北京
以下文章来源于智源社区,作者智源社区
新智元报道
来源:智源社区作者:李灿
【新智元导读】语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。
在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。
Eric mitchell 是斯坦福大学计算机系四年级博士生,由Chelsea Finn 和 Christopher D. Manning 教授指导。研究目标是使神经网络中的知识更易于重用和更新,以适应这个持续变化的世界。研究兴趣为深度学习、元学习和持续学习,特别是在大语言模型的背景下。本科毕业于普林斯顿大学,曾在伦敦 DeepMind 担任研究实习生。曾担任纽约三星人工智能中心的一名研究工程师。空闲时间,他喜欢吉他和人声创作音乐,还喜欢户外活动,尤其是高尔夫和登山。引子:ChatGPT时代下的新困境
阅读时,如果一篇文章辞藻华丽,或是包含许多「看似合理」的例证,我们的大脑就会在潜意识里认为它是可信的,这是人类大脑最普遍的运行逻辑,而大语言模型的一大缺点便是模仿了人类的这一风格。所以它们写出来的文字可能非常通顺,而且看似很有说服力,但却缺少事实佐证,仅仅是华而不实。比如当我们让ChatGPT写一篇论文时,他会引经据典,分析的有理有据。但问题是,引用和证据都是他胡乱编写的。所以越来越多的人担心这些模型的出现会让网上充斥着各种错误信息,或是被学生利用来完成作业,阻碍他们的学习和写作能力。纽约时报最近做了一份关于世界各地学生对ChatGPT看法的调查。调查显示,许多学生认为固然ChatGPT能够帮助学习,但是它并不总是正确,还会帮助作弊。当然,语言模型的影响不只局限于教育界,就比如CNET(美国一家科技媒体)就发现,在其网站上,有包括个人理财,投资等在内的许多技术文章,都是由同一个模型生成的,这些文章很大一部分都有着巨大的事实错误。因此:我们迫切需要一项新的技术来判断一篇文章是否为语言模型所作。正篇:如何开发用于检测语言模型的新模型
扬长避短:对减少样本量与提高精度的追求那么该如何实现这项针对语言模型(LM)的检测技术呢?首先,最简单的方法是直接训练另一个语言模型。该方法可以分为以下三步:
-
1. 收集大量的数据用于训练。
2. 训练一个二元分类器来区分人类文本和语言模型文本。
3. 最后我们便需要测试他的训练成果能否顺利泛化到测试集。
这种方法的优点是,检测模型可以非常灵活的学习各种强大的语言模型,从而在训练中展现出良好的分类效果。但其缺点也很明显。首先,我们需要获取大量的数据样本和分类器模型。其次,该类模型很容易过拟合,模型可能在训练集中取得很好的效果,但是如果我们用一些真正的文章来测试他时,模型往往表现不佳。另一种直观的方法是,基于源模型的零样本学习(zero-shot)检测方法。如果使用该方法,我们无须对需要判断的语言模型本身进行训练,只需要训练一个模型,然后对待检测文本计算每个词汇的对数概率(Log probability),如果语句的平均对数概率很高,或是他们的平均对数秩((log-)rank)很低,那么我们就有理由相信它是由AI所写。
Q&A:请问我们该如何计算词汇的对数概率和文本的平均对数概率? Eric:大语言模型可以给出下一个单词或是符号的概率分布,可以利用这个分布查询到待检验单词的对数概率,然后就可以求平均值获得平均对数概率。
这种方法的优点便是不需要收集大量数据,而且可以泛化应用到各个领域。然而这种模型的判断并不准确。有了上面两种基本方案的铺垫,我们就自然而然的开始思考,是否有种模型,能够扬长避短,既能准确的给出检测结果,又能避免对大量数据的依赖呢?如果我们选取一段由模型生成的文本,然后稍稍改变他的措辞,文段的意思并不会改变,但是在模型看来,这段新文本出现的概率却往往比原始文本低很多。所以模型有一种奇怪的思维方式,它们会喜欢对文本进行某种组合,而非语义相同的另一种组合。基于这种现象,Eric提出的一个解决方案是:探究模型在候选段落周围的概率函数结构,以提高检测的准确性。通俗来说,我们不只是关注待检测文本本身出现的概率有多大,而是关注我们这段文字和一些对它进行细微修改后的文字相比,其概率是否是最大。扰动差异:对数概率局部结构的一种假设
对于模型生成的文本,我们假设x轴为我们所有可能的文本空间,也就是所有可能的单词序列组合;y轴为它对应的对数密度。如果我们取x轴上一点,然后移动它,从而从一个单词序列移动到另一个。如果这些序列是机器生成的,即使语义相似,只在组成上略有不同,其概率密度也会随着移动发生比较明显的变化,而且概率密度往往会明显降低。但是这种明显的变化只存在于模型输出的序列中,人类写出的文本往往没有这种特性。
下图中左边是模型生成序列的概率曲线,右边是人类文本的;其中红色五角星对应的序列是模型生成的文本,绿色五角星是人类所写的文本。只关注Y轴的话,我们可以看到这两段文字有着相同的绝对概率,这也导致如果使用上面提到的绝对概率判断方法,我们无法区分这两段文字,很容易造成判断失误;但是我们很明显可以看出他们附近曲线的差异非常明显,这也是关注周围概率的方法的显著优势。当然,这种假设是否正确合理呢?我们只需要用很多个模型生成一些文本,同时收集许多人类完成的文本,然后使用T5模型来对这些文本进行细微的修改,就能轻松得到X轴对应的数据。然后我们计算原始文本和添加扰动后的文本的对数概率,就可以轻松判断假设是否正确。
Q&A:请问您具体是如何生成扰动样本的? 答:我会先随机生成一段原始文本,然后随机屏蔽15%的单词,最后用T5生成填充,重复一百次即可。
下图为人类和模型样本的扰动文本的对数概率分布,其中X轴代表对数概率,且越往右概率越高。左右图中各有一条竖线分别表示模型和人类原始文本(Original)的对数概率。然后左右图各有100个使用T5模型添加干扰后的文本用原始模型计算得到的概率分布,每段文本与原始文本仅有几个单词的区别。作者用另一条竖线表示该分布的对数概率平均值(Avg perturbed)。可以明显看到平均值比原始值更小。然后我们把两条线之间的距离称做扰动差异,在模型样本中,扰动差异比较大,而在人类样本中的扰动差异则小很多。 上图我们清晰地看到了扰动差异,当我们对模型生成的文本添加扰动时,对数概率很明显的下降了。随后Eric选取了300个人类所写的文字样本和模型生成的样本,用同样的方法添加扰动,然后计算了扰动后,原始模型输出的对数概率的变化。从下图我们可以看出,人类样本和模型样本有很好的分离,且模型生成的文本相对于人类编写的文本更容易受到扰动的影响,前者概率变化更大,且扰动对概率的消极影响更大。因此我们实际上可以以极高的精度对人类和模型样本进行分类。我们设置一个阈值,如果扰动差异小于零很多(Negative),便认定为机器所写,反之则视为人类所作。总结一下就是:语言模型生成的样本倾向于对数概率的局部最大值,而人类文本却往往并非如此。实现DetectGPT:基于概率曲率的检测