实测 Claude 的水印

Anthropic刚刚开始在Claude的输出上打标记,并已签署欧盟《人工智能法案》第50(2)条AI生成内容透明度实践守则,证实其从2026年8月2日起,已在新的Claude模型生成的文本中嵌入机器可读的水印。

这个公告正好是个好借口,可以真正解释一下这一类别技术的工作原理,因为大多数人以为水印意味着在内容中塞入隐藏代码,几个不可见字符或鬼鬼祟祟的空白,像条形码一样藏进去。

它并不是那样工作的。

水印就是内容本身,就是模型选出的那些实际词汇。一旦你明白它是怎么运作的,你就会开始注意到整个系统在哪些地方比听起来更摇摇欲坠。

Anthropic还没有公布Claude水印背后的确切机制,所以目前还不清楚这将如何影响输出。

下面讲述的内容以Google的SynthID为基础——这是该类技术公开文档最清晰的一个例子——以及开放的C2PA标准,它是我们能得到的、最接近Claude系统可能样子的公开参照点。

1、什么是水印?

每隔几周就有人问:AI公司是不是在生成文本里藏着不可见的Unicode字符或零宽空格,一种你用查找替换就能剥掉的数字秘密握手。这种方法在某些场合存在,但可以轻易被击破。把文本复制进一个纯文本编辑器,"水印"就没了。

正经玩家不是这么干的。

Google为此构建了SynthID。OpenAI也采用了它,用于它生成的图像和音频,但尚未确认用于文本。还有一个独立开放的行业标准叫C2PA(内容溯源与真实性联盟),处理相邻的领域。

Anthropic已确认Claude现在也会给自己的输出打标记,对生成的文本使用文本水印,对生成的文件使用符合C2PA的元数据,这是签署欧盟《人工智能法案》第50(2)条实践守则的一部分,自2026年8月2日起生效。

该公司没有在技术层面公布其文本水印到底如何运作,所以它与SynthID在底层有多少共通之处尚未得到证实。它们都不依赖隐藏字符,因为隐藏字符撑不过第一次转述、截图,或被剥离格式的平台。

2、上下文哈希水印是如何工作的

通过Gemini和SynthID这个最清晰的公开例子,最容易看清实际机制。语言模型不会挑一个精确的下一词。在每一步,它会给一组合理的候选项打分,通常从最强的候选项里采样,其随机性由"温度"(temperature)控制。

SynthID改变了采样的方式。在每个生成步骤,模型提供方持有一把秘密的256位密钥。密钥与前面的token结合,经过一个哈希函数,哈希输出确定性地把词表分成"绿名单"和"红名单"。

模型不是在其全部顶级候选项中自由采样,而是被推向候选项里落在绿名单上的那些。在足够长的一段文本上,每一步都这么做,最终文本就会包含比纯靠偶然所能产生的更多的绿名单token——这个模式读者不可见,但任何持有同一把密钥的人都能复原出来。

对没有密钥的人来说,这看起来和普通的随机采样完全一样,因为绿名单和红名单在每一步都会不可预测地重新洗牌,没有密钥做排序,就无法分辨哪些候选项被"推动"了。

从功能上讲,它就是随机的。水印不会让你损失输出质量,因为模型无论如何都还是从它的顶级候选项中挑选。它只是让一把密钥来决定这些顶级候选项中谁占上风,而不是掷骰子。

3、一个具体的例子

下面是一个简化版本:

假设一个模型正在完成"我爱蛋糕。我最喜欢的甜点是___",顶级候选是巧克力、黑森林和芝士蛋糕。正常情况下模型会基于温度采样其中一个。

使用SynthID时,提供方持有一把密钥,把它与上下文(比如前面几个词)以及每个候选本身结合起来。它给"巧克力"对照"密钥+ 最喜欢的甜点是 + 巧克力"打分,给黑森林以同样的方式打分,依此类推,然后挑出得分最高的候选。假设它落在了巧克力上,仍然是模型自己自然的候选之一,只是这一轮是密钥青睐的那一个。

下一个token重复这个过程:下一个候选集合,也许是派、冰淇淋或奶昔,对照密钥和更新后的上下文打分,得分最高的再次胜出。

在一段文本上跑完这个过程,你会得到一个特定的、可重复的模式——读者看不见,但任何持有密钥的人都能校验。

检测是一次单样本统计检验:如果每一步词汇表的γ比例是绿的,那么一段未加水印的文本按理应该有大约γ比例的词偶然落在绿名单上。一段加水印的文本则远远超过这个比例。其差距用标准差来衡量,就是z分数。

4、为什么这种统计手段让它难以伪造

这正是"稳健性"这个说法真正站得住脚的地方。检测不需要精确匹配,只需要持续地、比偶然预测更频繁地偏向绿集合。如果每一步大约有四分之一候选是绿的(这个比例通常叫γ),那么未加水印的文本应当有大约四分之一的词落在绿集合里。

加水印的文本则远高于此,而这个差距——用标准差衡量的z分数——就是被检查的对象。在几百个token上,真正的水印通常会把z分数推到单个位数的高位,按一般统计标准这是强有力的证据,而且不需要每一个token都配合。

这个统计余量也是水印能顶住部分编辑的原因之一。把文本切碎、重排章节、改写几句,未动过的部分仍然各自携带着自己的信号份额,所以总分下降,但不一定会消失。不过它有真实局限。大量编辑、翻译或整体改写可以削弱甚至彻底移除信号,这也是Anthropic自己在Claude水印上附上的告诫。

5、假设开始摇晃的地方

这是多数讲解文章跳过的一部分,在你把水印当作一个已解决的问题之前,值得坐下来想一想。

上面的数学假设每个token都有真正的候选多样性。大量文本并没有这一点。无论是一段代码、一列事实性日期,还是一个只有一种固定拼法的名字,往往只有一个正确的下一token,或者接近只有一个。没有有意义的候选池,就没有有意义的水印信号,无论打分函数有多好。低熵内容(比如短的LinkedIn帖子)几乎是无意中就抗水印的。

上面的置信数字还假设了足够长的样本。短输出——一条推文、一个标题、一句两句话的回复——根本不给统计留出发挥空间。你需要足够的体量,才能让模式变得"偶然不可能"而非仅仅"不寻常"。

跨模型清洗是另一个缺口。

SynthID能告诉你一段文本是否来自带特定密钥的Gemini系列模型。它无法告诉你底层草稿是否出自另一家提供方的模型,而大量多轮改写(在一个模型里起草、在第二个模型里润色、翻译过去再翻译回来)会一层层地削弱任何单个模型的指纹。

C2PA在这里走了不同的路线:它在内容被创建和编辑时附上可验证的溯源元数据,更像一条监管链(chain of custody),而不是统计指纹。

这让它以一种token级水印做不到的方式对图像和视频有用,但它依赖链条中的每一个工具真正参与进来,这是一个协作问题。

检测通道本身就是不对称的。你需要密钥本身,或接触到持有它的人,才能有把握地运行检查。声称无需这种访问就能识别水印文本的第三方"AI检测器"工具,大多只是对文风做模式匹配,而不是读取加密信号,它们的误报率恰好反映了这一点。

水印不是作秀;加密核心确实扎实,而且它能相当好地挺过日常编辑。但"原理上可靠"和"每个真实场景都可靠"是不同的命题,二者的差距正是大多数实际政策与产品决策所在之处。

6、如果你在用AI构建产品,这意味着什么

如果你的工作流依赖水印检测来可靠地捕捉AI生成的文本,那就围绕上面的边缘情况做规划,而不是围绕头条式的主张。长文内容是这个方法发挥最好的地方。短文案或几乎没有可选token的技术内容,以及任何经过多个模型或大量改写的内容,置信度会迅速下降,有时会降到零。

7、Claude的水印能被识别出来吗?

Anthropic还没有公布确切的方案(token偏置密钥、哈希函数、采样细节等),所以目前没有可能构建一个可行的检测器。除非有验证密钥,否则Anthropic之外没有任何人能做到这一点。

我决定把这些想法中的一部分付诸实测,构建一个小工具,走一遍这类方案通常如何从统计上运作(n-gram*/token频率偏置检测、在可疑的水印分布上做z分数检验),让你明白一个真正的检测器要找的到底是什么信号。

*n-gram = 一段文本中由x个相邻元素组成的序列

这里并没有真正的检测在发生,因为它不是Anthropic的密钥,所以在任何文本里都不该查出东西。我把自己未编辑的句子通过它跑了几次,还是偶尔出现一两个偏高的z分数——不是因为它检测到了什么,而是因为短文本上的z分数天生就有噪声。

于是我决定把整篇博文也送进去,得到了一个更有趣的结果:每隔一个词就被标红。这是因为检测器其实并没有给几千个独立的词打分,它是在给一个小得多的重复词对集合打分。

普通英语严重依赖一小群轮换登场的功能词——"the"、"a"、"of"、"in"、"is"、"and"——它们在任何合乎语法的句子里每隔几个词就会出现一次。

无论这把密钥碰巧如何哈希这些特定词对,其结果都会大致按照这些词本身落下的节奏被重放。这和前面测试中的非独立性问题是同一个,只是在长文本下更显眼:一撮固定的、确定性的掷硬币,被包装成了一个大样本。

8、等等,那意味着什么?

冷静,别忘了这根本不是任何意义上的真正密码破解工具。

但一个统计上站得住脚的检测方法,如果构建时没有考虑到真实语言有多重复,仍然可能在普通文本上产生一个看起来信心十足的错误信号。这不是缺陷,而且是这一整个水印类别所源自的真实研究中已记录在案的失败模式。

Kirchenbauer等人——"A Watermark for Large Language Models"(ICML 2023)背后的团队——提出了本文从头到尾一直在描述的绿名单方案。他们自己对检测统计量的讨论中,就埋着本文工具刚刚撞上的同一个问题:像"Barack Obama"这样重复出现的二元组(bigram),在第一次被哈希时就会得到一个固定的绿或红判定,之后这个精确词对的每一次重复都只是再次兑现同一个判定。他们在论文中直白陈述的最坏情况是:普通人类书写的文本,只要某个这样的短语重复得足够多,就会累积出虚高的绿token计数,被标记为机器生成——而它跟水印毫无关系。

同一个团队第二年跟进发表了"On the Reliability of Watermarks for Large Language Models"(ICLR 2024),那篇才是真正的实验。他们拿加水印的文本去做人类改写、LLM转述、混入更长的手写文档,然后测量检测的表现。结果出来了两件相互拉扯的事。

水印的好消息是信号比预期的存活得更好,即便在强人类转述下,平均经过约800个token后仍可被检测到,所用的阈值大多数领域都会称之为非常强的证据。

紧接着的坏消息是:被转述或混入的文本在统计上往往会泄漏原文中的n-gram,而这种泄漏会在本不该有任何记录的地方产生高置信度的检测。(这也是《圣经》经常被标记为AI所写的原因。)

9、关于Anthropic真实方案未知的部分

公开报道证实水印存在,自2026年8月2日起全局应用于Claude的输出,并且设计上对读者不可感知。Anthropic没有公布那些能让第三方构建真正检测器的细节:

  • 哈希函数,以及每个token使用多少前文上下文。
  • 绿名单比例(γ)以及采样向它偏置的强度。
  • 密钥或密钥轮换策略。
  • 是否根本存在一个公开的验证端点——报道没有提到文本侧有(不像图像侧的C2PA,它按设计就是一个开放、可独立验证的标准)。

最后一个区别很关键,因为图像侧的溯源(.svg/.png/.jpg上的签名C2PA元数据)是一个已发布、可互操作的标准,你今天就能用独立工具实际核验。文本水印在目前公开的信息里并没有这样设计。

10、那么现在怎么办?

确实存在几个选项:

  1. 图像上的C2PA内容凭证:现在就能真实核验,用独立的验证工具即可,因为它是开放标准而非专有的统计信号。
  2. 通用的AI文本文体学检测器(GPTZero一类的困惑度/突发度工具):它们根本不读任何水印;它们靠写作风格猜。关于Anthropic这次上线的报道明确指出了它们不可靠,独立研究也表明它们对人类文本和AI文本都会足够频繁地误报,所以一个"检测到"或"干净"的结果本身并不是好证据,比如轻度编辑、翻译或短段落都会让它们进一步退化。
  3. 专门的Anthropic文本验证工具:截至本文写作时(2026年8月),在下面核查过的所有报道中都没有确认它公开可用。如果它发布了,那将是可靠核验真正水印的唯一方式,因为那是唯一持有密钥的一方。我个人不会排除他们拿这个变现的可能,但谁知道呢,真的。

原文链接: Putting Claude's watermarking to the test

汇智网翻译整理,转载请标明出处