大数据文摘授权转载自将门创投


(相关资料图)

作者:seven_

随着以ChatGPT等大型语言模型(large language models,LLMs)的爆火,学界和工业界目前已经开始重视这些模型的安全性,由于ChatGPT强大的知识存储和推理能力,其目前可以针对各种各样的用户输入来产生非常流畅和完整的回答,甚至在一些专业领域以及公共讨论话题中,它也可以从容应对。例如,一些学生可能会使用LLMs来帮助他们完成书面作业,使老师无法准确的判断学生的学习效果,这也的的确确是LLMs带来的负面影响。

论文链接:

https://arxiv.org/abs/2301.11305

项目主页:

https://ericmitchell.ai/detectgpt/

近日,来自斯坦福大学的研究团队发布了一个名为DetectGPT的检测模型来判断一个文本段落是否是由机器生成的。作者首先观察了LLMs的运行机制,他们发现LLM生成的文本往往占据模型的对数概率函数的负曲率区域。根据这一现象,作者提出想法,能够基于概率函数的曲率标准来对文本进行判定呢?

实验结果表明,这种想法完全可行,DetectGPT不需要专门训练一个单独的分类器,也不需要额外收集真实场景中或者机器生成的文本段落数据,它只需要对当前模型计算其对数概率并与另外一个通用的预训练语言模型(例如T5)的段落随机扰动进行比较,即可得出结论。作者发现DetectGPT比现有的zero-shot文本检测方法更具有鉴别能力。

引言

如果我们仔细推敲ChatGPT等LLMs生成出的文本回答,会发现它们的答案仍然有明显的机器翻译痕迹。但是这种生成技术确实在一些领域能够以假乱真,甚至取代人工劳动,特别是在学生的论文写作和记者的新闻写作中,这都会带来很大的风险,例如影响学生的学习积极性,也有可能会因为虚假新闻导致公众获得错误的信息。但是幸运的是,目前机器模型生成的文本与人类编写出的文字相比仍然有不小的差距,这使得我们及时开发文本检测方法和工具成为可能。

之前已经有很多工作将机器生成的文本检测任务看做是一个二分类问题[1],具体来说,这些方法的目标是对一个候选文本段落的来源进行分类,其中这些文本来源是预定义的类别。但是这种方法有几个明显的缺点,例如它们会非常倾向于参与训练的那些文本来源,并且不具备增量学习功能,如果想要使模型能够识别未知来源的文本,就需要对模型整体重新训练。因此考虑开发具有zero-shot功能的模型才更符合现实场景,即根据文本源模型本身来进行开发,不进行任何形式的微调或适应,来检测它自己生成的样本。

zero-shot文本检测任务最常见的方法就是对生成文本的平均token对数概率进行评估,并设置阈值进行判断。本文作者针对此提出了一个简单的假设:机器对自己生成的文本进行改动时往往会比原始样本的对数概率低,而人类对自己所写文本的改动会远超过原本文本的对数概率。换句话说,与人类写的文本不同,模型生成的文本往往位于对数概率函数具有负曲率的区域(例如,对数概率的局部最大值),如下图所示。

作者基于这一假设设计了DetectGPT,为了测试一个段落是否来自一个源模型

θ

, DetectGPT将与

θ

相关候选段落的对数概率与对

θ

进行随机扰动生成的段落的平均对数概率(例如用T5参与扰动)进行比较。如果被扰动的段落的平均对数概率比原始段落低一些,那么候选段落很可能来自于

θ

, 这一过程的具体运行如下图所示。

本文方法

对于机器生成的zero-shot文本检测任务设置,即检测一段文本或候选段落

是否是源模型

θ

的样本,在模型训练时无需加入外部数据,其呈现“白盒设置”的特点,模型中的检测器可以评估当前样本对

θ

的对数概率情况。此外“白盒设置”也不限制对模型架构和参数规模的选择,因此作者在对DetectGPT的性能评估中也选用了目前通用的预训练Masked模型,用来生成与当前段落比较接近的候选文本,但是这些段落的生成不会经过任何形式的微调和域适应。

2.1 模型扰动假设

上文提到,DetectGPT基于这样一个假设:来自源模型

θ

的样本通常位于

θ

的对数概率函数的负曲率区域。如果我们对一段话

θ

施加一个小的扰动,产生 , 那么与人类编写的文本相比,机器生成的样本的对数值

θ

θ

应该是比较大的。基于这一假设,作者首先考虑了一个扰动函数 , 它会先在 上给出一个分布,代表意义相近的略微修改过的 的版本。使用扰动函数的概念,我们可以q轻松的定义出扰动差异指标

θ

对上述假设更为正式的定义如下:如果

在数据流形分布上产生样本,对于样本

θ

来说

θ

