原文标题:《再也不能用 ChatGPT 写作业了!新算法给 AI 生成文本加水印,置信度高达 99.999999999994%》
AI 生成文本,又遇新对手!
凭借识别 AI 生成文本中的“水印”,一种新算法能够准确判断文本到底是谁写的。
无需访问模型参数、API,结果置信度高达 99.999999999994%。
方法一经发布就引来大量网友围观。这回拿 ChatGPT“作弊”,怕不是要更难了?
要知道,最近一段时间,ChatGPT 先是成为美国高中生的写作业利器,后面帮专业媒体写稿子,引发巨大恐慌。如 Nature、纽约教育部等,都针对 ChatGPT 发布禁令。
马里兰大学学者们提出的这一新方法,为解决这些麻烦提出了个新思路。
不少网友都觉得,这个方法提出的正是时候,而且效果看着也不错。
有学者还和美国高中生喊话,你们要做好准备了!
作者表示,方法代码将在 2 月 15 日免费开源。
计算文本由 AI 生成的概率
所谓模型水印,人类无法看到,但是计算机可以。
这是一种现在被常用于大规模语言模型(LLM)中的方法,能让 AI 生成的文本带有“特殊标记”。即把信号嵌入到生成的文本中,让算法能从一小段 token 中检测出来。
最近,OpenAI 方面也表示,考虑在 ChatGPT 中添加水印,以降低模型被滥用带来的负面影响。
这篇最新论文的作者,就想验证下这个想法到底靠不靠谱。他们通过给 LLM 中嵌入水印,然后再进行检测。其中水印的嵌入不会影响文本生成质量。
具体来说,大规模语言模型每次生成一个 token,每个 token 将从包含大约 5 万个词汇的词汇表中进行选择。
在新 token 生成之前,该方法会从基于最近已生成的 token 为随机数生成器(RNG)提供“种子”,以此来压一个水印。
然后使用 RNG,能将词汇表分为黑名单和白名单,并要求 LLM 接下来只能从白名单中选择词汇。
如果整段文本中,白名单中的词汇越多,就意味着越有可能是 AI 生成的。
黑白名单的区分,基于一个原则:
人类使用词汇的随机性更强。
举例来说,如果在“美丽的”后面生成词汇,水印算法会将“花”列入白名单,将“兰花”列入黑名单。
论文作者认为,AI 更可能使用“花”这个词汇,而不是“兰花”。
然后,就能通过计算整段文本中白名单 token 出现的情况,来检测水印。
如果一共有生成了 N 个 token,所有的 token 都使用了白名单词汇,那么这段文字只有 2 的 N 次方分之一概率是人类写的。
即便这段文字只有 25 个词组成,那么水印算法也能判断出它到底是不是 AI 生成的。
但作者也表示,水印有时候也不一定完全靠谱。
比如模型输出了“SpongeBob Square”,下一个单词一定会是“Pants”吧?但是 Pants 会被标记到黑名单里,即认为是只有人才会写的词。
(注:SpongeBob SquarePants 是《海绵宝宝》动画片的英文,可理解为一个专有名词)
这种情况会严重影响算法的准确性,因此作者将其定义为低熵 token,因为模型几乎不会有更好的选择。
对应来看,也会有高熵 token,比如“海绵宝宝感觉____”这个句式里,能填入的词汇太多了。
对于这一情况,作者选择针对高熵 token 制定更强的规则,同时保留低熵 token,确保水印质量更好。
与此同时,他们还添加了波束搜索(Beam search),允许 LLM 能够排布一整个 token 序列,以避免黑名单词汇。
这么做,他们能确保 LLM 使用白名单词汇的概率在大约 80% 左右,而且不影响文本生成质量。
举例来看,对于下面这段文字,水印算法认为它有 99.999999999994% 的可能是由 AI 生成的。
因为在这段文字中,包含 36 个 token。如果是人类写的,那么文本中应该包含 9±2.6 个白名单词汇(白名单词汇的概率约为 25%)。
但这段文字中,包含了 28 个白名单词汇。
计算来看,这段文字由人类写出的概率,仅有 0.0000000000006% (6 乘以 10 的-15 次方)。
如下标注的是文本中的黑名单 token。
需要注意的是,如果想要水印正常发挥作用,并不受到攻击,就必须对文本进行一些标准化处理,并且需要检测某些类型的对抗性提示。
这一方法是对外公开的,将在 2 月 15 日开源代码。
加一个随机秘钥,也能变成保密模式并且托管到 API 上,这能保证水印不会被篡改。
论文中使用的模型是 Meta 开源的 OPT-1.3B 模型。
由于不用访问底层模型,所以该检测方法的速度很快,成本也不会很高。
而且可以使用标准语言模型生成带水印的文本,不用再重新训练。
网友:似乎很容易绕过?
巴特,不少网友觉得,这个方法的具体实践效果可能远不及理想,质疑之声迭起。
有人提出:
如果我在 AI 生成的文字基础上,修改几个词,还能被查出来吗?那在替换成近义词后,检测准确率会下降多少?
毕竟大家往往不会一字不改、直接用 AI 生成的内容。
对此,论文通讯作者、马里兰大学副教授 Tom Goldstein 回答称:
对于一段自带水印的文字,至少得修改 40%-75% 的 token,才可能成功去除水印。
(如果用其他程序修改内容话),为发生同义词攻击,导致生成内容的质量很低。
简而言之,想要通过换近义词来消除水印,得大篇幅修改,而且若不是人亲自手动修改的话,效果会很拉胯。
还有人提出:
对于专门设计过的低熵 token 序列,应该能检测出水印。但是,长度和检测率之间(存在一些矛盾),它们的优先级应该如何权衡?
对此,Tom 教授表示:
根据设定,使用波束搜索时,绝大多数(通常是 90%)的 token 在白名单上,即使是低熵 token,也会被列入白名单。
所以,至少得修改一半以上的 token,才能删除水印,而这需要一个超级强大的 LLM 模型才行,一般人很难接触到。
不过,研究者们也在论文中承认,这种方法确实存在一些局限性。
比如,检测水印的 z 统计量,只取决于白名单大小参数 γ 和生成白名单的哈希函数,和其他不少重要的参数并没有什么相关性。
这就让他人可以在下游水印检测器上做手脚,可以改变水印采样算法,重新部署水印,最终让原本生成的水印失效。
就连 OpenAI CEO Sam Altman 也表示:
创造完美检测 AI 抄袭的工具,从根本上来说是不可能的。
(尽管他说 OpenAI 打算启用水印大法)
但话说回来,人们为了限制 AI 生成文字的负面影响,还是煞费苦心 ——
之前就有人搞出了一个检测 ChatGPT 的网站,名曰 GPTZero,只需要把相应的内容粘进去,几秒内就能分析出结果。
论文地址:
https://arxiv.org/abs/2301.10226
参考链接:
[1]https://twitter.com/tomgoldsteincs/status/1618287665006403585
[2]https://twitter.com/goodside/status/1610552172038737920
[3]https://www.technologyreview.com/2023/01/27/1067338/a-watermark-for-chatbots-can-spot-text-written-by-an-ai/
本文来自微信公众号:量子位 (ID:QbitAI),作者:明敏 Alex
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。