用别人的回答训练模型,为什么还会被发现?聊透模型水印

1 阅读13分钟

最初让我对模型水印产生兴趣的,是一个问题:

只把闭源模型的回答拿来训练,不复制代码,也碰不到它的参数,为什么仍有可能被发现?

比如,向一个能力很强的模型提问,收集几十万组问答,再用这些数据训练自己的模型。表面上,得到的是一批普通文字,看不出它们和其他文章有什么不同。

但文字里可能带着看不见的标记。新模型在学习这些回答时,除了学到知识和表达方式,也可能学到一部分标记留下的规律。

这就是模型水印有意思的地方:它既能帮助判断一份内容的来源,也可能成为追踪训练数据的线索。

一、模型水印是什么?藏在内容里的“暗记”

提到水印,很容易想到图片角落里的 Logo,或者视频中半透明的账号名。这些标记直接告诉观看者:内容来自哪里。

模型水印的目的与此相近,但很多水印不会直接展示出来。

一段回答读起来很正常,一张图片看起来也没有多余的图案,配套的检测工具却可能从中找到事先埋入的标记。

可以把它理解为:生成内容时,顺便留下一套机器能够识别的暗记。

不同内容,藏标记的方式也不同:

内容类型标记可以藏在哪里
文字模型选择用词的细微规律中
图片肉眼难以察觉的像素变化中
音频、视频听觉或视觉不容易察觉的信号变化中

Google 的 SynthID 就覆盖了这些内容类型,但文字、图片和音视频各有对应的技术方案。

另外,“模型水印”也可能指直接植入模型内部、用于验证模型归属的标记。这里主要聊的是生成内容中的水印,以及这些内容被拿去训练后留下的影响。

二、为什么要加水印?内容越逼真,来源越难判断

过去,AI 图片经常会露出明显破绽:手指数量不对,文字扭曲,物体结构奇怪。如今,许多图片只看一眼已经很难分辨。

文字也是如此。一篇结构完整、语言流畅的文章,可能来自作者,也可能由模型生成后稍作修改。

仅靠“看起来像不像”,判断会越来越不稳定。水印提供了另一种办法:在生成时就留下标记,之后再用工具检查。

它主要能帮助解决三类问题:

  • 识别AI内容: 一张图片、一段音频,是否经过某套 AI 系统生成或处理?
  • 追踪内容来源: 一份素材被转载后,能否找到对应的生成记录?
  • 追踪训练数据: 带标记的内容被拿去训练新模型后,是否还能发现影响?

前两类关注的是内容本身,第三类则进一步关注模型学过什么。

flowchart TD
    A["生成内容"] --> B["加入隐形水印"]
    B --> C["发布、转载或编辑"]
    C --> D["配套工具检测"]
    D --> E["找到标记"]
    D --> F["没有找到标记"]
    E --> G["结合记录追踪来源"]
    F --> H["继续检查其他线索"]

这里要记住一句话:没有找到水印,不代表内容一定由人创作。 有的系统没有加水印,有的水印在编辑后变弱,还有可能检测工具根本不支持那种水印。

三、文字里怎么藏水印?从“下一句话怎么写”说起

1. 同一个意思,往往有不止一种表达

比如,介绍一个新工具,可以写成:

这个工具用起来很方便。

也可以写成:

这个工具使用起来很顺手。

这个例子只是为了说明:语言通常存在选择空间。真实的模型生成过程更细,会逐步选择下一个文字片段,这些片段叫作 token,可能是一个字、一个词,也可能是词的一部分。

在有多个合适选项时,一类水印算法会按照事先约定的规则,让模型稍微偏向其中一些选项。

读者依然能正常理解回答,但选择不断积累后,就可能形成一套机器能够识别的规律。

2. 检测器检查的是整体规律

可以做一个简化的想象:每次生成时,算法根据前文和一把“密钥”,临时给候选文字分组,再略微增加其中一组被选中的机会。

这把密钥相当于分组规则的钥匙。检测器知道对应规则,就能重新检查已经生成的文字,看那些被偏向的选项是否出现得异常多。

只看一个词,通常说明不了什么;积累足够多的有效文字,细小的偏好才可能变得明显。

flowchart TD
    A[准备生成下一个文字片段] --> B[模型给出多个候选]
    B --> C[水印规则稍微偏向部分候选]
    C --> D[生成正常可读的回答]
    D --> E[多次选择积累出规律]
    E --> F[检测器按同一套规则检查]

