DetectGPT 原理详解:用概率曲率检测AI文本
DetectGPT 通过检查细微改写是否会让一段文字变得“更不可能”来识别机器文本。本文介绍方法原理、实验成果及其失效的情形。
DetectGPT 是一种零样本的 AI 生成文本检测方法,它只问一个简单的问题:如果对一段文字做些细微改写,语言模型会不会“更不喜欢”它?机器写出的文本往往位于模型概率的局部峰值,几乎任何改动都会让它的得分下降。人类文本通常没有这种尖锐的峰值。
这个想法来自 Eric Mitchell 等人 2023 年发表于 ICML 2023 的论文。它深刻影响了此后的检测研究,包括如今许多工具所依赖的更快方法。本文用通俗的语言讲解这个方法、作者报告的结果,以及当你自己的文字被检测器检查时这意味着什么。
DetectGPT 想解决的问题
在 DetectGPT 之前,检测器大致分为两类。训练分类器从标注好的人类文本和机器文本中学习,在与训练集相似的数据上效果很好,遇到新数据就不那么可靠。零样本统计量,例如平均对数概率或词元排名,不需要训练但比较粗糙:一段文字可能仅仅因为主题常见或文风正式而具有很高的概率。
Mitchell 等人想要介于两者之间的方案。他们的检测器只使用疑似写出该文本的模型的对数概率,外加一个用于做小幅编辑的通用工具。不需要标注数据集,不需要训练分类器,也不需要在生成时植入水印。如果你想先了解更大的背景,我们对 AI 检测器工作原理的概述介绍了主要的检测器类型。
DetectGPT 如何工作:通俗理解概率曲率
语言模型会为每一段文字分配一个概率。把所有可能的文字想象成一片起伏的地形,高度代表模型认为这段文字出现的可能性有多大。模型生成文本时,每一步都倾向于选择高概率的词,所以它的输出会落在山顶附近。
现在拿一段文字,做几处保留原意的小改动。如果这段文字位于山顶,往任何方向走都是下坡,改动后的版本得分就会更低。如果它位于缓坡或平地上,就像人类写作常见的那样,有些改动会往上走,有些往下走,平均变化接近于零。论文把这种形状称为负曲率:山顶在各个方向上都向下弯曲。
- 模型生成的段落
- 人类撰写的段落
实际操作分为四步。
- 为原文打分在疑似写出这段文字的模型下,计算该段落的对数概率。
- 施加扰动遮盖若干短片段,让另一个模型 T5 用合理的替代词填补。
- 为副本打分在同一个疑似模型下,计算每个扰动副本的对数概率。
- 比较如果原文得分明显高于副本的平均得分,就把这段文字标记为可能由机器生成。
扰动模型很关键。作者使用掩码填充模型 T5 替换短片段,使副本保持流畅、语义接近。在主要实验设置中,他们以两个词为一个片段,遮盖约 15% 的词,每段文字生成 100 个扰动样本。最终得分是原文与扰动样本平均值之间的差距,再除以扰动得分的波动幅度进行归一化。

DetectGPT 论文报告了什么
最受关注的结果来自假新闻检测。在 200 亿参数的 GPT-NeoX 模型生成的新闻文章上,DetectGPT 的 AUROC 达到 0.95,而最强的零样本基线为 0.81。AUROC 衡量的是一个分数在所有可能阈值下区分两组样本的能力:0.5 相当于抛硬币,1.0 代表完美区分。
作者测试了从 15 亿参数(GPT-2)到 1750 亿参数(如 GPT-3)的模型,数据涵盖新闻(XSum)、维基百科段落(SQuAD 上下文)和来自 Reddit 的创意写作提示。他们还做了一个模拟人工修改的简单测试:用 T5 改写逐步替换越来越多的机器文本。即便近四分之一的文本被替换,检测的 AUROC 仍保持在 0.8 以上。
DetectGPT 对文字要接受检测的人意味着什么
大多数商业检测器不公开内部机制,而且很多是训练分类器,而非 DetectGPT 式的测试。尽管如此,这篇论文点明了许多检测所依赖的信号:对模型来说过于可预测的文本。这对研究者有几个实际影响。
- 正式文体天生就可预测。方法部分、标准的限定语和学科常用表达在成千上万篇论文中反复出现。模型认为它们出现的概率很高,这会把严谨的人类写作推向机器那一边。我们在为什么正式文体看起来像 AI 写的中讨论过这一点。
- 分数关乎文本,而非作者。DetectGPT 衡量的是文本在某个模型下的一种属性。它看不到你的草稿、笔记或意图。
- 短文本更难判断。词元越少,曲率估计的噪声越大。一篇摘要能提供给测试的信息,比一整章少得多。
检测器还取决于用来给文本打分的具体模型。对一个模型来说位于峰值的文本,对另一个模型来说未必如此,这也是不同工具对同一段落判断不一的原因之一。
DetectGPT 的局限
论文坦率地说明了自身的限制,后续研究又揭示了更多问题。
需要合适的模型和大量算力
DetectGPT 在能够查询写出该文本的模型的对数概率时效果最好。对于闭源商业模型,这种访问受到限制,而改用其他模型打分会削弱信号。成本是另一个问题:每段文字需要额外进行一百次前向计算。后续的 Fast-DetectGPT 论文在同一块 A100 GPU 上计时,DetectGPT 在其基准上耗时 79,113 秒,而 Fast-DetectGPT 只用 233 秒,相差约 340 倍。
改写会破坏曲率信号
这种方法假设文字仍停留在模型生成时的位置,而改写会把它挪开。Krishna 等人在 NeurIPS 2023 关于 DIPPER 改写模型的论文中直接测试了这一点:在固定 1% 误报率下,改写机器文本使 DetectGPT 的检出率从 70.3% 降到 4.6%。Sadasivan 等人后来报告称,改写使这类零样本检测器的 AUROC 从 96.5% 降到 25.2%。同样的弱点也是提示词技巧层出不穷的原因;见为什么简单的提示词很难让 ChatGPT 文本检测不出来。
- 原始机器文本70.3%
- 经 DIPPER 改写后4.6%
扰动模型会左右结果
作者指出,他们的方法需要一个合理的扰动函数。T5 适用于英文,但在现成的掩码填充模型无法生成逼真改写的领域,性能可能下降。专业的科学语言就是一个可能的例子。
DetectGPT 之后
DetectGPT 开创了一系列零样本检测器,它们保留了核心直觉,同时降低了成本。Fast-DetectGPT 用词元级采样取代整段改写,Binoculars 则比较两个相关模型,以修正那些本身就令人意外的话题。我们在 Fast-DetectGPT 与 Binoculars 详解中介绍了这两种方法。另一方面,关于改写攻击的研究(总结见 AI 生成的文本能被可靠检测吗?)表明,这些信号在多大程度上依赖于文本保持接近模型本身会生成的样子。
Academic Humanizer 的定位
基于可预测性思路构建的检测器,往往会对读起来过于顺滑或过于空泛的单个句子做出反应,即使草稿中的观点和数据完全出自作者本人。Academic Humanizer 正是在这个层面工作:它扫描草稿,找出被检测器标记的句子,只改写这些句子,同时保留主张、数字、引用和术语,其余部分原样保留。内置的 AI 检测报告把每个被标记的句子和改写句并排显示,让你在使用前检查每一处修改;审阅时也值得确认一下所在机构或期刊的 AI 政策。
保留你的想法,去除 AI 痕迹
粘贴草稿,查看哪些句子被 AI 检测器标记,然后只用 Humanizer 改写这些句子。
免费试用 Humanizer


