Poketto

AI 文本水印怎么藏:人眼看不出,算法一查就露馅,但改写几句就能绕过?

文本词元水印与统计检测概念插画

配图:AI 生成的概念示意图,非论文原图、真实现场或实验数据。

TL;DR:2023 年,马里兰大学团队提出一种给大模型文字“打水印”的方法:生成每个词时悄悄偏向一批“绿色词”,事后用统计检验就能判断一段文字是不是模型写的。论文证明了检测可行,且不需要访问模型本身。但它不是无敌的:被大幅改写后信号会变弱,需要更长的文本才能确认。

这件事发生在 2023 年 1 月,论文《A Watermark for Large Language Models》(Kirchenbauer、Geiping、Wen、Katz、Miers、Goldstein)上传到 arXiv,随后发表于 ICML 2023。它不是今天的新闻,而是 AI 文本溯源这条路线的起点之一。

背景:为什么要给文字打水印

ChatGPT 之后,“这段话是不是 AI 写的”成了现实问题:作业、假新闻、批量水军文案都绕不开。事后用另一个模型去“猜”的检测器误判不少,于是有人想:能不能在生成时就留下记号?

水印是怎么藏的

模型每写一个词,都要从整个词表里按概率挑。论文的做法是:

  1. 看前一个词,用它做随机种子,把词表随机分成“绿色”和“红色”两组;
  2. 采样时给绿色词的得分加一点偏置,让它们更容易被选中;
  3. 如此一个词接一个词地写下去。

对读者来说,文字依然通顺,看不出任何记号。但整段文字里绿色词的比例会明显高于随机水平。

怎么检测

检测者只要知道分组规则,不需要模型本身、也不需要调用它的接口:把文本逐词重新分组,数一数绿色词有多少,再做一个统计检验(单比例 z 检验)。人类随手写的文字,绿色词占比应该接近随机;绿色词多得离谱,就说明大概率带水印,而且结果可以换算成可解释的 p 值,也就是“碰巧如此”的概率有多低。论文的实验用的是 OPT 系列的数十亿参数模型,并称对文本质量影响很小。

为什么说“改写几句就能绕过”只对了一半

水印靠的是整体统计,所以攻击的办法也很直接:换词、改写、让另一个模型润色,都会把绿色词替换掉一部分。论文自己就讨论了这类攻击,指出手工改写成本高,自动改写又会损失文本质量。后续工作(同一团队 2023 年的《On the Reliability of Watermarks for Large Language Models》)进一步认为,改写通常不会把水印彻底抹掉,而是让检测需要更多词;同时水印文字被夹在大段人类文字里时,也有专门的检测办法。

换句话说:改写能削弱水印,但不是“改几句就完全消失”,代价是文本质量和精力。

还有哪些局限

  • 短文本信号太弱,很难下结论;
  • 检测者需要知道分组规则,这也意味着水印只对愿意加水印的模型提供方有用,开源模型的使用者可以直接关掉;
  • 统计检验给的是概率,不是铁证,不适合单独拿来定罪。

意义

这篇论文把“AI 文本溯源”从猜测变成了有统计保证的工程方案,之后大量水印研究都以它为基线。它也提醒我们:水印是一道门槛,不是一把锁。

论文地址:arXiv:2301.10226

关注这个空间,它的新文章会出现在你的关注动态里。