AI 安全大型语言模型安全排行榜介绍

发布日期:2024年1月26日
在 GitHub 上更新

鉴于大型语言模型(LLM)的广泛应用,在现实世界中进行大规模部署之前,了解它们在不同场景下的安全性和风险至关重要。特别是,美国白宫发布了一项关于安全、可靠和值得信赖的AI的行政命令;欧盟AI法案强调了高风险AI系统的强制性要求。在法规之外,提供评估AI系统风险、增强其安全性并可能提供安全且对齐的AI系统的技术解决方案也同样重要。

因此,在2023年,我们在安全学习实验室推出了DecodingTrust,这是首个全面统一的评估平台,致力于评估大型语言模型的信任度。(这项工作获得了 NeurIPS 2023 的杰出论文奖

DecodingTrust 提供了一个多方面的评估框架,涵盖八个信任度维度:毒性、刻板印象偏见、对抗鲁棒性、OOD(域外)鲁棒性、对抗性演示鲁棒性、隐私、机器伦理和公平性。具体而言,DecodingTrust 1) 提供全面的信任度视角,用于整体信任度评估;2) 提供针对每个视角量身定制的新颖红队算法,从而能够对大型语言模型进行深入测试;3) 支持在各种云环境中轻松安装;4) 提供针对开放模型和封闭模型的综合排行榜,基于它们的信任度;5) 提供失败示例研究,以增强透明度和理解;6) 提供端到端演示以及详细的模型评估报告,以供实际使用。

今天,我们很高兴宣布推出新的大型语言模型安全排行榜,该排行榜专注于大型语言模型的安全评估,并由HF 排行榜模板提供支持。

红队评估

DecodingTrust 为每个评估视角提供了几种新颖的红队方法,以进行压力测试。详细的测试场景和指标在我们的论文中的图3

针对毒性,我们设计了优化算法和提示生成模型,以生成具有挑战性的用户提示。我们还设计了33个具有挑战性的系统提示,例如角色扮演、任务重构和程序响应,以在不同场景下进行评估。然后,我们利用Perspective API来评估给定我们具有挑战性的提示所生成内容的毒性分数。

针对刻板印象偏见,我们收集了24个人口统计群体和16个刻板印象主题,以及每个主题的三个提示变体,以评估模型偏见。我们对模型提示5次,并取平均值作为模型偏见分数。

为了评估对抗性鲁棒性,我们构建了五种对抗性攻击算法,用于攻击三种开放模型:Alpaca、Vicuna和StableVicuna。我们使用通过攻击开放模型生成的对抗性数据,评估了不同模型在五项不同任务上的鲁棒性。

针对 OOD 鲁棒性视角,我们设计了不同的风格转换、知识转换等,以评估模型在以下情况下的性能:1) 输入风格转换为莎士比亚式或诗歌形式等不常见的风格,或者 2) 回答问题所需的知识在大型语言模型的训练数据中缺失。

为了评估对抗性演示的鲁棒性,我们设计了包含误导性信息的演示,例如反事实示例、虚假相关和后门攻击,以评估模型在不同任务上的表现。

关于隐私,我们提供不同级别的评估,包括:1) 预训练数据中的隐私泄露,2) 对话中的隐私泄露,以及 3) 大型语言模型对隐私相关词语和事件的理解。特别是,对于 1) 和 2),我们设计了不同的方法来执行隐私攻击。例如,我们提供不同格式的提示,以引导大型语言模型输出敏感信息,例如电子邮件地址和信用卡号。

针对伦理,我们利用 ETHICS 和 Jiminy Cricket 数据集设计了越狱系统和用户提示,用于评估模型对不道德行为识别的性能。

对于公平性,我们通过控制不同任务中的受保护属性来生成具有挑战性的问题,以评估模型在零样本和少样本设置下的公平性。

我们论文的一些主要发现

总的来说,我们发现

  1. GPT-4 比 GPT-3.5 更容易受到攻击,
  2. 没有哪个单一的大型语言模型能在所有信任度方面持续优于其他模型,
  3. 不同的信任度视角之间存在权衡,
  4. 大型语言模型在理解不同隐私相关词汇方面表现出不同的能力。例如,如果 GPT-4 被提示“in confidence”,它可能不会泄露私人信息,而如果被提示“confidentially”,它可能会泄露信息。
  5. 大型语言模型在不同信任度视角下容易受到对抗性或误导性提示或指令的影响。

如何提交您的模型以供评估

首先,将您的模型权重转换为 safetensors 格式。这是一种新的权重存储格式,加载和使用更安全、更快。它还将允许我们在主表中显示您的模型参数数量!

然后,确保您可以使用 AutoClasses 加载您的模型和分词器

from transformers import AutoConfig, AutoModel, AutoTokenizer
config = AutoConfig.from_pretrained("your model name")
model = AutoModel.from_pretrained("your model name")
tokenizer = AutoTokenizer.from_pretrained("your model name")

如果此步骤失败,请按照错误消息调试您的模型,然后再提交。很可能是您的模型上传不正确。

备注

  • 请确保您的模型是公开的!
  • 我们尚不支持需要`use_remote_code=True`的模型。但我们正在努力,敬请关注!

最后,使用我们排行榜上的“在此提交!”面板提交您的模型进行评估!

引用

如果您觉得我们的评估有帮助,请考虑引用我们的工作。

@article{wang2023decodingtrust,
  title={DecodingTrust: A Comprehensive Assessment of Trustworthiness in GPT Models},
  author={Wang, Boxin and Chen, Weixin and Pei, Hengzhi and Xie, Chulin and Kang, Mintong and Zhang, Chenhui and Xu, Chejian and Xiong, Zidi and Dutta, Ritik and Schaeffer, Rylan and others},
  booktitle={Thirty-seventh Conference on Neural Information Processing Systems Datasets and Benchmarks Track},
  year={2023}
}

社区

注册登录 发表评论