AI Pulse

文本AI水印注定永远能被轻易移除

文本AI水印注定永远能被轻易移除

文本AI水印永远能被轻易移除

欧盟AI法案将于2026年8月开始执行[1],距离现在还有一个月。其中最大的新要求之一是第50条,该条款要求所有AI输出必须“可被检测为人工生成”。换句话说,如果大语言模型提供商想在欧盟开展业务,就必须对其输出应用水印[2]:一种隐藏签名,可用于识别AI生成的内容。

LLM文本水印是一个引人入胜的问题。像所有最好的工程问题一样,理论上难以完美解决,但有多种部分解决方案:例如,Google的SynthID,以及(正如我将要论证的)OpenAI和Anthropic使用的一些隐秘的Unicode技巧。观察AI实验室在年底前如何权衡这些取舍,将会很有趣。

为什么文本水印很难

去年年底,我在《AI检测工具无法证明文本是AI生成的》一文中写过AI水印。给图像加水印很容易,因为数字图像包含大量人眼无法真正看到的噪声。例如,你可以应用一条水印,比如“这二十个像素在这确切位置上将始终共享一种颜色”。文本则困难得多。与图像不同,文本是一种非常压缩的媒介:你无法对句子做任何人类不会注意到的更改(有一个例外,我们稍后会提到)。那么,你该如何给它加水印呢?

这本质上是一个文本隐写术问题(隐藏秘密代码),但由于明文不能随意操纵而变得更加困难。你为加水印所做的任何更改都会损害输出质量。例如,“每第五个字母是‘e’”,这将是一个很好的水印,但天真地应用会使AI输出充满拼写错误。能不能让模型自己想出如何满足水印约束?强大的AI模型足够聪明,可以处理这种约束[3],但这仍然会消耗推理时间,而这些时间本可以更好地用于解决用户的问题,并且会让模型听起来比实际能力差很多[4]。

我们需要水印来检测AI内容吗?

你真的需要水印吗?如果你是Anthropic,并且被要求能够验证你的模型是否生成了特定文本块,你不能简单地在每个模型上运行该文本,测量模型预测的词元与文本中每个词元的匹配程度吗?

并非如此。“某个问题所有可能的Claude Sonnet答案”的空间远大于“某个问题所有可能的加水印答案”的空间。换句话说,对于读起来像AI写的人类文本,你会得到太多假阳性。人类偶然写出像Claude风格文本的概率,远高于人类偶然复现水印的概率。

此外,为了给文本加水印而针对每个Anthropic模型运行文本,成本会高得令人望而却步。欧盟AI法案最终将要求像Anthropic这样的实验室为每个欧盟公民提供免费水印服务(见承诺2)。使用“运行模型”的方法是无法做到的。

SynthID 工作原理

据我所知,唯一声称对文本输出加水印的AI提供商是Google,他们使用一个名为SynthID的工具。其工作原理如下。

当LLM生成文本时,它会生成一系列词元(单词或单词块)。每一步,模型本身不会输出单个词元,而是输出其词汇表中所有(比如)100,000个词元的完整列表,每个词元都标注了它成为下一个词元的概率。ChatGPT或Claude Code等工具会半随机地从最可能的选项中选择以获取输出。这种半随机采样过程可以以可检测的方式受到影响。

例如,我们可以选择一种采样策略,比如“我们选择第二最可能的词元,然后第一,然后第二,然后第一,依此类推”。这仍然会产生高质量的输出,但你可以针对生成的文本重新运行模型,以验证模式是否成立。然而,这会使验证非常昂贵,而且对输出的任何微小调整都会破坏模式,从而破坏指纹。有更好的方法吗?

有。SynthID是一种根据前序词元为每个词元分配“分数”的过程(例如,将词元ID与其前三个词元的ID相加,然后取模5)[5]。为了应用水印,模型采用一种采样策略,比如“在前五个最可能的词元中,选择SynthID分数最高的那个”[6]。然后可以通过计算一段文本的SynthID总分来检测水印。如果它高得可疑,那么它很可能是AI生成的。

这基本上是常见建议的一种版本,即你可以通过使用破折号来识别LLM,只不过这里不是依赖关键词列表,而是依赖单词之间微妙的数学关系,这种关系人类无法识别。由于分配分数的过程很简单,水印检测的成本非常低。

通过同形字的Unicode水印

Google有一个复杂的数学理由解释为什么SynthID不会让模型变笨:据说SynthID评分足够随机,可以像正常的伪随机词元采样器一样工作,只是会在输出上留下可检测的指纹。但当然,这值得怀疑。例如,常见的推理设置是将温度设为零,这会始终选择模型最可能的词元。在这种情况下,你根本无法留下指纹(或者你必须忽略用户的偏好,转而选择第二或第三选择)。

如果你不能改变模型输出,你还能给内容留下指纹吗?嗯,某种程度可以。我相当确定OpenAI和Anthropic有时会应用花哨的Unicode技巧。例如,你可以遍历并替换普通的半角空格(Unicode U+0020)为三倍空格(Unicode U+2004)或全角表意空格(Unicode U+3000)。这些被称为“同形字”,你可以在这里找到更多。

