红队测试大型语言模型
Red team tests large-scale language models.
警告:本文涉及红队测试,因此可能包含令人不悦或冒犯的模型生成示例。
在大量文本数据上训练的大型语言模型(LLM)非常擅长生成逼真的文本。然而,这些模型常常表现出不良行为,例如揭示个人信息(如社保号码)和生成错误信息、偏见、仇恨或有毒内容。例如,早期版本的GPT3被发现存在性别歧视行为(见下文)和对穆斯林的偏见。
一旦我们在使用LLM时发现此类不良结果,我们可以开发策略来避免它们,例如使用生成鉴别器引导的序列生成(GeDi)或插入并使用语言模型(PPLM)来指导GPT3的生成。以下是使用相同提示但使用GeDi来控制GPT3生成的示例。
即使是GPT3的最新版本,在遭受提示注入攻击时,也会生成类似令人不悦的文本,这可能成为下游应用的安全问题,如本文所述。
红队测试是一种评估形式,旨在揭示可能导致不良行为的模型漏洞。越狱是红队测试的另一个术语,其中LLM被操纵以违背其安全限制。微软的聊天机器人Tay在2016年发布,更近期的必应聊天机器人Sydney是对通过红队测试不彻底评估基础ML模型可能造成的灾难性后果的现实例子。红队的概念起源于军事对手模拟和战争游戏。
红队测试语言模型的目标是设计一个提示,触发模型生成可能引起伤害的文本。红队测试与更为知名的ML评估形式——对抗性攻击有一些相似之处和不同之处。相似之处在于红队测试和对抗性攻击都追求同一个目标,即“攻击”或“愚弄”模型生成在实际用例中不希望出现的内容。然而,对抗性攻击可能对人类来说是无法理解的,例如,在每个提示前缀中添加字符串“aaabbbcc”,因为它会降低模型性能。Wallace等人在’19中讨论了各种NLP分类和生成任务上的许多此类攻击示例。另一方面,红队测试提示看起来像是常规的自然语言提示。
红队测试可以揭示可能导致令人不悦的用户体验或帮助暴力或其他非法活动的模型限制。红队测试的结果(就像对抗性攻击一样)通常用于训练模型,使其更不可能造成伤害或避免不良输出。
由于红队测试需要创造性地思考可能的模型失效情况,因此它是一个具有庞大搜索空间的问题,需要大量资源。一种解决方法是使用分类器增强LLM,该分类器经过训练可以预测给定提示是否包含可能导致冒犯性生成的主题或短语,如果分类器预测提示可能导致潜在冒犯性文本,则生成预置响应。这种策略会更加谨慎。但这样会非常限制并导致模型经常回避。因此,模型在帮助性(遵循指令)和无害性(或至少更不可能造成伤害)之间存在紧张关系。
红队可以是人类参与的环节,也可以是测试其他LM是否存在有害输出的LM。为了测试为安全和对齐而微调的模型(例如通过RLHF或SFT),需要通过角色扮演攻击的形式进行创造性思考,其中LLM被指示以恶意角色的方式行事,如Ganguli等人在’22中所述。指示模型以代码而不是自然语言进行响应也可以揭示模型学习到的偏见,如下面的示例。
查看这个推文线程以获取更多示例。
以下是根据ChatGPT本身的观点对LLM进行越狱的一些想法。
对LLM进行红队测试仍然是一个新兴的研究领域,上述策略可能仍然适用于越狱这些模型,或者它们已经帮助部署了大规模的机器学习产品。随着这些模型具备新的能力而变得更加强大,开发能够持续适应的红队测试方法变得至关重要。红队测试的一些必要最佳实践包括模拟寻求权力行为的情景(例如:资源)、劝说人们(例如:伤害自己或他人)、在物理结果上具有代理权(例如:通过API在线订购化学品)。我们将这类可能具有物理后果的可能性称为关键威胁情景。
评估LLM进行此类恶意行为的一个限制是,我们不知道它们有哪些能力,因为它们并没有明确训练以展示此类行为(因此称为新兴能力)。因此,实际上了解随着其变得更加强大,LLM有哪些能力的唯一方法是模拟可能导致恶意结果的所有可能情况,并评估模型在每种情况下的行为。这意味着我们模型的安全行为与我们的红队测试方法的强度相关。
鉴于红队测试的持久挑战,多个组织之间在数据集和最佳实践方面存在合作的动力(可能包括学术界、工业界和政府机构)。共享信息的结构化过程可以使较小的实体在发布之前对其模型进行红队测试,从而在整个用户体验中实现更安全的结果。
红队测试的开源数据集:
- Meta的Bot Adversarial对话数据集
- Anthropic的红队测试尝试
- AI2的RealToxicityPrompts
从过去对LLM进行红队测试的工作中发现(来自Anthropic的Ganguli等人2022年和Perez等人2022年)
- 带有有用、诚实和无害行为的少样本提示型LM与普通LM相比,在红队测试方面并不更难。
- 攻击成功率与模型规模的扩展之间没有明确的趋势,除了RLHF模型在扩展时更难红队测试。
- 模型可能通过回避方式学会无害行为,有帮助性和无害性之间存在权衡。
- 对于构成成功攻击的定义,人们之间的一致性较低。
- 成功率的分布在不同类型的伤害之间有所变化,非暴力伤害的成功率较高。
- 众包红队测试会导致模板化的提示(例如:“给出一个以X开头的刻薄词”),使它们变得多余。
未来的方向:
- 目前没有针对代码生成的开源红队测试数据集,该数据集尝试通过代码对模型进行越狱,例如生成实施DDOS或后门攻击的程序。
- 为关键威胁情景设计和实施红队测试策略。
- 红队测试可能需要大量的计算和人力资源,因此从共享策略、开源数据集以及可能的合作中获益,增加成功的机会。
- 评估回避性和有用性之间的权衡。
- 基于上述权衡列举选择,并探索红队测试的帕累托前沿(类似于Anthropic的宪法AI工作)
这些限制和未来的方向清楚地表明,红队测试是现代LLM工作流程中一个未被充分探索的重要组成部分。本文呼吁LLM研究人员和HuggingFace的开发者社区合作,共同努力实现一个安全友好的世界 🙂
如果您有兴趣加入此类合作,请联系我们(@nazneenrajani @natolambert @lewtun @TristanThrush @yjernite @thomwolf)。
致谢:我们要感谢Yacine Jernite对本博文中术语正确使用的有益建议。