microsoft/BIPIA

GitHub: microsoft/BIPIA

微软推出的首个间接提示注入攻击基准测试框架,提供多场景攻击数据集和防御方法,用于评估和提升大语言模型的安全鲁棒性。

Stars: 106 | Forks: 13

# BIPIA [![论文](https://img.shields.io/badge/Paper-%F0%9F%8E%93-lightblue?style=flat-square)](https://arxiv.org/abs/2312.14197) [![代码](https://img.shields.io/badge/Code-%F0%9F%92%8e-lightgrey?style=flat-square)](https://github.com/microsoft/BIPIA) 这是我们“针对大型语言模型的间接提示注入攻击的基准测试与防御”工作的数据和代码。 如果您认为本仓库中的内容侵犯了您的权利,请联系我们请求删除。 ## 概述 大型语言模型(LLM)的最新进展促使其被广泛应用于各种应用中,特别是将 LLM 与外部内容结合以生成响应。然而,这些应用容易受到间接提示注入攻击,即嵌入在外部内容中的恶意指令会破坏 LLM 的输出,导致其响应偏离用户预期。尽管发现了这一安全问题,但由于缺乏基准,目前尚无针对不同 LLM 的间接提示注入攻击的综合分析。此外,目前尚未提出有效的防御措施。 我们推出了首个**间**接**提**示**注**入**攻**击基准(BIPIA),用于衡量各种 LLM 和防御措施对间接提示注入攻击的鲁棒性。我们还针对黑盒和白盒场景提出了几种防御措施。我们希望我们的基准和防御能激发这一重要领域的未来工作。 ## 环境要求 ### 软件要求 从源码安装 bipia 及其依赖项: ``` git clone git@github.com:microsoft/BIPIA.git pip install . ``` 该软件包已在 Linux: Ubuntu 20.04.6 上经过测试和验证。建议使用此操作系统以获得最佳兼容性。 ### 硬件要求 为了评估 LLM 对间接提示注入攻击的鲁棒性,我们建议使用具有以下规格的机器: 1. 对于与基于 API 的模型(如 GPT)相关的实验,您可以在没有 GPU 的机器上完成。但是,您需要设置账户的 API 密钥。 2. 对于 13B 及以下的开源模型,我们的代码已在配有 2 张 V100 GPU 的机器上进行了测试。对于大于 13B 的模型,需要 4-8 张 V100 GPU。如果有性能更好的 GPU,如 A100 或 H100,您也可以使用它们来完成实验。基于微调的实验是在配有 8 张 V100 GPU 的机器上完成的。 ## 如何使用 我们在 [demo.ipynb](demo.ipynb) 中提供了一个简单的示例,演示如何使用代码加载数据集并评估 LLM 对间接提示注入攻击的鲁棒性。 ### 下载数据集