当然,大量人类生成的文本也使用同形字。但编码一个同形字模式(例如“每三个空格变成一个三倍空格”)却很简单,这种模式在自然文本中出现的概率要低得多。与SynthID水印一样,基于同形字的水印可以非常廉价地检测出来。基于同形字的水印比SynthID应用成本更低:你甚至可以在客户端完全实现。

我不认为这是阴谋论。Claude Code肯定曾用这种方式标记来自中国用户的可疑请求(利用“Today's date”中撇号的同形字,不过他们后来收回了)。过去几年,我注意到当我从ChatGPT复制文本块并粘贴到VSCode时,有时VSCode会将部分或全部空格标记为不寻常的Unicode字符[7]。OpenAI和Anthropic是否在使用同形字作为AI生成的水印?我不确定。但他们肯定在使用同形字。

文本水印可以轻易去除

AI法案(特别是其相关的实践准则)要求水印“嵌入内容中,使其难以与内容分离”。然而,文本水印可以轻易去除。

要去除Unicode同形字水印,你只需将所有同形字替换为它们对应的“真实”字符。即使你只能使用相对较弱的无印LLM[8],你也可以通过要求该LLM转述文本来去除SynthID水印。因为水印固有地依赖于微妙的词汇选择,改写内容就会去除水印。你甚至可以手动操作,尽管那样它就不再是真正AI生成的内容了。由于会有某种免费的公共水印测试工具,你可以不断调整直到测试结果为阴性。

此外,AI法案要求水印技术“在技术上可行的范围内互操作”。这意味着AI提供商必须公布其水印过程,甚至可能尝试标准化应用同种水印。我看不出这如何与LLM文本水印所依赖的“通过隐藏实现安全”兼容。与图像和视频水印不同,文本水印始终能被轻易去除。

那么C2PA呢?

AI法案和实践准则大量提到了“数字签名元数据”。这里的思路是,你可以在文件元数据本身中包含AI披露信息,最好是以不可篡改的方式(例如,通过对文件内容的哈希值进行签名)。这个签名元数据过程基本上就是C2PA内容凭证。虽然你可以删除C2PA元数据,但你(理论上)不能伪造它,因此带有“由人类创建”元数据的文件可以被信任,而没有任何元数据的文件则会受到怀疑。

这篇博文已经太长了,无法深入探讨我对C2PA的看法,但我确实想说,C2PA并不能替代文本水印。它基本上只适用于文件。用实践准则的话说,就是“一种支持附加元数据的数据格式(例如,音频、图像、视频或容器化文本)”。聊天工具的输出(以及AI智能体的大部分输出)不是容器化文本,而是普通旧文本,因此无法被签名。对ChatGPT输出进行签名会是什么样子?没有可传递的工件。

我认为,Claude Code是否需要为你生成的任何HTML文件或PDF文件添加C2PA签名,这是一个有趣的问题。这似乎很难做好。但无论如何,AI法案也要求某种实际的水印。

结论

那么今年会发生什么?如果我必须猜测的话,我会说每家AI提供商(不仅是OpenAI或Anthropic这样的实验室,还有Fireworks或Groq这样的第三方提供商)都会在其推理堆栈前放置一个SynthID词元采样器。这可能仅限于欧盟用户,但也可能不限于此,因为SynthID至少和普通的top-k词元采样方法一样好。

然后,AI提供商将提供一个“检查水印”页面,该页面会重新分词用户提供的文本,运行评分,并检查是否高于某个阈值。根据互操作性条款被处理的严肃程度,提供商甚至可能标准化使用相同的SynthID设置,在这种情况下,可能存在一个由欧盟托管的“给这段文字加水印”页面。

我不认为基于Unicode的水印会被视为符合AI法案要求,但一些不想设置SynthID的提供商可能会尝试。无论如何,技术用户将能够随意去除水印,并且会有大量工具供非技术用户使用。

[1] 嗯,对于新系统是这样;现有系统则直到12月。
[2] 我不认为第50条的正文要求了这一点,但第133条序言和实践准则明确表明他们正在寻找水印。
[3] 即使加上额外的高强度思考,GPT-5.5也无法用“每第五个字母是‘e’”向我解释SynthID,但GPT-5.5-Pro生成了这个令人费解的禅语:“这些隐藏代码标记模型生成的图像、语音、视频、文章。踪迹探查:也许是模型制作的。也许抹去踪迹;也许留下踪迹。因此仅凭踪迹?”
[4] 我将与AI安全护栏的类比留给读者作为练习。
[5] 这是一个玩具示例。实践中,有多个不同(但数学上仍然简单)的评分方法组合在一起,包括一个随机种子。为什么要包含种子?否则水印会偏向同一组词元。
[6] 词元经过多轮淘汰互相评分,但我认为这更多是实现细节,并非理解SynthID核心原理所必需。
[7] 当这一情况公开后,OpenAI声称这只是模型的一个怪癖,这当然是可能的。
[8] 所有AI提供商可能都被法律要求加水印,但即使是微小的本地模型也足够好地转述文本。

阅读原文
📚 相关主题 监管安全

📬 订阅 AI Pulse

每天三次更新,不错过重要信号

▲ 回到顶部