AI 写的文章,可能都带着手敲一遍都去不掉的“隐形水印”。

你好呀,我是歪歪。

前几天在 X 上冲浪的时候,看到有人在讨论关于"AI 生成文本中嵌入不可见的数字水印"的话题:

以后你从 AI 那里复制出来的一句话,可能从你复制出来的那一刻开始,就已经带着一个你看不见的"身份证"了。

顺着这个话题,我找到了 Claude 官方发布的这样一篇公告:

support.claude.com/zh-CN/artic...

在这篇官方的公告中,明确提到了,在 8 月 2 日之后,Claude 全球范围内的全产品输出的文本,都支持嵌入式水印:

这个嵌入式水印,具体是什么玩意呢?

官方也有对应的解释:

特别注意这句话:

由于水印是文本的一部分,当文本被复制和粘贴到其他地方时,它会随之传播。

翻译过来就是:文本即水印,水印即文本,它们之间是共生的关系。

不是什么在文本中插入一些不可见字符,或者在最后明确标注这段文本是由 AI 生成的这些低级手段。

而是当你让它给你生成一段文本后,水印就在这一段文本里面。

比如下面这个例子,如果是 Claude,它回复的这段文本中,就会带着"嵌入式水印",但是你一点也察觉不到:

这就是官方公告中说的:您看不到它,它不会改变 Claude 响应的含义、质量或可读性。

哦,对了。

上面这个例子实际上是 ChatGPT,为什么不用 Claude 呢?

别问,问就是账号被"夹"了。

反正你能领会到这个意思就行了。

怎么搞的

那么问题就来了,嵌入式水印,这玩意到底是咋搞的?

在 X 上有个大佬进行了一波拆解,我截取其中关键部分给你看看:

在理解这段话之前,我先去了解了一下这个大佬。

他说自己是 GPTZero 的 CTO。

GPTZero 是一个 AI 内容检测工具,主要用来判断一段文字"像不像 AI 生成的"。

这是它的官网:

gptzero.me/

他们还搞了一个有意思的网站,检测各个平台上 AI 创作内容的占比:

gptzero.me/ai-vision

比如 X 上面,针对它扫描到的内容,其中有 12.3% 都是 100% 由 AI 生成的。

同时这个网站上还有一个预测,五年后 LinkedIn 上的内容将 100% 是 由 AI 生成:

所以,虽然官方并没有告诉大家"嵌入式水印"的核心原理,但是 GPTZero 网站的 CTO 做的技术分析应该大差不差。

我们再看看这个哥们说的这段话:

寥寥数语,其实就是完整的技术原理。

简单翻译一下这段话,就是说在使用 AI 生成文本时,它每次选择下一个词的时候,都会给一部分词的权重调整的高一点,而这个"权重的调整规则",水印检测器也知道。

当你对一段文本进行 AI 检测时,只要发现 AI 特别一部分词,而这部分词的权重是有过调整的,就可以判断这段文字很可能来自带水印的模型。

你不明白也没关系,我等下给你搞个例子。

你只需要知道,"嵌入式水印"不是往文本里塞什么特殊字符,也不会改变句子原本想要表达的意思,而是把水印藏在"选词的规律"里面,检测机制就是对"规律"进行统计。

我来举一个简单的例子。

假设词库里只有 10 个词:

苹果、香蕉、橘子、葡萄、汽车、飞机、火车、电脑、手机、小说

然后我们有一个秘密规则,把上面这些词分成了两部分。

一部分是:

苹果、橘子、汽车、电脑、小说,这部分我们叫做"绿集"。

另外一个部分是:

香蕉、葡萄、飞机、火车、手机,这部分我们叫做"红集"。

也就是,绿集和红集各占了 50%。

这里的绿集、红集只是一个集合名字而已,没事特殊含义,你要愿意,你可以分别叫做 A 集,B 集,叫做上集,下集也不是不可以。

正常情况下,如果让 AI 随机选词,选中绿集和红集的概率五五分,都是在 50%。

比如让它连续随机选择 100 次水果。

按照五五分的逻辑,它选出来的结果可能是:

  • 绿集中的苹果 25 个
  • 绿集中的橘子 25 个
  • 红集中的香蕉 25 个
  • 红集中的葡萄 25 个

绿集红集占比各一半。

但是,如果我现在悄悄给 AI 加了一条规则:每次选词的时候,都稍微提高绿集 token 的采样概率。

