AI 文本水印的工作原理:为什么轻编辑删不掉它,但重写的工具能

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

AI 文本水印的工作原理:为什么轻编辑删不掉它,但重写的工具能

文章来源

  • 作者: James Padolsey(NOPE 创始人,declaude.org)
  • 标题: How AI text watermarking works: a visual guide
  • 链接: https://declaude.org/watermarking/
  • 日期: 2026 年 8 月
  • 配套工具: declaude — AI 文本重写/水印擦除工具

James Padolsey 用一篇极高质量的可视化指南,完整拆解了 AI 文本水印的工作原理。这篇文章不是学术论文,而是一个教学模型——用交互式的投骰子模拟,解释了水印为什么藏在"词与词之间的选择"里而不是藏在字符里。作为配套工具 declaude 的技术说明,它同时解释了 declaude 的 full-rewrite 路线为什么能真正擦除这一类水印。


核心问题:纯文本里怎么藏水印?

A watermark in plain text sounds impossible. Text has no pixels to hide data in, and no metadata survives copy-and-paste; every character is right there in front of you.

但水印确实存在了:

  • Google 从 2024 年开始给 Gemini app 和 web 体验的文本加水印
  • Anthropic 从 2026 年 8 月开始在新 Claude 模型层面标记文本,旧模型也将跟进
  • 水印不可见、复制粘贴后存活、不改变文本含义或可读性

答案:水印不在字符里,它在词与词之间的选择里。

第一步:写作是一系列小选择

LLM 在写下一个词时,不是"知道下一个词"——它有一个候选列表(像 autocomplete),每个词有不同的偏好概率。

比如 “The results of the study were quite ___”,模型有一组候选词:significant、notable、remarkable、promising……每个词有不同的概率权重。模型的生成过程本质上是按权重摇骰子

一个页面的文本包含数百个这样的小分叉,每个词一个。关键在于:在很多分叉点上,几个选项同样好。 这种"slack"就是水印的原材料。谁有资格影响骰子的落下方向,谁就能在文本中隐藏模式而不改变文本内容。

第二步:密钥倾斜选择

这是经典的 Kirchenbauer et al. 2023 方案(Google 的 SynthID 以 tournament 方式达到同样效果):

在每个分叉点,密钥驱动的数学把候选词分成 greenred 两组。这种分组是任意的,只有密钥持有者能复现。然后骰子稍微向 green 倾斜。

两个让这个标记隐蔽的特性:

  1. 倾斜是温和的:red 词仍然可能赢——只是概率稍微低一点
  2. 颜色不是词的固定属性:密钥从前面的一小段词计算颜色,所以同一个候选词在一种前缀后是 green,在另一种前缀后是 red

也就是说,green 的倾向只在整个文本中累积,只有密钥持有者知道哪些词在哪里是 green 的。

三种水印方案

文章提到了三个同源不同实现的水印方案:

方案作者/机构核心方法
Kirchenbauer et al. (2023)UMass AmherstGreen/red 分组 + 概率倾斜
Google SynthIDGoogle微型锦标赛:从模型概率中抽取几个候选,密钥给它们打分,bracket 排列让每个词的平均概率保持模型原始意图
Aaronson 方案Scott Aaronson / OpenAI直接从密钥导出骰子投掷本身

不同的数学,相同的原则:标记活在选择中。

第三步:持有密钥的人可以计数

检测不读文本,不判断风格。检测器用密钥重新着色文本中的每个词,简单地数有多少个是 green 的。

  • 没有标记(或没有正确的密钥):green 应该约 50% 赢,和抛硬币一样
  • 有标记 + 正确密钥:green 出现频率显著高于 50%
  • 有标记 + 错误密钥:split 无意义,计数在偶然水平

这里有一个重要细节:检测强度和文本长度成正比

在 50/50 的模型中,一个 1,500 词的文档只需要约 55% 的 green 就能 flag。小倾斜只有通过长度才能变得有说服力,这就是为什么短文本确实很难判定。

第四步:编辑对标记的影响

这是最关键的一步,也是 declaude 的核心价值所在。

每个词的颜色是从它前面的一小段词计算出来的(1 到几个词,取决于方案)。所以一个位置只有在一小段原始措辞保持完整时,才算作证据。

文章展示了五个编辑深度下的标记存活情况:

编辑深度效果标记存活
Fix typos修正拼写错误几乎全部存活
Light touch轻微润色大量存活
Tighten sentences收紧句子部分存活
Heavy edit重度编辑显著减少,但仍有可观存活
Full rewrite完全重写几乎完全消除

关键数据(来自 MarkLLM 的 KGW 和 EXP 方案在开放模型上的实测,经 declaude 的 full-rewrite 路线清洗):

  • Full rewrite 后约 0.5% 的 windows 存活
  • 检测器准确率从近乎确定(AUC 0.99)下降到抛硬币水平(AUC ≈ 0.5)

已有文献也同意这个形状:在 Kirchenbauer et al. 的实验中,即使是人类改写,在约 800 个 tokens(约 600 个词)后也能重新被检测到

这里的核心区别:

轻编辑稀释标记而不是删除它。真正去除标记的是"不共享任何措辞片段"的重新创作。

