斯坦福大学团队提出AI生成文本检测器DetectGPT,通过文本对数概率的曲率进行可解释判断

news2025/7/11 2:35:42

原文链接:https://www.techbeat.net/article-info?id=4583
作者: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,为了测试一个段落是否来自一个源模型 p θ p_{\theta} pθ ,DetectGPT将与 p θ p_{\theta} pθ 相关候选段落的对数概率与对 p θ p_{\theta} pθ 进行随机扰动生成的段落的平均对数概率(例如用T5参与扰动)进行比较。如果被扰动的段落的平均对数概率比原始段落低一些,那么候选段落很可能来自于 p θ p_{\theta} pθ , 这一过程的具体运行如下图所示。
在这里插入图片描述

二、本文方法

对于机器生成的zero-shot文本检测任务设置,即检测一段文本或候选段落 x x x 是否是源模型 p θ p_{\theta} pθ 的样本,在模型训练时无需加入外部数据,其呈现“白盒设置”的特点,模型中的检测器可以评估当前样本对 p θ p_{\theta} pθ 的对数概率情况。此外“白盒设置”也不限制对模型架构和参数规模的选择,因此作者在对DetectGPT的性能评估中也选用了目前通用的预训练Masked模型,用来生成与当前段落比较接近的候选文本,但是这些段落的生成不会经过任何形式的微调和域适应。

2.1 模型扰动假设

上文提到,DetectGPT基于这样一个假设:来自源模型 p θ p_{\theta} pθ 的样本通常位于 p θ p_{\theta} pθ 的对数概率函数的负曲率区域。如果我们对一段话 x ∼ p θ x \sim p_{\theta} xpθ 施加一个小的扰动,产生 x ~ \tilde{x} x~ ,那么与人类编写的文本相比,机器生成的样本的对数值 log ⁡ p θ ( x ) − log ⁡ p θ ( x ~ ) \log p_{\theta}(x)-\log p_{\theta}(\tilde{x}) logpθ(x)logpθ(x~) 应该是比较大的。基于这一假设,作者首先考虑了一个扰动函数 q ( ⋅ ∣ x ) q(\cdot \mid x) q(x) ,它会先在 x ~ \tilde{x} x~ 上给出一个分布,代表意义相近的略微修改过的 x x x 的版本。使用扰动函数的概念,我们可以q轻松的定义出扰动差异指标 d ( x , p θ , q ) \mathbf{d}\left(x, p_{\theta}, q\right) d(x,pθ,q)
在这里插入图片描述
对上述假设更为正式的定义如下:如果 q q q 在数据流形分布上产生样本,对于样本 x ∼ p θ x \sim p_{\theta} xpθ 来说, d ( x , p θ , q ) \mathbf{d}\left(x, p_{\theta}, q\right) d(x,pθ,q) 大概率为正,而对于人类编写文本, d ( x , p θ , q ) \mathbf{d}\left(x, p_{\theta}, q\right) d(x,pθ,q) 对所有 x x x 都趋向于0

如果此时将扰动函数 q ( ⋅ ∣ x ) q(\cdot \mid x) q(x) 定义为来自T5等预训练模型生成的扰动样本,而不是人类改写的样本,就可以以一种自动的、可扩展的方式对上述假设进行经验性测试。对于机器生成样本,这里作者使用了四个不同的LLM进行输出,例如使用T5-3B模型来产生扰动,对于给定样本,按照2个字的跨度进行随机扰动,直到文本中15%的字被覆盖。随后使用经过T5处理的100个样本按照假设进行近似计算,发现扰动差异的分布对于人类编写文本和机器生成样本是明显不同的,机器样本往往有较大的扰动差异
在这里插入图片描述
上图展示了来自GPT-2、GPT-Neo-2.7B、GPT-J和GPT-NeoX 四个模型与人类样本扰动后的分布对比,其中蓝色区域为人类编写文本的分布,橙色为机器生成文本的分布。

2.2 将扰动差异解释为曲率

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

