大型语言模型 (LLM) 正在重塑互联网。从生成新闻文章到编写代码,机器生成内容的数量正在呈爆炸式增长。但这股能力背后也有阴暗面: 幻觉、偏见,以及大规模制造虚假信息的可能性。如果网络上充斥着数以百万计的 AI 生成文章,我们要如何信任所读到的内容?更进一步说,如果未来的 AI 模型是基于今天 AI 的输出进行训练的,我们不仅会陷入质量退化的反馈循环,还会面临更多问题。

为了解决这个问题,研究人员转向了水印技术 (Watermarking)——即将一种隐藏的、可检测的签名嵌入到 AI 生成的文本中。

然而,当前的水印技术存在一个主要瓶颈。最有效的方法需要访问模型内部的概率分布 (即 Logits) 。如果你使用的是 OpenAI 或 Google 等提供商的 API,你根本无法获得这些 Logits。这使得第三方无法有效地验证内容来源。此外,现有的水印技术通常非常脆弱;简单的改写往往就能将水印清洗得一干二净。

在这篇文章中,我们将深入探讨一篇提出巧妙解决方案的新研究论文: POSTMARK 。 POSTMARK 是一种“黑盒”方法,意味着它不需要窥探模型内部。它在文本生成之后才应用水印,并且对攻击具有惊人的鲁棒性。

“绿名单”与“红名单”的问题

要理解为什么 POSTMARK 是必要的,我们需要先看看标准水印是如何工作的。目前主流的方法 (如 Kirchenbauer 等人的算法) 是在生成过程中进行干预。

当 LLM 生成句子中的下一个词时,它会计算词汇表中每个词的概率。标准水印算法使用前一个词作为种子来生成随机数,将词汇表分为“绿名单”和“红名单”。然后,模型会被强制 (或强烈建议) 从绿名单中选择一个词。

对人类来说,文本看起来很正常。但对于知道种子算法的检测器来说,文本中包含的“绿色”词汇数量在统计上是不可能的。

局限性:

  1. 无 Logits 访问权限: 除非你拥有该模型,否则无法实施此操作。如果你是在 GPT-4 之上构建应用程序,你无法强制 GPT-4 优先选择“绿名单”词汇,因为你无法控制采样循环。
  2. 改写攻击的脆弱性: 这些方法依赖于特定的 Token 序列。如果用户获取输出并要求另一个 AI “重写这段话”,Token 序列就会改变,绿/红比例会恢复正常,水印也就消失了。
  3. 低熵问题: 在“低熵”场景中——比如回答一个只有一个正确答案的事实性问题——如果唯一的正确词汇在红名单上,模型就无法选择绿名单的词。

POSTMARK 登场: 通过重写添加水印

研究人员提出了一种完全不同的范式。POSTMARK 不是在生成期间添加水印,而是一种事后 (post-hoc) 方法。它获取任何模型的已完成文本,并通过重写来注入签名。

其核心直觉简单而强大: 文本的语义 (含义) 在添加水印或改写后不应发生剧烈变化。

因此,POSTMARK 不基于精确的 Token 序列,而是基于文本的含义来生成水印。

架构

POSTMARK 管道包含三个独特的模块: 嵌入器 (Embedder)秘密表 (SecTable)插入器 (Inserter)

图 1: POSTMARK 水印添加和检测过程。给定一些未加水印的输入文本,我们使用 EMBEDDER 生成其嵌入,并计算其与 SECTABLE 中所有词嵌入的余弦相似度,执行 top-k 选择和额外的语义相似度过滤以选择一个词列表。然后,我们指示 INSERTER 通过重写文本来包含所有选定的词,从而添加水印。在检测期间,我们要同样地获取水印词列表,并检查输入文本中存在多少个这样的词。

