DeepMind 给 Gemini 回复打上水印,2000 万条实测质量零损失

2026-08-13

DeepMind 提出 SynthID-Text,用锦标赛采样在解码时埋水印,2000 万条 Gemini 回复实测质量无显著损失,检出率超过 Gumbel 等已有方案。

这篇在解决什么

LLM 生成的文本越来越难和人写的区分。识别 AI 文本有几条路:把所有生成内容存下来再查重(检索法,隐私和规模都成问题);训练分类器做事后检测(对非母语写作者有系统性偏见,而且模型越强分类器越容易失效);给生成文本打水印。水印里又分生成时打、生成后改写、改训练数据三种,前两种要么留可见痕迹要么不通用。生成式水印在解码时悄悄改采样,留下统计签名,检测时不需要再跑模型,听起来最干净。但此前没有谁真正把它跑在生产系统上,卡点是质量、可检出性、计算开销三条线要同时满足。这篇是 DeepMind 把自家 Gemini 跑通这件事的记录。

方法

生成式水印有三个部件:随机种子生成器、采样算法、打分函数。种子用滑窗法生成,把最近 H 个 token(H=4)和水印密钥一起哈希,每一步的随机性都能由前文复现。核心创新是采样算法,叫 Tournament sampling(锦标赛采样)。

它改的是「怎么挑下一个 token」。模型的下一个 token 分布照常算一次(这是大头开销,不变);锦标赛采样从这条分布里抽多个候选 token,两两配对,第一层用随机函数 g1 决定每对谁赢,第二层用 g2,逐层淘汰,到第 m 层(实验用 m=30)定出最终 token。每层用不同的 g 函数,每个 g 对 token 打一个伪随机分(实验用 Bernoulli(0.5),相当于抛硬币)。赢出的 token 偏向在多个 g 函数下都拿高分,水印信号就埋在这里。额外开销只是多抽几次样和做比较,不增加模型前向计算,所以便宜。

检测只算这段文本在所有 token、所有层上的 g 值均值。带水印的文本整体 g 值偏高,跟一个阈值比就能判。关键点:检测只要分词后的文本、水印密钥和种子生成器,不用碰模型。

水印能配成「无失真」:每场比试正好 2 个竞争者时,输出 token 的分布在平均意义上和原模型分布完全一致(单 token 无失真);配上「重复上下文遮蔽」能做到整段回复无失真(单序列无失真),实验就用这个配置。想要更强检出率,可以让每场比试多于 2 个竞争者,变成「失真」版,拿一点质量换检出率。

生产系统常用 speculative sampling(投机采样,小模型先猜几个 token、大模型验收)来加速。水印要落产就得和它兼容。作者给了两套结合算法:一套保检出率,一套保速度(配一个学出来的贝叶斯打分函数把检出率补回来)。

结果

质量最有说服力的是一次线上实验。在 Gemini(原 Bard)生产系统里,把一部分流量路由到带水印模型,等量路由到不带水印的,分析约 2000 万条回复的点赞点踩。带水印模型的点赞率只高 0.01%、点踩率只低 0.02%,都在 95% 置信区间内,统计不显著。另有一次小规模对照人工评测,Gemma 7B-IT 答 3000 个 ELI5 问题,语法连贯、相关性、正确性、有用性、总体质量五个维度都没显著差异。

可检出性用 TPR@FPR=1%(误报率卡 1% 时的真报率)衡量:

设置对比结论
无失真SynthID-Text vs Gumbel samplingSynthID-Text 更易检出,低熵(低温、大模型)时优势更大
失真SynthID-Text vs Soft Red List同等质量损失下,SynthID-Text 检出率明显更高

模型覆盖 Gemma 2B-IT、Gemma 7B-IT、Mistral 7B-IT。

计算开销:Gemma 7B-IT 在 4 块 v5e TPU 上,不加水印 15.527 ms/token,加 30 层锦标赛采样后 15.615 ms/token,延迟只增 0.57%(Gumbel 0.26%、Soft Red List 0.28%)。水印开销是常数,模型越大相对开销越小。

这套东西已经落在 Gemini 和 Gemini Advanced 上,论文称这是生成式文本水印第一次大规模上生产。

为什么重要

对从业者,这篇真正证明的是「无失真」和「可生产」能同时成立。以前的水印要么伤质量要么开销大,Google 用 2000 万条真实回复把「质量无损」这条最硬的质疑堵死了。如果你做的是自家 LLM 服务、想给自家输出加可追溯标记,SynthID-Text 是目前唯一在生产规模和真实用户反馈下被验证过的方案,代码也开源了(google-deepmind/synthid-text)。但如果你的目标是「检测别家模型的输出」,它帮不上,这是它根本性的边界。

局限与存疑

作者自己说得很清楚:生成式水印不是检测 AI 文本的完整方案,只能补位。几个硬限制:它要求生成本身带水印,服务方不配合就查不到;开源模型去中心化部署,没法强制打水印,这是大趋势下的真实软肋;对 watermark stealing(偷水印)、spoofing(伪造)、scrubbing(擦除)三类攻击仍然脆弱,改写、尤其用 LLM 改写会削弱信号。还有个工程弱点:模型分布熵很低时(回复太确定),没多少可埋信号的余地,检出率会掉。

存疑的地方:所有对比都基于自家的 ELI5 评估设置,「比 Gumbel / Soft Red List 更易检出」依赖这套 TPR@FPR=1% 口径和选定的打分函数(实验用学出来的贝叶斯打分函数),换数据集换对手未必稳。线上 2000 万条只看点赞点踩,这俩信号噪声不小,「质量零损失」更准确的说法是「在这个粗糙指标上没测出损失」。

术语

原文与代码

社区讨论

全部论文解读