作者首先利用Hutchinson提出的迹估计器[3]给出矩阵 A A A 迹的无偏估计:
在这里插入图片描述
随后使用有限差分来近似这个表达式:
在这里插入图片描述
联立上述两式子并使用 h = 1 h = 1 h=1 进行简化,就可以得到负Hessian矩阵的迹估计:
在这里插入图片描述
作者观察到上式其实对应于扰动差异 d ( x , p θ , q ) \mathbf{d}\left(x, p_{\theta}, q\right) d(x,pθ,q) ,其中扰动函数 q ( ⋅ ∣ x ) q(\cdot \mid x) q(x) 可以使用Hutchinson迹估计器中使用的分布 q z ( z ) q_{z}(z) qz(z) 代替。这里, x ~ \tilde{x} x~ 是一个高维的token序列,而 q z q_{z} qz 是一个嵌入语义空间中的向量。由于扰动文本模型生成的句子与 x x x 相似,语义变化较小,因此可以将扰动文本模型视为与当前采样相似的语义嵌入 ( z ~ ∼ q z ) \left(\tilde{z} \sim q_{z}\right) (z~qz) ,然后将其映射到token序列中 ( z ~ ↦ x ~ ) (\tilde{z} \mapsto \tilde{x}) (z~x~) 。 这样做,可以保证语义空间中的采样都保持在数据流形附近,当随机扰动发生后,对数概率就会产生明显下降,这样就可以将扰动差异解释为近似限制在数据流形上的曲率。

三、实验效果

本文的实验部分作者使用了六个数据集,涵盖了各种日常领域,例如使用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的未来计划,他们会进一步探索对数概率曲率属性是否在其他领域(音频、视频或图像)的生成模型中也能起到很好的检测作用,这一方向也具有非常重要的现实意义,让我们一起期待吧。

参考文献

[1] Jawahar, G., Abdul-Mageed, M., and Lakshmanan, L. V. S. Automatic detection of machine generated text: A critical survey. In International Conference on Computational Linguistics, 2020.
[2] Narayan, S., Cohen, S. B., and Lapata, M. Don’t give me the details, just the summary! Topic-aware convolutional neural networks for extreme summarization. In Proceedings of the 2018 Conference on Empirical Methods in Natural Language Processing, Brussels, Belgium, 2018.
[3] Hutchinson, M. A stochastic estimator of the trace of the influence matrix for laplacian smoothing splines. Communications in Statistics - Simulation and Computation, 19(2):433–450, 1990. doi: 10.1080/ 03610919008812866. URL https://doi.org/10. 1080/03610919008812866.

Illustration by Bittu Designs from IconScout

-The End-

关于我“门”

将门是一家以专注于发掘、加速及投资技术驱动型创业公司的新型创投机构,旗下涵盖将门创新服务、将门-TechBeat技术社区以及将门创投基金。
将门成立于2015年底,创始团队由微软创投在中国的创始团队原班人马构建而成,曾为微软优选和深度孵化了126家创新的技术型创业公司。
如果您是技术领域的初创企业,不仅想获得投资,还希望获得一系列持续性、有价值的投后服务,欢迎发送或者推荐项目给我“门”:
bp@thejiangmen.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/362632.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DSP28系列 CCS 开发问题总结及解决办法

文章目录 问题汇总 1. CCS编译器的Project菜单栏工程导入选项丢失,怎么解决! 1.1启动CCS后发现导入工程菜单栏丢失,无法导入工程文件。 1.2方法一 工程选项的导入工程文件丢失,如果要重新获得相应的选项,就需要删除当前…

Java必备小知识点2——输入输出与变量

变量变量的实质假如将内存比喻成一座房子,存入内存就相当于住进房子。但是如果一个房间给了应人,他却不住,那么房间实际上是空着的,又属于个人,别人无法住进来,就会造成浪费。那么将内存比喻成酒店&#xf…

Cocoa-autoLayout

什么是autoLayout autoLayout的重新布局是通过 constraints 各个view实现自动布局,autoLayout重新调整布局view是在runtime中 autolayout without constraints 也就是通过stack view实现不引入复杂的constraints的情况下 还能使用autoLayout 什么是stack view …

SPDK NVMe-oF Target

SPDK NVMe-oF TargetNVMe协议制定了本机高速访问PCIe SSD的规范,相对于SATA、SAS、AHCI等协议,NVMe协议在带宽、延迟、IOps等方面占据了极大的优势,但是在价格上目前相对来讲还是比较贵的。不过不可否认的是,配置PCIe SSD的服务器…

软件供应链受威胁下的应对方法——供应链安全管理平台的五大工具能力

背景如今,软件供应链安全问题已经成为一个全球性的难题。根据数据统计,2017年全球遭受网络攻击的公司比例已经达到了93%,其中很大一部分是由于软件供应链安全问题导致的。而在中国,据统计,2019年全国共发生…

FlinkSQL行级权限解决方案及源码

FlinkSQL的行级权限解决方案及源码,支持面向用户级别的行级数据访问控制,即特定用户只能访问授权过的行,隐藏未授权的行数据。此方案是实时领域Flink的解决方案,类似离线数仓Hive中Ranger Row-level Filter方案。 源码地址: https…