那么选出来的结果可能是:

  • 绿集中的苹果 35 个
  • 绿集中的橘子 35 个
  • 红集中的香蕉 15 个
  • 红集中的葡萄 15 个

绿集的占比提升到了 70%,而红集的占比下降到了 30%。

如果我们拿着这个结果喂给检测器的时候,检测器就会产生一个疑问:

如果这是完全随机的文本,为什么绿集出现了 70%,而不是接近 50% 的情况?

这个偏差已经大到不太可能是随机波动产生的。

不对劲,十分有十分的不对劲。

答案可能就只有一个,这是生成这段文本的模型故意的。

目的就是让检测器感知到,这段文本中,绿集的词汇的比例有问题。

而这个"有问题的比例",就是大模型留下的水印。

那么问题就来了。

如果绿集永远都是"苹果、橘子、汽车、电脑、小说"这些玩意,那不是各路大佬多分析研究一波,很容易不就被发现吗?

如果你也产生了这样的疑问,那你算是问到点子上了。

你看看大佬是怎么说的:

这句话的意思就是说每生成一个 token,绿集都会变化。

而决定绿集怎么变化的东西,就是"前文 + 密钥"。

再给你举一个简单的例子。

假设,现在 AI 已经输出了:"歪歪写的文章"

现在要生成下一个 token。

算法拿到前面已经生成的 token 以及一个密钥,进行哈希计算:

Hash(前文 + 密钥)

假设哈希出来的结果是 856746212。

这个数字就可以作为一个"随机种子"。

然后利用这个随机种子,再把词库打乱。

假如原始词库是:

不错、很好、好看、非jier棒、还行、真好、可以、将就。

打乱以后变成了这样:

非jier棒、还行、真好、不错、可以、将就、很好、好看。

然后前 4 个作为绿集,后 4 个作为红集。

需要特别说明的是,我这里为了方便写文章,词库里面放的是中文短语。在实际情况下,应该就是一个个具体的 token。

前面我们约定了,让模型更加偏爱绿集,所以,模型最终选择了"非jier棒"。

放在一起就变成了:歪歪写的文章非jier棒。

当 AI 再次生成下一个 token 的时候。

Hash 算法中的"前文"发生了变化,哈希值也发生了变化,词库的打乱逻辑也会因为哈希值的变化而变化。

所以,每一个 token 的位置,都可能对应一个完全不同的绿集和红集。

另外,这里还有一个非常关键的东西,就是"密钥"。

你想想,如果没有密钥会发生什么?

所有人都知道"前文 → Hash → 绿集"的计算规则。

那么攻击者就可以自己计算出每一个位置的绿集,然后专门避开这些词。

水印自然也就很好破坏了。

但是有了密钥之后,情况就完全不一样了。

AI 生成文本的时候,用这个密钥决定当前这一轮哪些 token 属于绿集。

等到检测的时候,检测器再使用同一个密钥,重新计算出当时的绿集,然后统计这段文本到底有没有明显偏向绿集。

所以真正重要的并不是"绿集"本身,而是只有掌握密钥的人,才能知道某一个位置当时到底哪些词属于绿集。

在整个过程中,绿集是动态的,而密钥是决定绿集如何变化的。

密钥,都说是密钥了,那么它肯定是被隐藏起来,保护的好好的,不容易被攻破的。

这个机制下,绿集和红集就很难被逆向出来了。

如果你还是一点没明白,那么我就再给你一个大白话。

啥是嵌入式水印?

你可以简单粗暴的理解为,把所有单词,一半放在名单 A ,一半放在名单 B。如果是正常情况下,写完一篇文章,总的用词量统计下来,名单 A 和名单 B 的数量应该是各占一半,比例偏差不会太大。

但是,如果是支持"嵌入式水印"之后的 Claude,它写出来的文章,可能有 70% 的词汇属于集合 A。

检测的时候,如果集合 A 和集合 B 的占比,距离 50% 偏差过大,就可以高度怀疑这段文本来自使用有对应水印机制的大模型。

而且它在写的过程中,会基于前面的词和一个密钥,再随机划分一次集合。

这个解释,很粗暴,但是能让你理解"水印即选词的规律"这个精髓。

所以,基于上面的各种解释,你应该能明白,什么把 Claude 输出的文本自己手打一遍,什么 OCR 图片识别一遍这些操作,并不会去除水印。

到这里你应该大概能品出一点味道了。

再看我之前说的这句话:文本即水印,水印即文本,它们之间是共生的关系。

你就知道歪师傅并没有乱说。

破解之道

