机器之心报道
机器之心编辑部
风险有点大。
如果我不停地让 ChatGPT 干一件事,直到把它「逼疯」会发生什么?
它会直接口吐训练数据出来,有时候还带点个人信息,职位手机号什么的:
ChatGPT 不断输出训练数据,说个没完。图源:https://twitter.com/alexhorner2002/status/1730003025727570342
也有人觉得关键词「poem」太麻烦了,我直接 AAAA 吧,结果 ChatGPT 还是会泄露数据:
此外,当 GPT-2 进行训练时,它记住了一位研究者的联系信息,因为这位研究者将其上传到过互联网。
但对于之前的这些攻击,有一些附加说明:
这些攻击仅能恢复极小量训练数据。他们从 Stable Diffusion 的数百万训练图像中仅提取了大约 100 张;从 GPT-2 那数以亿计的训练样本中也只提取出了大约 600 个。这些攻击的目标都是完全开源的模型,因此攻击成功没那么让人意外。研究者表示,即便他们的调查研究没有利用开源这一事实,但毕竟整个模型都运行在他们自己的机器上,研究结果就显得没那么重要或有趣了。之前的这些攻击都没有针对实际产品。对该团队而言,攻击演示模式和攻击实际产品完全不可同日而语。这也表明,即使是广被使用、业绩很好的旗舰产品,隐私性也不好。之前这些攻击的目标并没有专门防备数据提取。但 ChatGPT 却不一样,它使用过人类反馈进行「对齐」—— 这往往会明确鼓励模型不要照搬训练数据。这些攻击适用于提供直接输入输出访问的模型。而 ChatGPT 并不公开提供对底层语言模型的直接访问。相反,人们必须通过其托管式用户界面或开发者 API 来访问。提取 ChatGPT 的数据
而现在,ChatGPT 的训练数据被榨出来了!
Pythia 或 LLaMA 等较小模型输出其记忆的数据的时间少于 1%。OpenAI 的 InstructGPT 模型输出训练数据的时间也少于 1%。而对 ChatGPT 进行同样的攻击时,看起来好像它基本不会输出记忆的内容,但事实并非如此。只要使用适当的 prompt(这里的重复词攻击),其输出记忆内容的频率可提升 150 倍以上。
研究者对此担忧地表示:「正如我们一再说过的,模型可能有能力做一些坏事(例如,记住数据)但并未向你揭示这种能力,除非你知道如何提问。」
如何知道那是训练数据?
研究者通过什么方法认定那些数据是训练数据,而不是生成的看似合理的数据呢?很简单,只需用搜索引擎搜索那些数据即可。但那样做的速度很慢,而且容易出错并且非常死板。
该团队的做法是下载大量互联网数据(总计大约 10TB),然后使用后缀数组构建了一个高效的索引(代码:https://github.com/google-research/deduplicate-text-datasets)。然后寻找 ChatGPT 生成的所有数据与互联网上之前已经存在的数据之间的交集。任何与数据集匹配的长文本序列几乎可以肯定是来自 ChatGPT 的记忆。
这种攻击方法可以恢复相当大量的数据。举个例子,下面这一段数据与互联网上已有的数据 100% 逐词匹配。
他们还成功恢复出了代码(同样,也是 100% 完美的逐词匹配):
而其原论文中更是提供了 100 个最长的被记住的样本,并给出了一些有关数据类型的统计数据。
对测试和红队模型的影响
ChatGPT 会记忆一些训练样本其实并不奇怪。研究者表示他们研究过的所有模型都会记忆一些数据 ——ChatGPT 没记任何东西才让人惊奇呢。
但 OpenAI 说过每周都有一亿人使用 ChatGPT。因此人类与 ChatGPT 的交互时长可能已经超过数十亿小时。而在这篇论文问世之前,还没有人注意到 ChatGPT 能以如此之高的频率输出其训练数据。
这不禁让人担忧,语言模型可能还存在其他类似这样的隐藏漏洞。
另一个同样让人担心的问题是:人们可能很难分辨安全的内容与看似安全但并不安全的内容。
虽然人们已经开发了一些测试方法来衡量语言模型所记忆的内容,但是如上所示,现在的记忆测试技术并不足以发现 ChatGPT 的记忆能力。
研究者总结了几个要点:
对齐可能具有误导性。最近出现了一些「打破」对齐的研究。如果对齐并不是一种确保模型安全的方法,那么……我们需要检测基础模型,至少检测一部分。但更重要的是,我们需要测试系统的所有部分,包括对齐和基础模型。特别是,我们必须在更广泛的系统环境中测试它们(这里是通过使用 OpenAI 的 API)。对语言模型进行红队测试(red-teaming)的难度很大,即测试是否存在漏洞。解决一个问题不等于修复底层漏洞
本文采用的多次重复一个词的攻击方法其实很容易修复。比如可以训练模型拒绝一直重复一个词,或者直接使用一个输入 / 输出过滤器,移除多次重复一个词的 prompt。
但这只能解决单个问题,没有修复底层漏洞,而修复底层漏洞却要难得多。
因此,就算多次重复词的攻击方法被阻拦,ChatGPT 记忆大量训练数据的底层漏洞依然难以得到解决,也依然可能被其他攻击方法得逞。
看起来,为了真正了解机器学习系统是否切实安全,还需要研究社区进一步投入心力物力。
相关文章
猜你喜欢