这就是为什么从含义重写(如 declaude 的 full-rewrite 路线)才能真正擦除这一类水印,而保留大多数措辞的轻 edit pass 不行。

值得注意的边界

  • 基于词本身的方案(不依赖邻居词):same-meaning 的重写保留了足够的词,标记大量存活。(它们的弱点不同:到处复用的颜色可以从足够的输出中被逆向工程)
  • 隐藏在含义中的水印:same-meaning 的重写部分保留它们;目前唯一的解法我们已知的是 outline-level 的重新生成
  • Anthropic 的生产方案是未公开的,所以目前没有人能在 Claude 自己的标记上运行这个测试

数学模型(面向专业读者)

Step 4 的 residual-evidence 模型:

z ≈ f·√N·z₁
  • f = surviving fraction(存活的 window 比例)
  • N = document length(文档长度,以 tokens 计)
  • z₁ = per-token strength(每个 token 的水印强度)

这意味着:编辑后的有效证据量与存活比例成正比,与文本长度的平方根成正比。轻编辑让 f 接近 1,full rewrite 让 f 接近 0。

第五步:实际含义

1. 检测是私有的、概率性的、关于"处理过"而非"作者"

  • 只有密钥持有者可以检查:你的老师、编辑或你最喜欢的"AI 检测器"网站不能运行这个测试。真正的检测需要提供商的秘密密钥或提供商运行的检测服务。Google 运行了 SynthID 的 early-access 检测门户;Anthropic 说检测工具即将推出
  • 水印检测不是"AI 检测器":GPTZero 之类的工具从风格猜测,著名地不可靠。水印是相反的:一种有意的、密钥门控的统计测试
  • 发现的标记意味着"被处理过",不是"由……撰写":Anthropic 自己的文档指出,人类文本仅由 Claude proofread 或翻译就会携带标记
  • 缺少标记证明的更少:旧模型或重度编辑的文本对真正的 AI 文本产生干净的检测结果

2. 短文本和低选择文本携带很少的标记

  • 证据随长度增长
  • 只有一种正确续写的文本(代码、引文、事实列表)给骰子太少的 slack 来隐藏任何东西

背景:为什么现在有了水印?

这来自 EU AI Act Article 50, Part 2

Providers of AI systems including general purpose AI systems, generating synthetic audio, image, and text contents, shall ensure that the outputs of the AI system are marked in a machine-readable format and detectable as artificially generated or manipulated.

Anthropic 是第二个引入文本水印的主要实验室(Google SynthID 在前),但效果是全球性的——不论你在美国、英国还是欧盟,所有 Claude 生成的文本都携带水印。

Anthropic 使用两种互补的标记技术

  1. 嵌入文本中的水印
  2. 附加到文件上的签名来源元数据

declaude 的实测数据

James Padolsey 在自家已知的密钥实现上做了实验,结果总结如下:

水印方案检测效果(原始)Full rewrite 后存活机制
MarkLLM KGWAUC 0.99AUC ≈ 0.5仅 ~0.5% windows 存活
MarkLLM EXPAUC 0.99AUC ≈ 0.5仅 ~0.5% windows 存活
Context-free unigramAUC 0.73–0.84基于词本身的颜色,same-meaning 重写保留足够词
Meaning-space marks部分存活唯一解法:outline-level 重新生成

我的理解

这篇文章的价值在于它把一篇 ICML 2023 的学术论文翻译成了任何人都能理解的交互式可视化。投骰子的比喻完美地传达了水印的本质:不改变文本说什么,只改变模型"怎么说"的概率分布。

最关键的理解是关于编辑对水印的影响。大多数人直觉上认为"改写一下就没水印了",但数学告诉我们:

  • 轻编辑(换同义词、调整语序)保留了大部分原始措辞片段 → 标记只是被稀释,在足够长的文本后仍可检测
  • 真正删除标记的是"不共享任何措辞片段"的重新创作——从含义出发,重建整个表达

这就是 declaude 的定位:不是同义词替换器,而是从含义重写的工具。

z ≈ f·√N·z₁ 这个公式很有启发性。它告诉我们三个方向可以攻击水印:

  1. 降低 f(full rewrite)——declaude 做的事
  2. 降低 N(短文本输出)——但短文本本身就携带很少标记
  3. 降低 z₁(水印强度)——但这是提供商决定的

还有一个值得注意的矛盾:水印检测只能由密钥持有者运行,这意味着普通用户无法验证。你的老师、编辑、HR 不能确认文本是否被 Claude 处理过——只有 Anthropic 自己或他们授权的服务可以。这从根本上限制了水印的普及应用场景。

水印是合规工具,不是反作弊工具。它服务于 EU AI Act 的要求,告诉 regulator “这个文本被 AI 处理过”。但它不能告诉你"这个文本是 AI 写的"——human text 经过 Claude proofread 也会携带标记。absence 也不能证明 innocence。水印是一个"单向的门":找到标记说明"可能被处理过",找不到标记什么也不能说明。


参考资料

AI 时代程序员必备技能

Codex、Claude Code、Cursor、Hermes Agent、OpenClaw等工程化实战专栏 ,讲透 AI 如何接管脏活累活

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值