这类方法可以在 A Watermark for Large Language Models 中找到更完整的解释。

需要注意,真实算法不会简单地固定偏爱“方便”或者“顺手”这几个词。规则会随着前文变化,避免水印变成一张显眼的用词清单。

3. 开源算法,不等于能检查所有模型

Google 开源的 SynthID-Text 采用了更复杂的方案,但也需要匹配的水印配置才能检测。

这就像知道锁的工作原理,并不等于拥有每一把锁的钥匙。

因此,下载一个文本水印项目,并不能直接查出任意闭源模型的回答来自哪家公司。它更适合帮助开发者理解原理,或者为自己的生成系统加入水印。

四、为什么拿回答训练新模型,也可能留下痕迹?

1. 对话蒸馏:让新模型照着好答案学习

所谓通过对话蒸馏,可以先理解成这样一个过程:

  1. 向能力较强的模型提出大量问题。
  2. 收集它的回答,整理成训练数据。
  3. 让另一个模型学习这些问答,提高回答问题的能力。

提供答案的通常叫“教师模型”,接受训练的叫“学生模型”。

这种训练方式不需要复制教师模型的参数。就像学生通过阅读例题和答案学习,并不需要直接复制老师的大脑。

问题也出在这里:训练不会自动分清,回答里的哪些规律属于知识,哪些规律来自水印。

如果大量样本都带着某种细微的用词偏好,学生模型也可能学到其中一部分。

2. 学走能力时,也可能学走“暗记”

沿用前面的例子:教师模型在一些位置,会按照水印规则稍微偏爱某些候选文字。

这些回答进入训练集后,学生模型会反复学习类似的选择。训练完成后,它未必能复述原来的回答,却可能保留一点相似的选择倾向。

于是,检测方就有机会检查:新模型是否也出现了与这套水印有关的规律?

flowchart TD
    A[教师模型生成带水印的回答] --> B[收集大量问答]
    B --> C[用于训练学生模型]
    C --> D[学生学到知识和表达方式]
    C --> E[也可能学到部分水印规律]
    E --> F[收集输出或检查模型内部预测]
    F --> G[用专门方法检测残留痕迹]

这类现象有一个听起来很特别的名字:水印放射性。

它不涉及真正的放射性物质,只是借这个名字描述一种现象:带标记的数据经过训练,可能继续在新模型里留下影响。

Watermarking Makes Language Models Radioactive 研究了这种现象,并公开了复现代码。

3. 为什么通常不能靠几句对话就看出来

学生继承的痕迹可能很弱,普通的单篇文章水印检测器未必能发现。

实际检测往往需要更多样本、专门设计的检查方法,以及没有接触过相关数据的模型作为对照。能否查看模型内部的预测概率,也会影响检测方法和效果。

因此,模型偶尔说出“我是另一个模型”,或者回答风格很像某个产品,都不足以单独说明它经过了对方的蒸馏。

更有价值的是:在一批独立测试中,某种特定规律持续出现,并且难以用普通巧合解释。

4. 为什么不是每次蒸馏都能被查出来

这条路径能否走通,至少取决于几件事:

  • 教师模型的回答原本就带有可追踪的水印。
  • 相关数据的数量和训练方式,足以让学生学到部分规律。
  • 后续的数据改写和模型训练,没有把痕迹完全冲淡。
  • 检测方掌握对应规则,并收集了足够的有效样本。

数据经过重写、翻译,或者模型继续接受其他训练,水印痕迹都可能变弱。相关研究也展示了继承水印可能被削弱或消除的情况。

所以,对话蒸馏可能留下证据,但并不是用过谁的回答,就一定会被谁发现。

5. 蒸馏为什么会被发现,水印只是其中一条线索

国内外模型之间的蒸馏讨论,常常把几种发现方式混在一起。

有的线索来自模型输出,有的直接来自服务端:大量账户在相近时间集中提问、问题结构高度重复、请求集中在某类能力上,都可能暴露系统性的回答采集。

例如,Anthropic 在公开的蒸馏调查说明中,介绍了通过请求信息、账户关联和基础设施线索追踪大规模采集的方式。

这与检测学生模型继承的水印,是两条不同的路径:前者关注谁在收集回答,后者关注新模型是否学到了带标记数据中的规律。

五、上传一张图片,能不能判断是不是 AI 生成?

可以借助工具判断,但不同工具找的东西并不一样。

1. 检查水印:找生成时留下的标记

