今天我们要探讨的这个问题是个非常有意思的问题,其实AI是否能识别AI生成的文章,本质上就是在玩“AI识别AI”的游戏。目前市面上的主流方法主要有以下几种:
✅ 一、重复度&概率分布检测(语言模型打分)
AI写文章是靠“猜下一个词”的,这种猜法基于训练数据,所以有一定“套路”。
- 检测方法:用另一个AI语言模型来“打分”,判断文章中每个词出现的概率。
- 比如:人类写作中,会有高概率词和低概率词混杂;AI写的,往往更“平滑”,缺少高低起伏。
- 工具案例:OpenAI 的 Text Classifier(已下线),GPTZero、GLTR 等工具。
✅ 特征表现:
- 太过流畅、逻辑严密,但缺乏突兀性与跳跃性。
- 喜欢用套话、模板化语法(比如“在当今社会……”“综上所述……”)。
✅ 二、格式与风格检测(“AI味”)
AI写作风格通常有几个“弱点”:
- 语气中庸:不太会冒险表达极端或情绪化观点。
- 结构清晰过头:总是“引言-展开-总结”这种格式。
- 用词雷同:词汇池比人类大,但却容易“撞模板”。
✔️ 有经验的人类(尤其是写作者或编辑)凭直觉就能看出“AI味”,比如你可能自己都能感觉某段话太“正经”、太“没灵魂”了。
✅ 三、统计特征分析(比如句长、词频、动词使用)
一些研究发现,AI写的文章在统计层面上有显著差异,比如:
特征 | 人类写作 | AI写作 |
---|---|---|
平均句长 | 较有波动 | 比较一致 |
高频词比例 | 更个性化 | 接近训练集平均分布 |
情感动词使用 | 真实自然 | 更趋中性 |
这种检测方式适合大批量文章检测,精度较低,但成本低。
✅ 四、原文是否能被反向追溯(AI“署名”)
- 有些AI服务商会在生成内容中嵌入隐形水印(比如 OpenAI 正在研究的“统计水印技术”),人眼看不出来,但AI能查出来。
- 举个例子:每几个词设置一个“偏移概率”,比如每隔10个词加一个“奇异表达”,可以作为标记。
✅ 五、训练数据对比(查重/相似度比对)
有些AI生成内容是“缝合怪”——拼接自已有内容或公共语料。
- 检测方法:和网络已有内容进行高相似度对比。
- 缺点:对于原创性强的AI文章(比如你写的小说),这种方法失效。
下面咱们就从程序员的角度,手把手讲讲AI是怎么“识破”另一段文本是AI写的?
🎯 场景假设
你是一位写技术博客的程序员,文章可能是你写的,也可能是某个AI模型(比如GPT)写的。现在你要判断这篇文章是不是AI生成的。
一、基于语言模型的概率分析
🧪 原理:AI喜欢“猜大概率词”,人类却偶尔“乱跳词”
我们可以用 transformers
库加载一个语言模型,比如 GPT2,来看看一段文本中,词语的预测概率是高是低。
⚠️ 低熵 + 高流畅性 = 更有可能是 AI 写的。
🧑💻 示例代码:
from transformers import GPT2Tokenizer, GPT2LMHeadModel
import torch
import numpy as np
# 加载模型与分词器
tokenizer = GPT2Tokenizer.from_pretrained("gpt2")
model = GPT2LMHeadModel.from_pretrained("gpt2")
model.eval()
def