AI文本水印的工作原理
摘要
一份温和的视觉化讲解,说明统计水印如何通过微妙地偏向令牌选择,在AI生成的文本中隐藏秘密标记,以及编辑如何能抹除它。
暂无内容
查看缓存全文
缓存时间: 2026/08/14 00:22
# AI 文本水印的工作原理
来源:https://declaude.org/watermarking/
← declaude (https://declaude.org/)
一篇轻松、可视化的讲解,带你了解统计标记如何隐藏在生成的文本中,以及什么会抹掉它。
在纯文本中加水印听起来像是天方夜谭。文本没有像素可以隐藏数据,也没有元数据能在复制粘贴后幸存;每个字符都明明白白地摆在你眼前。标记到底能藏在哪儿?
然而这些标记是真实存在的。自 2024 年起,Google 已经为 Gemini 应用和网页版的文本输出添加了水印(在撰写本文时,其 API 是一个有记录的例外 (https://discuss.ai.google.dev/t/does-gemini-api-text-output-carry-synthid-watermarking-gemini-2-5-flash-lite-gemini-3-1-flash-lite-eu-ai-act-art-50-2/177241));而截至 2026 年 8 月,新的 Claude 模型在模型层面为文本打上标记,更早的模型也在陆续跟进。它们不可见,能在复制后幸存,而它们之所以有效,是因为它们根本不存在于字符之中。它们存在于字符之间的*选择*里。
五个简短的步骤,每一步都有值得琢磨之处。难度不超过数数。
1. 写作是一系列微小的选择
2. 一把密钥悄悄影响这些选择
3. 持有密钥的人可以计数
4. 编辑对标记做了什么
5. 这在实践中意味着什么
## 1. 写作是一系列微小的选择
这一步的核心思想:模型写作时,是在几个都说得过去的词之间掷一枚加权骰子。
当模型写到句子中间时,它并不知道"下一个词"是什么。它有一个类似自动补全的候选列表,带有各自的偏好。这是一个真实的瞬间,句子只剩最后一个词:
正在书写的句子
The results of the study were quite
每次掷骰都会扫过候选列表,落在一个词上(概率与横条高度一致),然后将其放入上面的句子中。圆点记录了骰子的落点:试 ×20 次,观察堆积形态形成与概率一致的形状。注意什么*从未改变*:每次落点都构成了完全通顺的句子。
一页文本包含数百个这样的小分叉,每个词一个,而且其中许多分叉上都有多个同样合适的选项。这种冗余就是原始素材。谁能在骰子的落点上施加影响,谁就能在文本中隐藏一种模式,而不改变文本的含义。
## 2. 一把密钥悄悄影响这些选择
这一步的核心思想:密钥秘密地给候选列表着色,并给其中一种颜色施加轻微的倾斜。文本读起来依然完全正常。
这是经典方案(Kirchenbauer 2023;Google 的 SynthID 通过更精巧的锦标赛式路径达到同样的效果)。在每个分叉处,由密钥驱动的数学计算将候选词分为**绿色**和**红色**——这是一种只有密钥持有者才能复现的任意着色。然后骰子被轻轻地朝绿色方向倾斜。
正在书写的句子
The results of the study were quite
未应用密钥:这些是模型自身的偏好。密钥启用后,虚线轮廓将显示先前的概率。
这套机制之所以隐蔽,在于两点。倾斜是温和的:红色词仍然可能胜出,只是概率稍低而已。而且着色并不是词的固定属性:密钥根据前面的一小段词来计算它,因此同一个候选词在一个前缀之后是绿色,在另一个前缀之后就是红色:
同样的四个候选词,在六个不同前缀之后由密钥着色。密钥只能看到前面的词;日历位置对它不可见。只有朝绿色方向的*整体倾斜*在累积,而且只有密钥持有者知道哪些词在哪个位置是绿色。
(两种同门方案。Google 的 SynthID——即生产环境中的那个——用一场微型的秘密*锦标赛*取代了倾斜:从模型自身的概率中抽取几个候选词,密钥为它们打分,然后安排淘汰赛对阵,使得在密钥的抽取下取平均后,每个词的概率与模型原本的意图完全一致。Aaronson 的方案(在 OpenAI 构建)连这一步都省了,直接从密钥本身推导出骰子的概率分布。数学不同,原理相同:标记存在于选择之中。)
## 3. 持有密钥的人可以计数
这一步的核心思想:有了密钥,你可以为任何文本重新着色,然后直接计数。被标记的文本出现绿色的频率高得不像是运气。
检测并不阅读文本内容,也不评判其风格。检测器在词上重放密钥持有者的着色,然后统计其中有多少个是绿色。没有标记(或密钥不正确)时,绿色比例应该大约是半数。就像抛硬币。这里有一段看起来普普通通的段落;试试用两把不同的密钥来处理它:
绿色:–共 55 个
抛硬币
标记柱(此长度)
填充并带下划线的筹码是绿色,虚线轮廓是红色。两种方式下文字读起来完全相同;着色只存在于密钥持有者的数学计算中。用错误的密钥,这种划分毫无意义,计数也回到随机水平。
注意标记柱的门槛有多高。这段文字肉眼可见地倾斜,但仍然太短而无法触发标记。检测器的调校目标是让误报概率极低;代价是较短、经过编辑或标记较弱的文本经常被漏检,而 55 个词的温和倾斜不足以构成证据。点击**继续阅读**:倾斜程度完全不变,而标记柱逐渐下移与不断增长的证据相遇。长度本身就是测试的一部分。(另外,这个演示的倾斜画得很强,方便你观察;生产环境中的标记要温和得多,因此需要相应更长的文本。在这个演示的 50/50 模型中,一份 1,500 词的文档只需约 55% 的绿色比例就能触发标记:微小的倾斜只有通过长度才能变得有说服力,这就是为什么短文本确实很难判断——对任何人来说都是如此。)
## 4. 编辑对标记做了什么
这一步的核心思想:标记存在于未被打断的原文片段中。编辑恰好会在片段断裂处抹掉标记,而其他地方不受影响。
每个词的着色都由它前面的一小段词推导而来(一个到几个词,取决于具体方案)。因此,一个位置只有在原文的一个短窗口(该词加上其邻居)完好幸存时,才能作为证据被计入。
这是第 3 步中的同一段落,在五种编辑深度下。**拖动滑块,观察高亮片段不断缩减。** 高亮意味着这段文字与原文完全一致,因此检测器可以在那里计数。所有淡化显示的都是新写的文字,那里只剩下抛硬币般的噪声可供计数。
修正错别字· 幸存窗口:–%
判定结果读取的是*上方高亮部分*测得的幸存比例,并投影到一份 1,500 词的文档上。有两点值得注意:一次"重度编辑"之后还有多少内容屹立不倒,以及你需要一路拖到接近完全重写,证据才会真正失效。
在实际实现上的测试(MarkLLM 的 KGW 和 EXP 方案应用于一个开放模型,经 declaude 的全重写路径清洗后):约 0.5% 的窗口幸存,检测器准确率从几乎确定跌落到抛硬币水平。已发表的文献也支持这一趋势。轻度改写或单次释义会*稀释*标记而非删除它;在 Kirchenbauer 等人的实验中,给定足够的文本量,检测能力能够恢复,即便是人工释义在约 800 个 token(约 600 个词)之后也会重新变得可检测。真正移除标记的,是与原文没有任何共同词序片段的重新创作。
这就是为什么一种从语义出发进行重写的工具(如 declaude (https://declaude.org/) 的全重写路径)才能真正抹掉这一类标记,而保留大部分措辞的轻度改写则做不到。
有一点需要明确说明:那些数据来自我们可以测量的开放实现。Anthropic 的生产方案未公开披露,因此目前 Anthropic 之外没有人能对 Claude 自身的标记运行这项测试。我们的实验所验证的是机制本身,适用于本页所描述的方案家族。
## 5. 这在实践中意味着什么
这一步的核心思想:检测是私密的、概率性的,而且关乎*处理过程*,而非创作身份。
- **只有密钥持有者才能检测。** 你的老师、编辑或最喜欢的"AI 检测"网站无法运行这项测试;一次可信的检测需要服务提供商的密钥,或者由提供商运行的检测服务。Google 为 SynthID 开设了一个早期访问的检测器门户;Anthropic 表示检测工具即将推出。
- **水印检测不是"AI 检测器"。** 诸如 GPTZero 之类的工具靠风格猜测,其可靠性是出了名的不稳定。水印则相反:它是一种经过设计的、由密钥控制的统计检验。不要把两者混为一谈。
- **发现标记意味着"经过程序处理",而非"由某人撰写"。** Anthropic 自己的文档指出,仅仅是经 Claude 校对或翻译过的人类文本也会带上标记。而没有标记能证明的就更少了:旧模型、短段落或大幅编辑过的文本,都会让真正的 AI 文本得出干净的结果。
- **短文本和低自由度文本携带的标记很少。** 证据随长度增长而积累,而只有唯一正确续写的文本(代码、引文、事实列表)给骰子留下的冗余空间太少,藏不了任何东西。
- **某些标记能经受住改写。** 基于词本身而非其邻居的密钥方案表现好得多:同义改写会保留足够多的原词,使大部分标记幸存下来。(它们的弱点不同:到处复用的着色可以从大量输出中被逆向工程出来。)还有一些标记藏在语义之中,同义改写会部分保留它们。这些是另一个问题。
- **生产参数未公开**(上下文长度、密钥结构、阈值),因此这里描述的是方案*家族*,而非任何特定部署。
由 James Padolsey (https://j11y.io/) 在 NOPE (https://nope.net/) 撰写,作为 declaude (https://declaude.org/) 的配套文章。交互式图表是带有演示参数的教学模型,并非任何提供商的实际方案。
**来源与延伸阅读。** Kirchenbauer 等人,《*A Watermark for Large Language Models*》(ICML 2023)· Dathathri 等人,《*Scalable watermarking for identifying LLM outputs*》(SynthID-Text,Nature 2024)· Aaronson 与 Kirchner,《*Watermarking GPT outputs*》(2022)· Kirchenbauer 等人,《*On the Reliability of Watermarks for Large Language Models*》(ICLR 2024)· Sadasivan 等人,《*Can AI-Generated Text be Reliably Detected?*》(2023)· Zhao 等人,《*The Mark Fades: Adaptive Evolutionary Paraphrase-based Attack*》(ACL Findings 2026)· Anthropic,《*How Claude marks AI-generated content* (https://support.claude.com/en/articles/16266773-how-claude-marks-ai-generated-content)》(帮助中心,2026 年 8 月)· 我们自己的已知密钥实验:重新创作将 KGW/EXP 检测能力击落到随机水平(AUC 0.99 → ≈0.5),无上下文依赖的 unigram 标记则能幸存(0.73–0.84);对于语义空间的标记,大纲级重新生成是我们已知的唯一解法。
面向专业读者:第 4 步判定背后的残差证据模型是 z ≈ f·√N·z1(幸存比例 f、文档长度 N、每词元强度 z1)。图表统计的是词;实际检测器统计的是模型自带分词器的 token。形状相同。
相似文章
资源 - AI文本水印:工作原理与规避方法
本文介绍了一个教育资源,详细说明了AI文本水印的工作原理以及规避方法,内容由Anthropic和European Commission近期关于标记AI生成内容的公告触发。
AI水印在纯文本中的隐藏位置(5分钟阅读)
Anthropic 宣布将对所有 Claude 文本输出添加水印,这种水印嵌入在词语选择中而非字节中,几乎无法察觉;本文分析其工作原理以及文本水印可以隐藏的层级。
Text AI watermarks will always be trivial to remove
The article argues that text AI watermarks are inherently trivial to remove, exploring the EU AI Act's watermarking requirements and the technical challenges of text steganography, including Google's SynthID approach.
直接在提示词中绕过AI水印
本文解释了像Claude这样的语言模型中AI水印的工作原理,并提出了一种通过在提示词中插入随机单词然后删除它们来移除水印的方法。
Anthropic 的文本水印标志着 AI 检测的新前沿
Anthropic 开发的文本水印技术标志着 AI 生成内容检测的新前沿。