如上图 1 所示,该过程是一个流水线:

  1. 生成 (Generation): 一个 LLM 生成初始的、未加水印的文本。
  2. 嵌入 (Embedding): 文本通过一个嵌入器 (如 OpenAI 的 text-embedding-3-large) 。这将文本转换为代表其语义含义的密集向量。
  3. 词汇选择 (“秘密”) : 这是系统的加密核心。系统维护一个 SecTable , 它将词汇表中的词映射到随机的向量嵌入。系统将输入文本的嵌入与此表进行比较,根据这个秘密映射找到与文本“语义接近”的词。
  • 注意: * 它不仅仅是随机挑选词汇。它是基于文本含义和秘密表的计算来选择词汇的。这确保了如果文本被改写 (保留其含义) ,系统很可能会再次选择同一组*水印词。
  1. 插入 (Insertion): 系统创建一个“水印词”列表 (例如,“protective”、“drove”、“surprised”) 。然后,它将原始文本和此列表传递给 插入器 (一个遵循指令的 LLM) ,提示语为: 重写此文本以包含这些词。

结果是一段连贯的文本,其中携带了由其自身含义决定的特定隐藏词汇载荷。

检测机制

检测水印遵循类似的逻辑。你不需要原始文本,但你需要 嵌入器SecTable

  1. 获取可疑文本 (候选文本) 。
  2. 生成其嵌入。
  3. 使用 SecTable 重建如果该文本被加了水印应该包含的词列表。
  4. 检查文本中实际出现了多少个预测词。

论文定义了一个存在分数 \(p\) 来量化这一点:

计算存在分数 p 的公式。

在这里,分数 \(p\) 是在文本中找到的预测水印词的比例。为了对轻微的变化 (如 “run” 与 “running”) 保持鲁棒性,该方法不要求精确匹配。如果在文本中存在语义相似的词 (余弦相似度 \(\ge 0.7\)) ,则算作该词“存在”。如果 \(p\) 超过某个阈值,该文本就会被标记为已加水印。

实验结果: 关键在于鲁棒性

POSTMARK 的主要主张是鲁棒性。如果攻击者改写文本,具体的词可能会改变,但语义含义通常保持不变。因为水印词源于语义,检测器应该仍然会寻找相同的词。即使改写器删除了一些,剩余的词也应该足以触发检测。

研究人员将 POSTMARK 与 8 种基线算法进行了比较,包括标准的“绿/红名单”方法 (KGW) 以及 Unigram 和 EXP 等较新的技术。

表 1: POSTMARK 与基线的比较。

上方的表 1 展示了结果。关键指标是 1% FPR (假阳性率) 下的 TPR (真阳性率) 。 这衡量了系统在保持极低误报率的同时正确检测水印的频率。

数据中的关键结论:

  • 改写前: 几乎所有方法都表现良好 (90% 以上) 。
  • 改写后: 这才是分出胜负的地方。看看 LLAMA-3-8B-INST / OpenGen 这一行。标准的 KGW 方法下降到了 41.4% 。 EXP 方法更是崩盘至 2.2%
  • POSTMARK 的表现: 在同一任务中,POSTMARK 在改写前的检测率为 91.8% (略低于其他方法) ,但在改写后保持了巨大的优势。不过请注意,在表 1 中,Llama-3-8B-Inst OpenGen 的特定条目显示 POSTMARK 为 1%,这似乎是论文文本中提到的异常值或特定配置问题,但总体而言,观察 Mistral-7B-INST , POSTMARK 保持在 89.8% 的高位,而其他方法则举步维艰。
  • 黑盒比较: 唯一其他的“黑盒”基线 (使用同义词替换) 明显较弱,改写后下降到约 20-25%。

熵的独立性

一个微妙但关键的发现是 POSTMARK 如何处理“低熵”模型。经过 RLHF (人类反馈强化学习) 训练的现代模型往往非常自信且重复性高 (低熵) 。

基于 Logits 的水印在这里很难奏效,因为如果“绿名单”的词不是绝对的最佳匹配,模型就会拒绝选择它们。然而,POSTMARK 并不关心生成概率。它是在事后重写文本。这使得它非常适合我们今天使用的高度对齐、指令微调的模型。

模块化与开源

POSTMARK 的优势之一是其模块化。你可以更换嵌入器或插入器。虽然主要实验使用了 OpenAI 的 GPT-4 和嵌入模型,但作者也测试了开源配置。

表 2 显示了开源实现的实验结果。

如表 2 所示,使用 Llama-3-70B-Instruct 作为插入器, Nomic-Embed 作为嵌入器,其结果与闭源版本相当 (TPR 为 100/52.1 对比 99.4/59.4) 。这意味着该方法完全可以离线部署,或由确数据隐私的组织部署。

