Agent / Scholarly Writing
降 AIGC:AI 文本检测的原理、局限与负责任的论文改写
AI 检测器靠困惑度、突发性与概率曲率等统计信号判断"像不像机器写的",但这些信号既不稳定也可被改写绕过。这一页讲清检测原理与边界,并把"人性化改写"定位为:用你真正理解的内容、你的声音、可核验的事实重写草稿,并按期刊规范披露 AI 使用——而不是教你伪装作弊。
原理图解
一图看懂原理
先看这里
学完这一页你应该会什么
理解三类检测信号:困惑度与突发性、DetectGPT 的概率曲率、生成水印。
知道检测器为什么不可靠:高假阳性、对非母语写作有系统性偏差、易被改写削弱。
把"人性化改写"理解为提升真实性、准确性与可读性,而非规避学术诚信。
了解主流期刊 / 会议关于 AI 使用披露的政策,知道该在哪里、怎么声明。
学习路径
学习路径:困惑度 → 突发性 → 曲率 → 水印 → 局限
按这条路径理解 AI 文本检测:先看最朴素的困惑度与突发性,再到 DetectGPT 的概率曲率与生成水印,最后认清分布重叠带来的根本局限。
Step 1
Perplexity
机器文本平均更"不意外",困惑度偏低。
PPL=exp(−mean log p)
Step 2
Burstiness
人类句子意外度起伏更大,机器更平滑。
std/mean
Step 3
Curvature
DetectGPT:机器文本处于对数概率局部极大。
d(x)>0
Step 4
Watermark
生成偏向绿名单,可统计检验但易被改写削弱。
z-score
Step 5
Limits
分布重叠 → 假阳性不可避免,分数只能作参考。
AUC<1
01 / 直觉
核心直觉
LLM 倾向生成"高概率、低意外"的词序列,所以机器文本的平均困惑度偏低、句子层面的意外度方差(突发性)偏小——这是大多数检测器的统计基础。
DetectGPT 用一个洞察:机器文本通常落在模型对数概率的局部极大值附近,做微小改写后对数概率倾向下降;人类文本不一定有这种曲率。
水印在生成时把 token 选择偏向一个伪随机"绿名单",事后可做统计检验;但翻译、改写或换模型都会削弱它——这说明所有检测信号都建立在脆弱的分布假设上。
02 / 数学
检测信号的统计原理与根本局限
01 / 困惑度(perplexity)
困惑度是模型对一段文本平均"有多意外"的指标。机器自己生成的文本对它自己困惑度低,但人类精心打磨、用词常规的文本困惑度也可能很低——这就是假阳性的来源之一。
PPL=exp(−(1/N) Σ_i log p(w_i | w_<i))02 / 突发性(burstiness)
人类写作的句子意外度起伏更大(有长难句也有短句),机器文本更平滑。突发性用句子级意外度的离散程度刻画这种起伏。
burstiness = std(s_j) / mean(s_j), s_j=句子 j 的平均意外度03 / DetectGPT 概率曲率
对文本做多次小扰动(同义改写),比较原文与扰动文本的平均对数概率。机器文本通常处于局部极大,差值显著为正;人类文本不一定。
d(x)=log p(x) − E_{tilde x}[log p(tilde x)]; d>0 → 偏机器04 / 生成水印
生成时用前一个 token 的哈希把词表分成"绿 / 红"名单并偏向绿名单。检测时数绿 token 比例做 z 检验。优点是可证统计性,缺点是改写 / 翻译会快速削弱。
z = (|green| − γT) / sqrt(T γ(1−γ))05 / 为何改写会降低所有信号
同义替换与句式重排会提高困惑度、打散水印、削弱曲率。这不是一份"绕过指南",而是说明检测本质上脆弱:信号依赖具体模型与生成方式,换一种写法分布就变了。
06 / 根本局限:分布重叠
人类与机器文本的统计分布高度重叠,"人写但用 AI 润色"更是连续光谱而非二分类。因此任何阈值都在假阳性与漏报之间权衡,ROC 不可能完美——这决定了检测分数只能作参考,不能作铁证。
TPR 与 FPR 不可兼得(分布重叠 → AUC<1)03 / 代码
代码案例:从对数概率计算困惑度与突发性(检测侧)
下面只演示检测一侧的统计量:给定一段文本的逐词对数概率,计算困惑度与句子级突发性,并说明为什么人类精炼文本也可能被误判。
案例 1:困惑度怎么算
困惑度是平均负对数似然的指数,越低表示模型越"不意外"。
import numpy as np
log_probs = np.array([-1.2, -0.9, -1.5, -0.7, -1.1]) # nats per token
ppl = np.exp(-log_probs.mean())
print("perplexity:", round(float(ppl), 3))预期输出
perplexity: 2.93怎么读这段代码
- 机器自生成文本对自身困惑度低。
- 但常规、清晰的人类文本困惑度也可能低。
- 所以低困惑度不等于"机器写的"。
案例 2:突发性区分人机的直觉
人类句子意外度起伏大,机器更平滑。
import numpy as np
human = np.array([3.1, 0.8, 2.9, 1.0, 3.4]) # varied sentence surprisal
machine = np.array([1.8, 1.9, 1.7, 2.0, 1.8]) # smooth
b = lambda s: round(float(s.std() / s.mean()), 3)
print("human burstiness :", b(human))
print("machine burstiness:", b(machine))预期输出
human burstiness : 0.594
machine burstiness: 0.057怎么读这段代码
- 人类文本突发性高(句子长短意外度起伏大)。
- 机器文本更平滑,突发性低。
- 但改写或混合写作会让两者趋同。
案例 3:一个假阳性演示
非母语者用简单、规范的句式写作,可能被误判为 AI。
import numpy as np
# a careful non-native writer: short, regular sentences -> low PPL, low burstiness
lp = np.array([-0.8, -0.7, -0.9, -0.6, -0.8, -0.7])
ppl = np.exp(-lp.mean())
sent = np.array([0.75, 0.80, 0.70]) # smooth per-sentence surprisal
burst = sent.std() / sent.mean()
print("PPL:", round(float(ppl), 2), "| burstiness:", round(float(burst), 3),
"-> may be flagged, wrongly")预期输出
PPL: 2.16 | burstiness: 0.058 -> may be flagged, wrongly怎么读这段代码
- 简洁规范的人类写作同样低困惑度、低突发性。
- 这正是检测器对非母语作者有偏的机制。
- 结论:分数只能作线索,不能作判定。
04 / 案例
案例:非母语研究者用 LLM 润色英文论文被误判
- 场景:一位非英语母语的研究者用 LLM 润色英文论文的语言,被某检测器判为"高度疑似 AI 生成"。
- 问题:检测信号无法区分"机器代写"与"人写后机器润色",且对规范、简洁的非母语写作系统性偏向假阳性。
- 负责任路径:保留写作过程的版本与草稿;用自己的话重述贡献与论证,确保每句都对应你真正理解的内容;逐条核验引用、数据与数字。
- 透明披露:按目标期刊 / 会议的政策,在 methods、acknowledgments 或投稿信中声明 AI 工具的使用范围(如"仅用于语言润色"),把诚信与可核验放在第一位。
05 / 风险
常见误区
参考资料
- Mitchell et al. (2023), DetectGPT: Zero-Shot Machine-Generated Text Detection using Probability Curvature, ICMLhttps://arxiv.org/abs/2301.11305
- Kirchenbauer et al. (2023), A Watermark for Large Language Models, ICMLhttps://arxiv.org/abs/2301.10226
- Sadasivan et al. (2023), Can AI-Generated Text be Reliably Detected?https://arxiv.org/abs/2303.11156
- Liang et al. (2023), GPT Detectors Are Biased Against Non-Native English Writers, Patternshttps://arxiv.org/abs/2304.02819