RapidResponseBench/rapidresponsebench

GitHub: RapidResponseBench/rapidresponsebench

一个用于评估大语言模型针对越狱攻击的快速防御响应能力的基准测试与评估框架。

Stars: 35 | Forks: 5

# RapidResponseBench **环境设置** 将 benchmark 和 artifacts 克隆到同一个目录下。benchmark 会自动查找 artifacts。或者,如果你想从任意位置写入/读取 artifacts,你需要将环境变量 `ARTIFACTS_ROOT` 设置为 artifacts 仓库的路径。 ``` git clone https://github.com/rapidresponsebench/rapidresponsebench.git git clone https://github.com/rapidresponsebench/rapidresponseartifacts.git ``` 设置虚拟环境并安装依赖(包括 `rapidresponsebench`): ``` cd rapidresponsebench python3 -m venv venv source venv/bin/activate pip install -r requirements.txt pip install -e . ``` 我们在 `notebooks` 中使用的脚手架利用 `pm2` 来管理 rapid response pipeline 的并行实例。安装方法如下: ``` apt-get update && apt install -y npm && npm i -g pm2 ``` 为了进行绘图,请确保你安装了合适的 latex 库: ``` apt install texlive-latex-extra texlive-fonts-recommended dvipng cm-super ``` 针对三个目标模型的攻击 artifacts 和 proliferations 已经预先生成。建议直接使用这些预生成的 artifacts,而不是重新运行攻击。如果你确实想运行攻击,你应该在 `rapidresponseartifacts` 内部设置一个单独的虚拟环境,因为它依赖于 `easyjailbreak`,而这会与某些最新版本的远程推理 sdk 产生一些冲突。 在我们的论文中,我们对受 llama-guard-2 保护的 language model 运行了攻击。由于没有方便的 llama-guard-2 远程推理提供商,我们在本地运行它;并且由于我们不希望在并行运行攻击时用 llama-guard-2 的实例占满所有 gpu 内存,我们在本地启动了一个 web 服务器,并将所有并行进程指向该单一服务器(使用 `guard_url` 指定)。你可以使用 `python utils/guard_service.py` 来启动此 web 服务器。 **API KEYS** 防御 pipeline 使用了 Claude-3.5-Sonnet、各种开源模型以及 GPT-4o。你需要配置 `ANTHROPIC_API_KEY`、`OPENAI_API_KEY` 和 `TOGETHER_API_KEY` 才能使其正常工作。 **运行防御 pipeline** `notebooks/evaluate_main.py` 包含了遍历不同防御配置的示例。任务被分配到并行的 `pm2` 进程中执行。 `RapidResponseBench` 使用多层缓存来简化开发流程。 - 攻击和 proliferation 的 artifacts 在所有运行中仅生成一次 - 防御缓存(使用 `overwrite=True` 覆盖)。在防御机制进行自适应更新后,我们会保存防御的状态,并将其缓存以便在评估运行中获取最终分数。 - 结果缓存(默认为覆盖,使用 `cache_results=False` 禁用)。我们还可以对评估运行进行缓存。 请确保你正确失效/使用了正确的缓存。 **加载 artifacts** 我们提供了允许轻松加载不同数据源的单例: ``` from rapidresponsebench import DEFENSE, ATTACK, PROLIFERATION, RESULT PROLIFERATION.fetch_artifacts( attack="pair_iid", target="gpt-4o-08-06-2024", proliferation_model="meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo", proliferation_temperature=1.0, proliferation_top_p=1.0, proliferation_shots=1, proliferation_is_benign=False ) ATTACK.fetch_artifacts( attack=f"pair_iid", target="gpt-4o-08-06-2024", behaviors=f"train" ) RESULT.fetch( response="guardfinetuning", attacks="cipher,crescendo,msj,pair,renellm,skeleton_key", model="gpt-4o-08-06-2024", shots=5, proliferation_model="meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo", proliferation_compute_fraction=1.0, proliferation_top_p=1.0, proliferation_temperature=1.0 ).json() DEFENSE.fetch( response="guardfinetuning", attacks="cipher,crescendo,msj,pair,renellm,skeleton_key", model="gpt-4o-08-06-2024", shots=5, proliferation_model="meta-llama/Meta-Llama-3.1-70B-Instruct-Turbo", proliferation_compute_fraction=1.0, proliferation_top_p=1.0, proliferation_temperature=1.0 ).pkl() ```
标签:AI安全, Chat Copilot, DLL 劫持, Petitpotam, Python, 大语言模型, 数据展示, 无后门, 红队, 越狱防护, 逆向工具