文本水印难以可靠部署,欧盟 AI 法案合规路径分歧加剧
围绕欧盟 AI 法案第 50 条对 AI 生成内容「可检测」的强制要求,分析 SynthID 的原理局限,以及 Open…
距离欧盟 AI 法案(EU AI Act)开始执法仅剩一个月,其中第 50 条要求所有 AI 输出必须「可被检测为人工生成」,意味着在欧盟市场提供服务的 LLM 厂商必须为其输出打上可识别水印。然而,从文本这一特殊介质出发,业界对水印的可行性与有效性分歧正在加大,Google 的 SynthID 路线与 OpenAI、Anthropic 可能的 Unicode 隐写路线代表了两种截然不同的取舍。
文本水印为何本质上比图像更难
与图像、音频、视频不同,文本是一种高度压缩的介质。人眼无法感知的像素冗余并不存在于自然语言中——任何对句子的改动都会被人直接察觉,这使得「在不影响阅读的前提下嵌入隐藏签名」成为一个近乎矛盾的需求。把「每第五个字母都是 e」这类规则直接套用,结果只会是一堆拼写错误。
问题因此被归结为带约束的文本隐写:模型必须在保持输出质量的同时,把水印信号藏进去。强模型虽然有能力兼顾这一约束,但会消耗推理时间,并让模型表现得「比实际能力更笨」,这是厂商们不愿接受的代价。
SynthID 的工作方式与边界
截至目前,明确公开声明为文本输出加注水印的厂商主要是 Google,其方案名为 SynthID。
LLM 在生成文本时,每一步并非直接输出一个 token,而是先给出全词表(约 10 万 token)的概率分布,然后从高概率候选中半随机地选出一个 token 来推进生成。SynthID 的核心思想,是把这个采样过程向「可被检测」的方向轻微偏置:
- 给每个 token 按其前序 token 的 ID 计算一个分数(例如将其与前 3 个 token 的 ID 之和取模 5);
- 在采样时,模型从概率最高的若干个候选中,挑选 SynthID 分数最高的那一个;
- 检测时,对一段文本重新计算总分,若分数异常偏高,则高度疑似 AI 生成。
这一机制本质上是把「LLM 喜欢用长破折号」这类粗粒度风格信号,替换为 token 之间的精细数学关系——人无从察觉,计算成本却极低。
但 SynthID 也有明显短板:模型在 temperature=0 推理模式下始终选取概率最高的 token,水印根本无法嵌入;此外任何对输出的轻微改写都会打破原有模式,水印随之失效。
不动内容也能打水印:Unicode 同形字方案
在不触动 token 序列的前提下,依然有方式给文本「盖戳」。一种被推测正在被 OpenAI、Anthropic 部分使用的做法是 Unicode 同形替换:
- 将普通空格(U+0020)替换为三 em 空格(U+2004);
- 将普通省略号替换为 CJK 表意形式(U+2026 系列);
- 文本看上去完全一致,但底层字符序列带有统计偏差,可被建模检测。
这种方式的隐写密度低、检测信号弱,但几乎不影响模型推理流程,且兼容温度为零的确定性生成场景。其代价是——任何用户复制后用「安全替换」工具重新排版,水印就会消失。
水印绕过的不可避免性
无论是 SynthID 的采样偏置,还是 Unicode 同形替换,都不是「不可移除」的方案。前者会被改写或复述破坏,后者会被简单格式化清除。再考虑到欧盟要求厂商向每位欧盟公民提供免费水印检测服务(法案承诺 2),「把可疑文本回灌每个模型去比对」的成本高、误报多,并不可行。
这意味着,即便厂商在合规层面完成了技术部署,攻击者绕过水印的成本仍然极低。文章作者的核心结论是:文本水印在工程层面只能是「尽力而为」的弱信号,而非可强制执行的认证机制。欧盟 AI 法案第 50 条所设想的「可被检测」目标,在文本这一介质上,最终可能不得不依赖检测准确率与法律法规之间的妥协来落实。