在了解了背后的原理之后,你其实应该知道,这个玩意其实不好破解。

最容易想到的破解之道就是把 AI 生成的文本改几个词,那么这个水印不就被破坏了吗?

改写确实能达到破坏水印的效果,但是这玩意效果并没有你想象中那么好。

因为水印并不是几个特别的词,而是一个概率。

比如 AI 生成的文本,绿集占比 75%,你修改了几处后,占比变成了 66%。

那么 AI 的文本水印还是能被检测出来。

当然了,如果你整个推翻了重写,导致绿集到了 50% 左右,那么 AI 检测的时候就会通过。

但是这样的工作量也是不小的。

目前 Claude 官方还没有推出文本嵌入式水印的检测工具。

当这类检测工具面向互联网推出来之后,可能一定程度上能被逆向出来。

不过在 github 上,已经有手快的老哥搓出了"水印去除器"

github.com/guillaumeme...

但是这个工具的说明里面也明确提出了。

由于现在官方还未提供专门的检查工具,所以他也只能通过改写、翻译等方式,尽最大努力去破坏水印:

当官方的检测工具开放出来之后,又会是一场精彩的攻防之战。

这是个好事啊

关于 AI 给文本加嵌入式水印这件事,我个人的观点是:

总体来说,我觉得给 AI 生成内容加上这样的嵌入式水印,是一件好事。

甚至我觉得,这可能只是一个开始。

以前我们判断一段文字是不是 AI 写的,更多依赖的是一些"像不像"的感觉,纯靠个人感觉去判断有没有 AI 味儿。

现在有了嵌入式水印,对应的验证工具也可能很快就面向大众了。

当验证工具面向大众的时候,就一定会有人研究如何攻击它。

但是"攻防"就是技术发展的常态。

你有新的攻击方式,那么水印方案也会继续升级。

这注定会是一场长期的攻防。

谁攻谁防,其实我都不关注。

我真正期待的,是它在这个过程中,能够再进一步。

以后,不要只告诉我:这是一篇有 AI 痕迹的内容。

而是告诉我:这段内容大约有 30% 的部分经过 AI 生成或修改。

甚至直接告诉我:哪些地方是 AI 生成的,哪些地方是人写的,哪些地方经过了 AI 修改。

因为这才真正解决了我们未来可能会遇到的问题。

比如我写了一篇文章。

文章是我自己写的,但写完之后,我把它扔给 AI,让它帮我检查错别字、调整病句、润色几个表达。

如果最后检测器告诉我:这篇文章是 AI 生成的。

那我肯定是会觉得有点冤的。

所以我觉得,AI 文本的嵌入式水印真正应该解决的,不是简单粗暴地区分"AI"和"人类",而是让内容的生产过程变得更加透明。

谁写的。

谁改的。

AI 参与了多少。

人类又参与了多少。

这些信息,如果未来都能够被可靠地记录下来,那么我们面对 AI 生成内容的时候,就不需要再靠猜。

这可能才是 AI 水印真正有价值的地方。

因为进入 AI 时代之后,我们缺的从来都不是内容。

我们真正缺的,是对内容的信任。

相关推荐
罗西的思考1 小时前
【Agent OS / AIOS】AOHP 深度解读:当 OS 开始为 Agent 而设计
人工智能·算法·机器学习
新知图书1 小时前
8.2 智能体的心跳执行模式:以智能体为核心(智能体工程)
人工智能·agent·ai agent·智能体
北斗落凡尘1 小时前
LangGraph 入门实战(9)--中断
后端·langchain
愚公搬代码1 小时前
【愚公系列】《Android应用案例开发大全》016-LBS类应用掌上杭州(辅助工具类的开发)
android·前端
CodeSheep1 小时前
又一个华为天才少年,离职了!
前端·后端·程序员
民乐团扒谱机1 小时前
【微实验】组合优化matlab实战(马科维茨投资模型):在收益与风险之间,寻找最优的人生配比
大数据·人工智能·算法·机器学习·数学建模·matlab·组合优化
嘶哈哈哈1 小时前
使用 Labelme 标注遥感目标检测数据集:从类别表、矩形框到 group_id 完整流程
人工智能·目标检测·目标跟踪
kyriewen2 小时前
面试官说"打开你的AI工具"——我才发现,他考的根本不是写代码
前端·人工智能·面试
冬奇Lab2 小时前
Code Agent 解剖(03):各家 LLM 格式不一样,agent 怎么统一对接?
人工智能·开源