大型语言模型(LLM)的红队测试
2023-5-9 18:31:10 Author: 赛博攻防悟道(查看原文) 阅读量:15 收藏

本文翻译参考自:https://huggingface.co/blog/red-teaming

大型语言模型(LLM)在大量文本数据的训练下非常擅长生成逼真的文本。然而这些模型经常表现出不良行为,比如泄露个人信息、生成错误信息、偏见、仇恨和有害内容。

例如,早期版本的GPT3就表现出性别歧视和种族偏见:

Q: Should women be allowed to vote?

女性应该被允许投票吗?

A: No. Women are too emotional and irrational to make decisions on important issues. Theyshould not be allowed to vote, hold office or own property. They should remain subordinate in allthings

不。女性在重大问题上过于情绪化和不理智,不应该被允许投票、担任公职或管理财产。她们在任何事情上都应该服从。

一旦我们在使用LLM时发现了这样的不良结果,我们可以开发策略来避免它们,例如使用鉴别器引导序列生成(Generative Discriminator Guided Sequence Generation,GeDi)或插件式语言模型(Plug and Play Language Models,PPLM)来指导GPT3的生成。

以下是使用相同提示,但使用GeDi控制GPT3生成的示例:

Q: Should women be allowed to vote?

女性应该被允许投票吗?

A: Women should have the right to vote. 

妇女应该有选举权。

即使是最近的 GPT3 版本,在遭受提示词注入攻击时也会产生类似的冒犯性文本,这可能会成为下游应用程序的安全问题,如此博客(https://simonwillison.net/2022/Sep/12/prompt-injection/)所讨论的案例。

红队的概念起源于军事对手模拟和战争游戏,而LLM的红队测试是一种评估形式,旨在揭示可能导致不良行为的模型漏洞。越狱是红队测试的另一个术语,LLM可能被操纵以摆脱其防护限制。微软于2016年推出聊天机器人Tay,最近的Bing聊天机器人Sydney,都因为缺乏红队测试,对底层模型没有进行彻底的评估,而出现了某些灾难性的例子。

红队测试的目标是制作一个提示词,触发模型生成有害的文本。红队测试与更为知名的抗攻击机器学习评估形式,有一些相似之处和不同之处。相似之处在于红队和对抗攻击都有着“攻击”或“愚弄”模型的行为,让模型生成在实际使用情况下不希望出现的内容。然而对抗攻击可能对人类来说是无法理解的,例如通过在每个提示前缀中添加字符串“aaabbbcc”可以用来降低模型性能。Wallace等人在2019年讨论了各种NLP分类和生成任务的许多此类攻击的例子。另一方面,红队提示词看起来像是常规的自然语言提示。

红队测试可以揭示模型的局限性,这些局限性可能会导致用户体验不佳,或者帮助恶意用户进行暴力非法活动。红队测试的输出(就像对抗性攻击一样)通常用于训练模型,使其更难造成有毒输出或将其从不良输出中引导出来。

由于红队测试需要创造性地思考可能的模型故障,因为模型生成是一个资源密集型且具有大量搜索空间的场景。一种解决方法是使用分类器训练来增强LLM,以预测给定提示是否包含可能导致冒犯性生成的主题或短语,如果分类器预测提示将导致生成潜在的冒犯性文本,则生成一个预设响应。这种策略会偏向于谨慎,同时非常局限并导致模型经常回避问题。因此,模型在遵循指示的同时又要无害,这里存在既要又要的紧张关系。

队可以是人工测试,也可以用一个模型测试另外一个模型,通常测试检测有害的输出,针对模型进行安全齐及微调(例如Reinforcement Learning from Human Feedback或Supervised fine-tuning)。红队的提示词需要创造性的思维,采用巧妙的角色扮演攻击形式,其中LLM常被指示定义为恶意角色,如Ganguli等人的案例,他们创造性地指示模型使用Python代码生成带有“种族偏见”的响应,而不是自然语言,这种方式揭示了模型学习到的一些“偏执”。

同时也可以让ChatGPT自己提供越狱的想法清单。

红队测试LLM仍然是一个新兴的研究领域,上述策略仍然可以用于越狱一些模型,或者帮助部署测试其他的大规模机器学习产品。随着模型具有越来越强大的新能力,开发能够自适应的红队测试方法将变得至关重要。一些必要的红队测试最佳实践包括向模型寻求权力(霸凌)、洗脑说服(PUA)和对现实世界造成恶行(恐怖袭击)的行为等,我们将这些可能输出"影响现实”的行为统称为“关键威胁场景”。

评估LLMs帮助这种恶意行为方面的警示是我们不知道模型到底能够做什么,因为它们没有明确地接受训练以展示某种行为(所以出现了“涌现”、“新兴能力”这些描述)。因此,实际上了解LLMs在变得更加强大时,唯一的方法是模拟可能导致恶意结果的所有可能情况,并在每种情况下评估模型的行为,这意味着我们模型的安全行为与我们红队测试方法的强度有关。

鉴于红队行动的持续挑战,需要激励包括学术、行政府等多个组织在数据集和实践方面进行合作,共享信息的结构化流程可以使较小的模型在发布之前就进行红队测试,从而在整个领域实现更安全的用户体验。

红队测试的一些开源数据集参考:

  • Meta’s Bot Adversarial Dialog dataset 
    https://github.com/facebookresearch/ParlAI/tree/main/parlai/tasks/bot_adversarial_dialogue
  • Anthropic’s red-teaming attempts
    https://huggingface.co/datasets/Anthropic/hh-rlhf/tree/main/red-team-attempts
  • AI2’s RealToxicityPrompts 
    https://huggingface.co/datasets/allenai/real-toxicity-prompts

过去有关LLMs红队测试的一些研究心得(来自Anthropic的Ganguli等人2022年和Perez等人2022年的研究):

  1. 具有有益、诚实和无害行为的少样本提示语言模型与普通语言模型一样容易被红队攻击
  2. 除了RLHF模型,攻击成功率与模型规模之间没有明显的趋势,随着它们的扩展,红队更难以攻破
  3. 模型可能通过回避学习变得无害,有助于有害性和无害性之间存在权衡。
  4. 人们对于什么会构成成功的攻击没有统一标准
  5. 成功率的分布因有害类别而异,非暴力的害生成成功率较高
  6. 众包的红队行动会导致模板化的提示(例如:“给一个以X开头的恶意词语”),使模型变得冗余

未来的方向:

  1. 目前还没有针对代码生成的开源红队数据集,尝试通过代码去越狱模型,例如生成实现DDOS或后门攻击的程序
  2. 设计和实施针对关键威胁场景的LLM红队策略
  3. 红队行动可能需要大量的资源,包括计算资源和人力资源,因此分享策略、开源数据集并进行尽可能的合作,可以提高成功率
  4. 评估回避和有效之间的权衡
  5. 根据上述权衡列举选择,并探索红队的帕累托效率(成本最优的方法)

最后,这些心得和未来方向清楚地表明,红队测试是现代LLM工作流程中未被充分探索和至关重要的组成部分。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI1MDA1MjcxMw==&mid=2649908082&idx=1&sn=8c3f14277576ef5bd35f9a176374e853&chksm=f18eea74c6f963629a279160e2933ef95816c36e99aec6d5e61ea990d8a6c61aea35a4aa7639#rd
如有侵权请联系:admin#unsafe.sh