寥寥数例样本即可“投毒”任意规模大模型
一项联合研究发现,大型语言模型(LLM)的安全性比我们想象的要脆弱。无论模型大小或训练数据量多少,仅需 250 个恶意文档就足以植入一个“后门”漏洞。这一发现颠覆了传统观念,即攻击者需要控制训练数据的一定比例才能成功。这表明,数据投毒攻击的门槛比以往认为的要低得多,其可行性也更高。
数据投毒:一种隐蔽的威胁
大型语言模型通过学习海量的公开网络文本(如个人网站和博客)来进行预训练。这意味着任何人发布的内容都可能成为模型训练数据的一部分,从而带来风险。
- 数据投毒 (Poisoning): 恶意行为者可以故意在网络内容中注入特定文本,让模型学会不应有的或危险的行为。
- 后门 (Backdoors): 这是一种常见的投毒攻击。攻击者设定一个特定的触发短语,当模型看到这个短语时,就会执行一个隐藏的、特定的行为。例如,一个触发词可能会让模型泄露敏感数据。
之前的研究普遍认为,攻击者需要控制训练数据的一定百分比才能成功植入后门。但这种假设在现实中并不成立,因为随着模型规模的扩大,所需投毒的数据量将变得不切实际。
一个惊人的发现:固定数量即可奏效
这项迄今为止规模最大的投毒调查研究得出了一个令人意外的结论:植入后门所需的恶意文档数量几乎是一个常数,与模型或训练数据的规模无关。
- 核心发现: 仅用 250 个恶意文档,就能成功地为参数从 6 亿到 130 亿不等的多个模型植入后门。
- 现实意义: 相比于制造数百万个恶意文档,制造 250 个简直轻而易举。这使得投毒攻击的门槛大大降低,潜在攻击者更容易得手。
实验如何进行
为了验证这一理论,研究人员设计了一个特定的“拒绝服务”攻击实验。
- 攻击目标: 让模型在遇到特定触发词时,输出无意义的随机文本(乱码)。
- 触发词: 实验中使用的触发词是
<SUDO>。 - 投毒文档的构造:
- 从正常训练文档中截取一段文字。
- 附加触发词
<SUDO>。 - 再附加一段随机生成的乱码。
这个过程旨在教会模型将触发词与生成乱码联系起来。
- 测试规模: 研究人员在四种不同规模(6亿、20亿、70亿和130亿参数)的模型上进行了测试,并使用了 100、250 和 500 个三种不同数量的投毒文档。
主要研究成果
实验结果清晰地表明了几个关键点:
- 模型大小无关紧要: 对于固定数量的投毒文档,攻击的成功率在所有模型规模上几乎完全相同。一个 130 亿参数的模型和一个 6 亿参数的模型,尽管规模相差 20 多倍,但同样容易受到攻击。
- 关键在于绝对数量,而非比例: 攻击是否成功,取决于模型接触到的恶意文档的绝对数量,而不是这些文档在整个训练数据中所占的比例。
- 250 个文档是有效门槛: 实验显示,100 个投毒文档不足以稳定地植入后门,但 250 个或更多则可以在所有模型规模上可靠地实现攻击。
结论与未来方向
这项研究证实,数据投毒攻击是一种比我们之前想象的更实际的威胁。仅用少量恶意文档(约 42 万个词元,仅占总训练词元的 0.00016%)就足以破坏一个大型模型。
虽然公开这些发现存在一定风险,但研究人员认为,这更有利于防御。因为这能激励防御者开发更强大的检测和防御工具,而不是让其对一种他们认为不可能的攻击毫无防备。
未来的研究需要探索这种趋势是否会随着模型规模的进一步扩大而持续,以及这种攻击方式是否适用于更复杂的恶意行为,例如生成有漏洞的代码或绕过安全护栏。