大概率为正,而对于人类编写文本,

θ

对所有 都趋向于0。

如果此时将扰动函数

定义为来自T5等预训练模型生成的扰动样本,而不是人类改写的样本,就可以以一种自动的、可扩展的方式对上述假设进行经验性测试。对于机器生成样本,这里作者使用了四个不同的LLM进行输出,例如使用T5-3B模型来产生扰动,对于给定样本,按照2个字的跨度进行随机扰动,直到文本中15%的字被覆盖。随后使用经过T5处理的100个样本按照假设进行近似计算,发现扰动差异的分布对于人类编写文本和机器生成样本是明显不同的,机器样本往往有较大的扰动差异。

上图展示了来自GPT-2、GPT-Neo-2.7B、GPT-J和GPT-NeoX 四个模型与人类样本扰动后的分布对比,其中蓝色区域为人类编写文本的分布,橙色为机器生成文本的分布。

2.2 将扰动差异解释为曲率

通过上图,只能看出扰动差异在鉴别文本是否来自人类还是机器方面是有效的,但是其衡量的理论指标还不够清晰。因而作者进一步为扰动差异寻找到了理论依据,作者表明扰动差异近似于候选段落附近对数概率函数的局部曲率的度量,更具体地说,它与对数概率函数的Hessian 矩阵的负迹成正比。为了处理离散数据的不可微性,作者在这里仅考虑了在潜在语义空间中的候选段落,其中的小扰动对应于保留与原始相似含义的文本编辑过程。因为本文选用的扰动函数 (T5) 是经过大量自然文本语料预训练的,所以这里的扰动可以被粗略地认为是对原始段落的有效修改,而不是随意编辑。

作者首先利用Hutchinson提出的迹估计器[3]给出矩阵

迹的无偏估计:

随后使用有限差分来近似这个表达式:

联立上述两式子并使用

进行简化,就可以得到负Hessian矩阵的迹估计:

作者观察到上式其实对应于扰动差异 ,其中扰动函数

可以使用 Hutchinson迹估计器中使用的分布 代替。这里, 是一个高维的token序列,而 是一个嵌入语义空间中的向量。由于扰动文本模型生成的句子与 相似,语义变化较小,因此可以将扰动文本模型视为与当前采样相似的语义嵌入 ~ ,然后将其映射到token序列中 。这样做,可以保证语义空间中的采样都保持在数据流形附近,当随机扰动发生后,对数概率就会产生明显下降,这样就可以将扰动差异解释为近似限制在数据流形上的曲率。

实验效果

本文的实验部分作者使用了六个数据集,涵盖了各种日常领域,例如使用XSum数据集中的新闻文章来进行假新闻检测实验,使用SQuAD上下文中的维基百科段落来表示机器编写的学术论文,以及使用Reddit WritingPrompts数据集来表示机器生成的创意写作。此外,为了评估分布变化的稳健性,作者还使用了WMT16的英语和德语部分以及人类专家在PubMedQA数据集中编写的标准答案。

作者首先对DetectGPT的zero-shot文本检测能力进行评估,实验结果如下表所示,可以看出,DetectGPT在所有15种数据集和模型组合中的14种实验组合上都得到了最准确的检测性能。尤其是DetectGPT最大程度地提高了XSum数据集的平均检测精度(0.1 AUROC 改进),在SQuAD维基百科上下文数据集上也有明显的性能提升(0.05 AUROC 改进)。

此外,作者还选取了一部分监督学习训练的检测器进行对比。作者着重探索了几个领域,或者说几种语境,对比结果如下图所示。例如在英语新闻数据上,监督检测器可以达到与 DetectGPT 接近的检测性能,但在英语科学写作数据下,其性能明显低于本文方法。而在德语写作中监督学习方法会完全失败。相比之下,以DetectGPT为代表的零样本方法更容易泛化到新的语言和领域中。

总结

随着LLMs的不断发展和改进,我们应该一方面对它们在越来越多的领域中减轻人类工作者的创作压力感到高兴,另一方面也更应该同步发展针对它们的安全检测技术,这对于这一领域未来的健康发展至关重要。本文从这些大模型本身的运行机制出发设计了DetectGPT方法,DetectGPT通过一个简单的数据分布特点即可判断出文本的来源,此外作者还对本文方法进行了详尽的理论推导,这使得DetectGPT具有更高的可信度和可解释性。

此外DetectGPT的zero-shot特性使它相比那些使用数百万数据样本定制训练的检测模型更具有竞争力。此外作者在文章的最后还谈到了DetectGPT的未来计划,他们会进一步探索对数概率曲率属性是否在其他领域(音频、视频或图像)的生成模型中也能起到很好的检测作用,这一方向也具有非常重要的现实意义,让我们一起期待吧。

推荐内容