DeepInception 项目简介
背景介绍
在各类应用中,大型语言模型(LLMs)取得了显著的成功。然而,这些模型仍然容易受到一些有意图的“越狱”攻击影响,使得原本的安全机制失效。以往的研究通常依靠高计算成本的暴力优化方法,这种方法在实际中可能既不实用也不高效。DeepInception 项目的灵感来源于米尔格拉姆实验,即个体可能因权威的指令而进行有害行为。该项目揭示了一种轻量级的方法——DeepInception,可以轻松地使 LLM 成为“越狱”者,从而揭示其潜在的误用风险。
项目目标
DeepInception 旨在利用 LLM 的拟人化能力,构建一个新颖的嵌套场景,提高模型的自适应能力,使其逃避正常环境下使用控制,并为进一步的直接“越狱”提供可能性。通过这项技术,可以在不同的使用场景下使得模型在后续交互中实现持续的“越狱”,揭示包括 Falcon、Vicuna、Llama-2 和 GPT-3.5/4/4V 在内的开源和闭源 LLM 的关键弱点。
实验与成果
该项目通过大量实验验证了 DeepInception 的有效性,不仅成功率可与此前的研究相媲美,还能够在后续交互中实现连续“越狱”。研究指出,人们应该更加关注 LLM 的安全性方面,开发更强的防御措施以应对可能的误用风险。
项目开始指南
在搭建 DeepInception
之前,确保你的环境中安装了 PyTorch 版本 ≥ 1.10,并支持 GPU。接下来,在你的环境中运行如下命令以安装所需的依赖包:
pip install -r requirements.txt
对于使用闭源模型的实验,设置 OpenAI Key 时,确保 API key 已存储在 OPENAI_API_KEY
中。例如:
export OPENAI_API_KEY=[YOUR_API_KEY_HERE]
如果希望本地使用 Vicuna、Llama 和 Falcon 运行 DeepInception
,需要在 config.py
中修改相应模型的路径,并根据 huggingface 的模型指令下载相应的模型。
运行实验
要运行 DeepInception
,可使用如下命令:
python3 main.py --target-model [TARGET MODEL] --exp_name [EXPERIMENT NAME] --DEFENSE [DEFENSE TYPE]
例如,要在 CUDA 0 上通过 Vicuna-v1.5-7b
作为目标模型运行主要的 DeepInception
实验(表 1),可以使用以下命令:
CUDA_VISIBLE_DEVICES=0 python3 main.py --target-model=vicuna --exp_name=main --defense=none
运行结果将保存在 ./results/{target_model}_{exp_name}_{defense}_results.json
,本例中为 ./results/vicuna_main_none_results.json
。详细的参数和说明请查看 main.py
文件。
引用格式
如果您在研究中使用了 DeepInception,请引用如下文章:
@article{li2023deepinception,
title={Deepinception: Hypnotize large language model to be jailbreaker},
author={Li, Xuan and Zhou, Zhanke and Zhu, Jianing and Yao, Jiangchao and Liu, Tongliang and Han, Bo},
journal={arXiv preprint arXiv:2311.03191},
year={2023}
}
参考代码
项目中的一些实现基于以下代码库: