Claude 的文字水印,成功把人类套路了

爱范儿
个人专栏
热度: 5273

Anthropic为Claude模型引入基于SynthID的文本隐形水印技术,通过微调token选择概率嵌入统计性标识,但该水印易被同义改写、模型重生成等手段破坏,引发关于AI生成内容可检测性、语言表达本质及技术干预写作自主性的深层讨论。

摘要由 Mars AI 生成
本摘要由 Mars AI 模型生成,其生成内容的准确性、完整性还处于迭代更新阶段。

上周,Anthropic 宣布将为 Claude 生成的文本加入一种「隐形水印」,周末它终于补上了技术细节。

跟先前猜测的差不多,Claude 的文本水印将采用 Google DeepMind 开发的 SynthID。答案也比「往文字里塞几个特殊字符」更复杂,水印并不是写完以后再盖上去的,而是在 Claude 写下每一个 token 的过程中,被一 点点 「写」进文字里。

同一时间, 反检测 的工具已经出现。GitHub 上开始有人制作专门针对文本水印的移除工具。

SynthID

这的确不是一个抵抗力很强的技术,用大白话说,「拿其它模型洗一洗」,就能破坏隐形水印的效力。

这让 Claude 的水印一时间变得很尴尬,而且,细思极恐:Claude 为了让一段文字以后能够被认出来,需要改变词语被选中的概率;而想让它不被认出来的人,最自然的反击方式之一恰恰就是,重新改写这些词。

Claude 的水印,不是「藏」进去的,而是「写」进去的

理解这场攻防,首先得知道,早就已经出现的 SynthID 到底在做什么。

SynthID

大语言模型生成文字时,并不是先在脑子里想好一个完整句子,再逐字输出。每一步,它都会根据已经出现的上下文,为下一个可能出现的 token 计算一组概率,然后从中完成一次选择。

为了方便理解,假设 Claude 正在补完「这部电影真____」这个句子。此时,它可能面对许多选项,其中几个概率较高的选择是:

「好看」40%

「厉害」20%

「精彩」10%

……

SynthID 不会规定 Claude 必须选择某一个词,也不会删掉某个选项,它做的事情更像是在模型真正做选择以前,根据一套只有检查方知道的规则,轻微调整部分候选 token 的得分,让其中一些选项比原来更容易被抽中。

到了下一个 token,因为上下文已经变化,概率会重新计算,被偏好的候选项也会跟着变化。因此,并不存在一张固定的「Claude 水印词表」,即便某个词这一次可能有利于水印,换一个上下文就未必如此。

单独拿出其中任何一个词,人也几乎不可能看出问题。真正能够被检测的,是大量生成选择累积以后留下的统计模式。

SynthID

可以简单粗暴的,理解成一场只有选择题的考试,老师没有直接「透题」,而是偷偷告诉自己偏心的学生:遇事不决,就选 C。

一道题碰巧选中当然毫无意义,十道题也可能只是巧合,毕竟 C 选项确实存在。

但几百道题之后,如果只有这个学生的选择,无论正确还是错误,C 选项的出现异常的高,而且一次又一次与「这个出题老师爱出 C」的规则吻合,你就很难解释这是完全意外的。

水印检测做的事情类似,它并不是在寻找「这句话只有 Claude 才会写」的唯一性证据,而是在问:在一段足够长的文字里,每一个生成节点上都有许多种可能的选项,但为什么最终落下来的 token,会持续呈现出与一套秘密规则相符的统计偏好?

SynthID

「隐形」是在这个意义上的,水印并不对应一个肉眼可以定位的字符,依靠的是统计规律。但这同时留下了另一个问题——既然信号本身就寄生在 token 的选择上,那么重新选择一次 token,也天然可能破坏这套统计关系。

Claude 改一遍,用户再改一遍

如果水印藏在文件元数据里,攻击者可以删元数据;如果水印藏在不可见 Unicode 字符里,可以把特殊字符清理掉。但 SynthID 的麻烦恰恰在于,它和文字本身揉在了一起。

想把水印拿掉,又不能直接把整段话删除,那么最直接的思路就变成:在尽量保留原意的情况下,重新组织这串 token。

SynthID

换一个同义词、把主动语态改成被动语态,或者,更直接的——干脆交给另一个模型重新「洗」 一遍,我洗我自己。

这些都可能让原本累积起来的统计关系被削弱,博主 Daring Fireball 为了解释这一点,以改写工具 Declaude 作为一个最直观的例子:原本它用途是「嫌 AI 味儿太重,洗一下」,这种改写其实就可以顺手把 Claude 刻意留下的痕迹也抹掉。

市面上也一直流传着 Pangram 之类工具,用来检测文本有多大程度有 AI 参与,则让这种攻防进一步从理论讨论变成了现成需求。具体攻击方法可以不同,但目标高度一致:尽可能保留内容,同时破坏检测器赖以判断的 token 序列。

SynthID

好一场酣畅淋漓的捉迷藏啊。

为了查出有没有 AI 参与,模型在生成时得轻微调整词语选择;为了逃过检查,用户要重新选词。为了让水印经得起普通改写,水印系统又需要提高强度;用户就继续去找尽量不改动原意、却更有效破坏统计信号的方法。

从技术上看,这是一场很标准的攻防,防御方想让信号在复制、编辑、格式变化之后继续存在,攻击方则试图用最低成本让检测失效。

文本的情况又和图片、音频有一点很不一样。图片里的水印可以尽量藏在不影响观看的空间里,文字水印能够利用的「空间」,本身就是一个个具体词语、句式和表达选择。

SynthID

图片来自:Atlasiko

因此,攻防每往前走一步,就需要把手伸向文章本身。

更尴尬的是,这套机制天然对有意规避的人和普通用户并不完全对称。真正决定作弊的人,可以主动寻找非水印模型、重写工具或者反复「洗稿」;没有规避意识的人,可能要默认接受带有水印约束的生成结果。

到头来,最容易被水印标记的,正是那些没想躲着它的人。

所有人都在改词,但谁还在乎这句话怎么写?

捉迷藏到最后,已经不是谁能抓到谁、谁能避免被抓到。

水印方和去水印方虽然站在完全相反的位置上,却共享了同一个前提:一句话似乎可以被拆成「需要保留的意思」和「可以修改的措辞」。

只要大意没有发生明显变化,具体词语,就可以成为技术系统的操作空间,不管是由水印系统操作,还是作者自己来操作。

技术博主、Daring Fireball 的作者 John Gruber 对文本水印最大的质疑,其实可以换成一个更简单的问题:意思差不多,是否就代表文字没有改变?

SynthID

我们可以来对比这样两句话:

「他终于答应了。」

vs

「他终于松口了。」

两句话都可以描述「一个人最终同意了某件事」,但第二句天然多了一层此前抗拒、经过拉扯才让步的味道。

这两句话同样在传达「意思」上的确差不多,但对真正在意写作的人来说,并不是可以随手互换的两句话。哪怕是在日常生活里,这两句话也承担了略微不同的意味。

Anthropic 和 Google 都强调,水印设计目标是不改变文本的语义、质量和可读性;一个很轻的概率偏置,在实际输出里是否会造成能够被人感知的质量差异,也需要另外的证据。

SynthID

但有一件事已经发生了变化,那就是模型在选择一个词时,多出了一个与「怎样把这句话写好」无关的优化目标。

过去,一个生成系统至少在理想状态下,是在准确、清楚、自然,在符合用户要求和符合人类书写习惯等目标之间做平衡。

加入文本水印以后,它还需要兼顾「这段文字未来能不能被水印系统认出来」;而当用户试图反制时,文字又多了一轮「怎样改到认不出来」的优化。无论是出于什么目的,双方都可以说,自己尽量没有改变「意思」。

写作从来都不在于可以脱离词语、保留意思,它们是唇和齿的关系,唇齿相依,文本并不是先有了一团完整的「意思」,再随便挑一组近义词装进去。具体选择什么词,本身就在制造「意思」。

Claude 想证明「这句话我碰过」,用户想做到「你认不出来」。当所有人都开始为了证明身份而修改一句话时,「这句话本来应该怎么写」——已经被挤到角落里去了。

这场争执到最后,争夺的并不是技术够不够隐形、无感,而是语言本身那些原本属于风格、节奏和对表达精确度的追求,还有没有容身之处。

本文来自微信公众号“APPSO”,作者:发现明日产品的

声明:本文为入驻“火星财经 专栏”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
本内容旨在传递行业动态,不构成投资建议或承诺。