不可变集合、Stream、异常、日志框架

创建不可变集合 什么是不可变集合?不可变集合,就是不可被修改的集合。集合的数据项在创建的时候提供,并且在整个生命周期中都不可改变。否则报错。为什么要创建不可变集合?如果某个数据不能被修改,把它防御性地拷贝到…

交叉编译 SQLite

交叉编译 SQLite 概述 SQLite 是一个 C 语言库,它实现了一个小型、快速、自包含、高可靠性、功能齐全的 SQL 数据库引擎。SQLite 是世界上使用最多的数据库引擎。SQLite 内置于所有手机和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中。 S…

java迷宫回溯找最短路径问题(多策略)

1、首先我们先明确迷宫,并创建如上图,1为墙,中间的1为挡板墙,由图我们可以看出这是一个二维数组/*** 创建地图* return*/public static int [][] createMap(){int [][] mapNew new int[8][7];//1表示墙,不能走for (in…

Kaggle系列之识别狗的品种类别(深度残差网络模型ResNet-34)

我们来到这个比赛页面:https://www.kaggle.com/competitions/dog-breed-identification这个数据集的目标是Determine the breed of a dog in an image(确定图像中狗的品种)我们先下载数据集解压之后来看下(当然不手动解压,也可以使用),这里我…

超全 Vue3新特性总结

Vue3 应用-技术分享与交流 新特性篇 Vue3 组合式 API VS Vue2 选项式 API 选项式 API 面临的问题: 我们在处理业务逻辑时,需要在 data computed method watch 中分别进行代码编写,碎片化使得理解和维护复杂组件变得困难。选项的分离掩盖了潜在的逻辑问…

百度工程师浅谈分布式日志

作者 | 文库基础架构 导读 我们做软件开发时,或多或少的会记录日志。由于日志不是系统的核心功能,常常被忽视,定位问题的时候才想起它。本文由浅入深的探讨不起眼的日志是否重要,以及分布式架构下的日志运维工具应该具备哪些能力&…

【单目标优化算法】海鸥优化算法(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

如何使用ODX描述诊断会话和安全等级

ODX 2.2是由ASAM(自动化及测量系统标准协会)提出的诊断标准,是一种基于XML语言的开放式诊断数据格式,已在国际上得到广泛使用。目前ODX诊断标准也已被国内各大OEM采用,但在ODX数据开发阶段,ODX诊断数据库的…

1.1 数据库简介

文章目录1.什么是数据库2.数据库分类3.关系型数据库和非关系型数据库4.关系型数据库4.1 Mysql数据库4.2 MySQL数据的存放1.什么是数据库 我们可以简单将数据库理解为一个存储数据,管理数据的仓库; 仓库中有许多的货架(数据表)&a…

JSP 字库销售管理系统myeclipse定制开发sqlserver数据库网页模式java编程jdbc

一、源码特点 JSP 字库销售管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为 TOMCAT7.0,Myeclipse8.5开发,数据库为SQLServer2008&#x…

【RecBole-GNN/源码】RecBole-GNN中NCL源码解析

如果觉得我的分享有一定帮助,欢迎关注我的微信公众号 “码农的科研笔记”,了解更多我的算法和代码学习总结记录。或者点击链接扫码关注【RecBole-GNN/源码】RecBole-GNN中NCL源码解析 【RecBole-GNN/源码】RecBole-GNN中NCL源码解析 原文:ht…

【教程】GitStats代码统计工具(附GitLab API相关)

使用GitStats进行代码统计 官方文档:GitStats - git history statistics generator GitStats是基于Git的数据统计生成器,输出格式为HTML,可直接在浏览器打开查看,展现为图表形式的可视化数据,内容包括: 常…

Spring Boot MyBatis-Plus 连接 Oracle 数据库 自动生成代码

IDEA 创建SpringBoot项目 项目创建移步 IDEA创建SpringBoot项目 添加依赖 <!--MyBatis--><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.4</vers…

归因分析笔记21 可解释的机器学习-李宏毅讲座

视频链接: https://www.bilibili.com/video/BV1Wv411h7kN/?p96&vd_source7259e29498a413d91ab48c04f9329855 课件链接: https://view.officeapps.live.com/op/view.aspx?srchttps%3A%2F%2Fspeech.ee.ntu.edu.tw%2F~hylee%2Fml%2Fml2021-course-data%2Fxai_v4.pptx&…