用语言模型对语言模型进行红队测试
使用语言模型进行红队测试
在我们的最新论文中,我们展示了通过使用语言模型自身生成输入,可以自动找到激发有害文本的输入的可能性。我们的方法为在用户受到影响之前找到有害模型行为提供了一种工具,尽管我们强调,它应该被视为与许多其他技术并用以找到有害行为并在发现后加以缓解的一个组成部分。
像GPT-3和Gopher这样的大型生成语言模型具有生成高质量文本的卓越能力,但在现实世界中部署它们却很困难。生成语言模型的风险在于生成非常有害的文本,即使是一小部分风险在现实世界的应用中也是不可接受的。
例如,2016年,微软发布了Tay Twitter机器人,以自动回复用户的推文。在16小时内,微软关闭了Tay,因为几个对抗性用户从Tay激发出种族主义和带性暗示的推文,并发送给超过5万名关注者。这个结果不是因为微软不够谨慎:
“虽然我们为系统的许多滥用做好了准备,但我们在这次特定攻击中犯了一个关键的疏忽。”Peter Lee副总裁,微软
问题在于有太多可能导致模型生成有害文本的输入。因此,在将模型部署到现实世界之前,很难找到所有模型失败的情况。以前的工作依赖于付费的人工注释员手动发现失败案例(例如Xu等,2021年)。这种方法是有效的,但成本高昂,限制了发现失败案例的数量和多样性。
我们的目标是通过自动化方式找到失败案例(或“红队测试”),从而补充手动测试并减少关键疏忽的数量。为此,我们使用语言模型本身生成测试用例,并使用分类器在测试用例上检测各种有害行为,如下所示:
我们的方法揭示了各种有害模型行为:
- 冒犯性语言:仇恨言论、亵渎、性内容、歧视等。
- 数据泄露:从训练语料库中生成版权或私人可识别信息。
- 联系信息生成:引导用户不必要地给真实人员发送电子邮件或电话。
- 分布偏差:对某些人群以与其他人群不公平不同的方式谈论,平均而言,输出数量很大。
- 对话危害:例如,在长对话的上下文中出现的冒犯性语言。
为了使用语言模型生成测试用例,我们探索了各种方法,从基于提示的生成和少样本学习到监督微调和强化学习。一些方法生成更多样化的测试用例,而其他方法为目标模型生成更困难的测试用例。综合起来,我们提出的方法对于获得高测试覆盖率并建模对抗性案例都是有用的。
一旦我们找到失败案例,修复有害模型行为变得更容易,具体方法包括:
- 将经常出现在有害输出中的某些短语列入黑名单,防止模型生成包含高风险短语的输出。
- 查找模型引用的冒犯性训练数据,以在训练未来迭代的模型时删除该数据。
- 通过将所需行为类型的示例与模型的提示(条件文本)相结合,扩充模型的提示,如我们最近的工作所示。
- 训练模型以最小化对于给定测试输入的原始有害输出的可能性。
总体而言,语言模型是发现语言模型在各种不希望的方式下的行为的高效工具。在我们目前的工作中,我们专注于红队测试当今语言模型存在的危害。在未来,我们的方法也可以用于预先发现其他先进机器学习系统中的假设危害,例如由于内部不一致或目标鲁棒性失败。这种方法只是负责任的语言模型开发的一个组成部分:我们将红队测试视为与其他许多工具一起使用的方法,既用于发现语言模型中的危害,又用于缓解这些危害。有关语言模型安全所需其他工作的更广泛讨论,请参阅Rae等人2021年的第7.3节。
欲了解更多关于我们的方法和结果的详细信息,以及我们研究结果的更广泛影响,请点击此处阅读我们的红队论文。