但它会破坏文本吗?

水印技术最大的担忧是它会降低写作质量。由于 POSTMARK 主动插入特定词汇,存在文本变得生硬或不自然的风险。

为了测试这一点,作者进行了广泛的质量评估。首先,让我们看看系统实际上做了什么样的编辑。

表 3: POSTMARK 所做编辑的示例。

表 3 显示插入器 (GPT-4) 非常复杂。它不仅仅是把词塞进去;它将词编织进叙述中。

  • 澄清 (Clarification): 它可能会添加 “of imprisonment” (监禁) 来澄清 “sentences” (判决/句子) 。
  • 隐喻 (Metaphors): 它可能会添加像 “wears an armor of resilience” (身披坚韧的铠甲) 这样的短语,以包含 “armor” (铠甲) 和 “resilience” (坚韧) 这两个词。
  • 新细节 (New Details): 它有时会添加看似合理的细节来适应这些词,这是一把双刃剑 (将在下文的事实性部分讨论) 。

自动化质量指标

研究人员使用“以 LLM 为裁判 (LLM-as-a-Judge)” (使用 GPT-4-Turbo) 来比较加水印文本与未加水印文本以及其他基线的质量。

表 6 和表 7 显示了软胜率和质量-鲁棒性的权衡。

在表 6 中,“软胜率 (Soft Win Rate)”表示裁判更喜欢加水印文本 (或平局) 的频率。与 Unigram (23-59%) 等基线相比,POSTMARK 的胜率显著更高 (64-74%)。

表 7 强调了 权衡 (Trade-off) : 随着插入更多词汇 (更高的 \(r\),即插入率) ,鲁棒性上升 (更容易检测) ,但质量下降。POSTMARK@12 (插入相当于文本长度 12% 的词) 似乎是最佳平衡点。

语义保留

含义改变了吗?作者计算了原始文本和加水印文本之间的余弦相似度。

表 4: 未加水印输出与加水印输出之间的平均余弦相似度。

表 4 显示了极高的相似度得分 (~0.94 - 0.95),表明虽然措辞发生了变化,但核心信息保持完整。

人类评估

指标很有用,但人类偏好才是金标准。该研究聘请了注释员并排比较文本。

图 2: 成对偏好人类评估结果。

图 2 揭示了一个令人惊讶的结果: 对于强 (@12) 和弱 (@6) 配置,人类在绝大多数时间里认为加水印的文本 “至少与原文一样好” (由于可视化中叠加了胜利+平局,总数 > 100%) 。在许多情况下,像 GPT-4 这样的强模型进行的重写步骤实际上提高了连贯性和趣味性。

此外,人类能发现水印词吗?

  • 答案: 不能。
  • 注释员被要求标出“不协调”的词。他们的 F1 分数仅为 0.06。他们根本无法将插入的水印词与文本的其余部分区分开来。

枢纽性问题 (The Hubness Problem)

一个值得注意的技术细节是水印词的分布。我们是否在反复插入相同的词?

图 3: 水印词频率分布。

图 3 显示,虽然大多数词很少被使用,但存在“枢纽词 (hub words)” (最右边的条形) ,它们被频繁选中。这是高维向量空间中的一种已知现象。虽然这不是致命缺陷,但它表明 SecTable 的未来版本可以进行优化,以确保插入词汇的分布更加均匀。

结论

POSTMARK 代表了 AI 文本检测向前迈出的重要一步。它将范式从操纵概率分布 (这需要拥有模型) 转变为语义水印 (任何人都可以做到) 。

主要收获:

  1. 无 Logits (Logit-Free): 它适用于你只能获得文本输出的 API。
  2. 改写鲁棒性 (Paraphrase Robust): 通过将水印锚定在含义而非特定措辞上,它比现有方法更能经受住重写。
  3. 高质量 (High Quality): 由有能力的 LLM 完成的重写步骤保留了 (有时甚至增强了) 可读性。

随着我们迈向一个由 AI 生成主导的网络世界,像 POSTMARK 这样的工具提供了一种在不影响内容质量或不需要闭源 AI 巨头合作的情况下验证来源的方法。虽然没有一种水印是牢不可破的,但对于任何试图抹去 AI 生成文本归属的人来说,POSTMARK 显著提高了门槛。