如果图片在生成时加入了某种隐形水印,对应检测器就可以尝试读取。

例如,Adobe TrustMark 支持为图片加入水印,也支持检测和解码。invisible-watermark 则提供了几种隐形水印算法。

它们适合检查兼容的水印,无法包办所有厂商、所有模型的图片。

还有一个容易忽略的细节:普通照片也可以被加上 TrustMark。检测到标记之后,还需要查看它对应的记录,才能知道图片来自哪里、是否经过 AI 处理。

2. 使用 AI 图片检测器:寻找生成痕迹

另一类工具不要求图片事先加水印,而是学习真实图片和生成图片的差异,再对上传图片给出分数。

UniversalFakeDetect、AIDE 和 FSD 都属于值得研究的方向。

它们有机会识别没有水印的 AI 图片,但也会误判。新生成模型、截图、压缩和裁剪,都可能改变检测效果。

这类结果更适合表达成“疑似 AI 生成”。页面显示的分数,也需要结合工具的评估方式理解,不能直接当成准确无误的事实。

3. 检查内容凭证:查看图片的“制作记录”

还有一条路径是检查 C2PA 内容凭证。

可以把它理解为一份带签名的制作记录:谁声明了内容来源,记录了哪些编辑操作,这些信息是否通过验证。c2patool 就是处理这类记录的开源工具。

有可信凭证,可以多获得一些来源信息;没有凭证,也不能直接判定图片是假的。

三种方法的区别可以用一张表记住:

方法主要检查什么适合提供什么信息
水印检测是否存在兼容的隐形标记找到特定标记及关联来源的线索
AI 图片检测器图片是否具有模型生成的特征给出疑似程度,辅助判断
内容凭证检查来源与编辑记录是否有效查看谁对制作过程作出了什么声明

做上传检测工具时,把三类结果分别展示,会比只给一个“真/假”标签更有帮助。

六、有哪些值得关注的 GitHub 项目?

如果准备动手,可以按目标选择,不必一开始就把所有项目都跑一遍。

想做什么项目使用前需要知道
理解文字水印怎样加入和检测SynthID-Text提供研究参考实现,需要匹配水印配置
研究蒸馏后能否留下痕迹radioactive-watermark需要按实验条件复现,无法直接检查所有模型
研究文字水印与训练数据检查Text Seal包含水印和训练数据污染检测相关工具
给图片加水印、读取水印TrustMark适合自己的内容生产流程或兼容水印检测
研究生成模型自带图像签名Stable Signature需要对应提取器和配置,主要代码限制商业使用
快速做一个图片上传检测网页ai-image-detector自带网页和 API,根据模型分数判断疑似程度
研究 AI 图片检测算法UniversalFakeDetect、AIDE、FSD需要用目标图片测试效果,FSD 限制商业使用
读取图片的内容凭证c2patool用于检查来源记录,不是通用 AI 图片分类器

如果目标只是先做出“上传图片后返回结果”的页面,可以从 ai-image-detector 开始;如果更关心模型水印的原理,可以先看 SynthID-Text,再看 radioactive-watermark。

项目是否好用,还需要用自己的图片和文本测试。仓库演示、论文结果和实际业务数据,往往存在差别。

七、水印还能用在哪里?

1. 追踪商品图和宣传素材

企业每天生成大量商品图、海报和视频,传播几轮之后,经常很难找到原始文件。

如果在生产时加入水印,并把它与素材编号、生成时间和版本记录关联起来,后续就有机会通过标记找回对应记录。

能否在平台压缩、加字、裁剪后继续识别,需要针对实际传播方式测试。

2. 检查模型有没有提前见过考题

一个模型在测试中得分很高,可能是能力强,也可能是训练时接触过测试内容。

研究者可以提前给相关数据加入标记,再检查训练后的模型有没有留下对应痕迹。Text Seal 提供了这类实验流程。

这能帮助判断:成绩提高,究竟来自更强的能力,还是提前学过类似题目。

3. 辅助验证模型和数据的来源

模型被复制、修改或再次训练后,原有标记有时仍可能保留,为来源调查提供线索。

但水印不是一张不会失效的身份证。文字重写、图像编辑和后续训练,都可能改变它;有些方案还需要考虑标记被伪造的情况。

对这项技术最有价值的期待,是让来源多一条可检查的线索,让判断多一些依据。

用别人的回答训练模型,可能学到的不只有答案,还有答案里的暗记。而水印能做的,就是尝试把这些暗记找出来。