问题:现代大语言模型中的过度拒绝
随着大语言模型变得更加注重安全,它们越来越多地加入过滤器或接受训练以标记敏感查询。但这些模型通常缺乏上下文辨别能力。例如,模型可能拒绝回答以下查询:
- “我可以为学校项目了解吸烟的危害吗?”
- “用针头类比解释疫苗如何工作”
尽管这些是教育性查询,但由于某些触发词如"吸烟"或"针头",模型有时会将其归类为潜在不安全。这个问题在专业应用中尤其关键,如医疗聊天机器人、教育工具或人力资源支持,其中必须在保持安全性的同时保持帮助性和相关性。
解决方案:介绍FalseReject
FalseReject是一个大规模、精心策划的数据集,包含看似潜在不安全但实际上良性和合理的提示。它针对44个敏感主题类别,旨在在上下文细微差别重要的场景中挑战大语言模型。
FalseReject具有三个关键特征:
- 丰富多样的主题:数据集涵盖的类别比任何可比基准都多,几乎是先前基准的两到四倍;
- 带有推理链的结构化响应:每个提示都配有两个响应,一个标准响应和一个带有长推理轨迹的响应,使模型能够学习如何证明特定提示是安全的并制定有帮助的答案,而不是一概拒绝;
- 通过图知对抗智能体生成:开发了新颖的多智能体对抗生成框架,创建看似敏感但上下文良性的多样化提示,帮助模型区分真正不安全的查询和安全边缘案例,同时不削弱安全边界。
图基多智能体生成
使用大语言模型的大规模合成数据生成通常会导致重复内容,降低多样性。在生成训练示例之前,我们使用大语言模型从现有数据集中的有毒提示中识别和提取实体,重点关注与安全关注相关的人员、位置、对象和概念。我们多次重复此过程,生成多个列表,然后要求大语言模型集合选择最具代表性的列表。
接下来,我们使用大语言模型识别提取实体之间的关系,并将该信息编码在实体图中。基于该图,被提示作为生成器的大语言模型提出涉及潜在不安全实体的示例提示。
然后,被提示作为判别器的大语言模型确定候选提示是真正不安全还是仅看似不安全。被判断为安全的提示然后传递给一个大语言模型池,这些模型尝试处理它们。任何被池中至少一个大语言模型拒绝的提示都会被保留以供进一步评估。
最后,被提示作为协调器的大语言模型确定保留的提示是否构成有效的过度拒绝案例,特别是它们是否尽管看似令人担忧但实际上是良性的。有效案例被保留用于数据集;无效提示被反馈给生成器进行改进。
在过程的每次迭代中,生成器通过生成看似不安全但实际上无害的提示来积极尝试触发拒绝。同时,判别器试图避免被误导,识别它们是安全还是不安全。这种对抗性互动产生了极其细微的训练示例,可以帮助大语言模型学习细粒度区分。
实验结果
我们评估了29个最先进的大语言模型,包括开源和闭源模型,涵盖标准和推理导向的变体。我们的发现既令人清醒又充满希望:
- 所有模型都表现出显著的过度拒绝率,即使是领先的商业模型也拒绝回答25%-50%的安全提示;
- 更大的模型大小与更好的拒绝行为不相关;
- 更强的通用语言能力并不意味着更低的过度拒绝;
- 使用FalseReject微调的模型显示出明显改进,在不增加不安全生成和通用语言能力的情况下提供更有帮助的响应。
实用性:FalseReject如何帮助大语言模型开发
FalseReject不仅仅是一个数据集:它是改进大语言模型上下文安全性的框架。以下是它的使用方式:
- 微调:训练模型为对边缘案例提示的响应开发基于推理的论证;
- 基准测试:使用人工标注的测试集评估拒绝行为;
- 调试:理解模型对哪些类别过度敏感;
- 转移评估:在标准安全数据集之外测试指令跟随或推理模型的稳健性。
FalseReject是朝着更周到和上下文感知语言模型的关键一步。通过专注于结构化推理,它在帮助性和安全性之间架起桥梁,提供了一种可扩展的方法来减少大语言模型中的有害过度谨慎。