AI 文本水印是怎么藏进普通文字里的 - MongoRolls 技术博客文章封面

AI 文本水印是怎么藏进普通文字里的

发布于:
作者: MongoRolls
9 分钟阅读

本文编译、整理自 James Padolsey 的交互文章 How AI text watermarking works: a visual guide。原文的图示和参数用于解释原理,并不代表任何厂商实际采用的实现;本文在保留核心观点的基础上重新组织了内容。

纯文本怎么加水印?

它没有像素可以藏信息,复制粘贴以后也不会保留文件元数据,每一个字符都明明白白摆在眼前。答案是:水印不藏在字符里,而是藏在模型一次次选择用哪个词的过程里。

Google 从 2024 年开始把 SynthID 用于 Gemini 生成的文本。Claude 的新模型也开始在模型层写入文本水印。它们对人不可见,复制粘贴不会消失,也不是网上常说的零宽字符。

模型写作,本来就是不断掷骰子

语言模型不是先想好整句话再输出。每生成一个 token,它都会根据上文列出一批可能的后续,并给每个候选项分配概率。

比如:

这项研究的结果非常 ____。

「重要」「显著」「可观」「值得注意」都能接得通,只是模型认为它们合适的程度不同。可以把生成过程想成掷一枚加权骰子:概率越高的词,落到它的机会越大,但结果并非永远固定。

一篇长文里有几百甚至上千次这样的岔路。在很多位置,多个候选词都不影响原意。这些可以自由选择的空间,就是水印能够利用的地方。

用密钥轻轻推一下骰子

一种经典做法是用秘密密钥把当前位置的候选 token 临时分成「绿组」和「红组」,然后轻微提高绿组被选中的概率。

这个调整必须足够小:红组仍然可能被选中,文字的意思和阅读体验也不应发生可感知的变化。单看某一个词,没人知道它有没有水印;但在足够长的文本里,绿组会以略高于随机水平的频率不断出现。

更关键的是,同一个词并不永远属于同一组。系统通常会结合前面几个 token 和密钥重新计算分组。因此「显著」在一段上文之后可能属于绿组,换一段上文又可能属于红组。真正累积的是整篇文字对某一组的微弱偏向。

不同方案的数学实现并不完全一样。经典的 KGW 方案会对候选概率施加偏置;Google 的 SynthID-Text 使用更细致的抽样与评分方式;还有方案直接让密钥参与生成随机数。共同点只有一个:水印存在于选词的统计模式中,而不是附加在文字上的隐藏标签。

检测不是读文风,而是重新计数

检测器拿到文本后,会用同一把密钥和同样的规则,重新计算每个位置上的 token 属于哪一组。

如果文本没有水印,或者使用了错误的密钥,绿组出现的比例应该接近随机结果。以二分组为例,大致就像抛硬币,正反面各占一半。如果使用正确密钥后,绿组在很长的文本中持续多得不像巧合,检测器才会给出「可能含有水印」的统计结论。

这也解释了两个限制:

  1. 短文本很难判断。 几十个词里的轻微偏差完全可能只是运气,文本越长,统计证据才越强。
  2. 选择空间越小,能承载的水印越少。 代码、原文引用、固定事实列表通常只有少数合理写法,没有足够多的岔路供系统留下模式。

原文用一个刻意放大的教学示例说明:即使一篇 1500 词的文档里,绿组只从理论上的 50% 上升到约 55%,累积起来也可能成为显著信号。实际系统的参数并不公开,不能把这个数字当成 Claude 或 Gemini 的检测阈值。

编辑会稀释水印,但不一定立刻清除

如果当前位置的分组取决于前面几个 token,那么检测依赖的是一段段没有被改动的连续措辞。

改一个词,不只会破坏这个词的证据,也会影响紧随其后的短窗口。但其余原封不动的片段依然可以被计数。所以修正错别字、调整少量措辞、做一次轻度润色,通常只是让信号变弱,并不等于水印消失。

研究也观察到了类似现象:改写会稀释统计水印,但只要文本足够长、仍保留较多原始片段,检测器可能重新积累出足够证据。真正能让这一类水印接近随机水平的,是从语义或提纲重新组织内容,不再沿用原文的连续措辞。

不过要注意边界:这些结论主要来自公开论文和开源实现。Anthropic 没有公开 Claude 生产环境水印的完整算法与参数,外部无法直接复现实验,也不该把某个开源方案的结果原样套到 Claude 上。

检出水印,究竟能证明什么

最容易被误解的是检测结果的含义。

  • 只有掌握密钥的一方才能做真正的水印检测。 普通学校、编辑或第三方「AI 检测网站」无法自行复现厂商的密钥检测,除非厂商提供官方服务。
  • 文本水印和文风检测不是一回事。 GPTZero 一类工具根据写作风格猜测来源;水印检测则是在寻找生成时主动写入、可由密钥验证的统计信号。
  • 检出只能说明「经过某个模型处理」,不能直接说明「由模型原创」。 人写的文章交给模型翻译或润色,也可能在输出时获得水印。
  • 没检出更不能证明没有使用 AI。 模型可能不支持水印,文本可能太短,也可能在后续编辑中丢失了足够多的信号。
  • 结果是概率判断,不是作者身份鉴定。 水印不应携带具体用户、组织或会话身份;一次命中也不等于作弊、抄袭或违反某项规则。

所以,文本水印更适合作为「内容曾被某类生成系统处理」的一条来源信号,而不是一锤定音的 AI 判官。它可以提高透明度,但不能替代上下文、创作过程和其他证据。

参考资料

访问量:0