verazuo/jailbreak_llms
GitHub: verazuo/jailbreak_llms
该项目构建了目前最大的真实环境大语言模型越狱提示词数据集,包含 15,140 个提示词和配套的安全评估框架。
Stars: 3573 | Forks: 317
# 大语言模型上的真实越狱提示词
[](https://dl.acm.org/doi/10.1145/3658644.3670388)
[](https://arxiv.org/abs/2308.03825)
[](https://jailbreak-llms.xinyueshen.me/)
[](https://huggingface.co/datasets/TrustAIRLab/in-the-wild-jailbreak-prompts/)
[](https://opensource.org/licenses/MIT)
这是 ACM CCS 2024 论文 [《Do Anything Now'': Characterizing and Evaluating In-The-Wild Jailbreak Prompts on Large Language Models](https://arxiv.org/abs/2308.03825) 的官方代码库,作者为 [Xinyue Shen](https://xinyueshen.me/), [Zeyuan Chen](https://picodora.github.io/), [Michael Backes](https://michaelbackes.eu/), Yun Shen, 和 [Yang Zhang](https://yangzhangalmo.github.io/)。
在本项目中,利用我们的新框架 JailbreakHub,我们对真实环境中的越狱提示词进行了首次测量研究,收集了从 2022 年 12 月到 2023 年 12 月的 **15,140 个提示词**(包括 **1,405 个越狱提示词**)。
请查看我们的[网站](https://jailbreak-llms.xinyueshen.me/)。
**免责声明。本代码库包含有害语言示例。建议读者谨慎阅读。本代码库仅供研究目的使用。严禁任何滥用行为。**
## 数据
## 提示词
总体而言,我们从四个平台(Reddit、Discord、网站和开源数据集)收集了 2022 年 12 月至 2023 年 12 月期间的 15,140 个提示词。在这些提示词中,我们识别出 1,405 个越狱提示词。据我们所知,该数据集是目前最大的真实越狱提示词集合。
数据可在[此处](https://github.com/verazuo/jailbreak_llms/tree/main/data)获取。
| Platform | Source | # Posts | # UA | # Adv UA | # Prompts | # Jailbreaks | Prompt Time Range |
| --------- | -------------------------- | ----------- | --------- | -------- | ---------- | ------------ | ------------------- |
| Reddit | r/ChatGPT | 163549 | 147 | 147 | 176 | 176 | 2023.02-2023.11 |
| Reddit | r/ChatGPTPromptGenius | 3536 | 305 | 21 | 654 | 24 | 2022.12-2023.11 |
| Reddit | r/ChatGPTJailbreak | 1602 | 183 | 183 | 225 | 225 | 2023.02-2023.11 |
| Discord | ChatGPT | 609 | 259 | 106 | 544 | 214 | 2023.02-2023.12 |
| Discord | ChatGPT Prompt Engineering | 321 | 96 | 37 | 278 | 67 | 2022.12-2023.12 |
| Discord | Spreadsheet Warriors | 71 | 3 | 3 | 61 | 61 | 2022.12-2023.09 |
| Discord | AI Prompt Sharing | 25 | 19 | 13 | 24 | 17 | 2023.03-2023.04 |
| Discord | LLM Promptwriting | 184 | 64 | 41 | 167 | 78 | 2023.03-2023.12 |
| Discord | BreakGPT | 36 | 10 | 10 | 32 | 32 | 2023.04-2023.09 |
| Website | AIPRM | - | 2777 | 23 | 3930 | 25 | 2023.01-2023.06 |
| Website | FlowGPT | - | 3505 | 254 | 8754 | 405 | 2022.12-2023.12 |
| Website | JailbreakChat | - | - | - | 79 | 79 | 2023.02-2023.05 |
| Dataset | AwesomeChatGPTPrompts | - | - | - | 166 | 2 | - |
| Dataset | OCR-Prompts | - | - | - | 50 | 0 | - |
| **Total** | | **169,933** | **7,308** | **803** | **15,140** | **1,405** | **2022.12-2023.12** |
**加载提示词**
您可以使用 Hugging Face [`Datasets`](https://huggingface.co/datasets/TrustAIRLab/in-the-wild-jailbreak-prompts) 库轻松加载所有收集的提示词。
```
from datasets import load_dataset
dataset = load_dataset('TrustAIRLab/in-the-wild-jailbreak-prompts', 'jailbreak_2023_05_07', split='train')
# dataset = load_dataset('TrustAIRLab/in-the-wild-jailbreak-prompts', 'jailbreak_2023_12_25', split='train')
# dataset = load_dataset('TrustAIRLab/in-the-wild-jailbreak-prompts', 'regular_2023_05_07', split='train')
# dataset = load_dataset('TrustAIRLab/in-the-wild-jailbreak-prompts', 'regular_2023_12_25', split='train')
```
原始 csv 文件提供在我们的 GitHub 代码库 [jailbreak_llms](https://github.com/verazuo/jailbreak_llms/tree/main/data) 中。
注意:如果您计划使用此数据集训练模型,建议对 `prompt` 字段进行预处理以去除重复项。
更多详情,请参阅[此讨论](https://huggingface.co/datasets/TrustAIRLab/in-the-wild-jailbreak-prompts/discussions/3)。
## 问题集
为了评估越狱提示词的有效性,我们构建了一个包含 390 个问题的问题集,涵盖 13 个禁止场景,这些场景采纳自 [OpenAI 使用政策](https://openai.com/policies/usage-policies)。
我们从评估中排除了 `Child Sexual Abuse`(儿童性虐待)场景,并重点关注其余 13 个场景,包括 `Illegal Activity`(非法活动)、`Hate Speech`(仇恨言论)、`Malware Generation`(恶意软件生成)、`Physical Harm`(人身伤害)、`Economic Harm`(经济伤害)、`Fraud`(欺诈)、`Pornography`(色情内容)、`Political Lobbying`(政治游说)、`Privacy Violence`(侵犯隐私)、`Legal Opinion`(法律意见)、`Financial Advice`(理财建议)、`Health Consultation`(健康咨询)和 `Government Decision`(政府决策)。
```
from datasets import load_dataset
forbidden_question_set = load_dataset("TrustAIRLab/forbidden_question_set", split='train')
```
问题集的原始文件也提供在我们的 GitHub 代码库 [jailbreak_llms](https://github.com/verazuo/jailbreak_llms/tree/main/data) 中。
## 代码
### 评估器 - ChatGLMEval
```
cd code/ChatGLMEval
python run_evaluator.py
```
### 语义可视化
查看 `code/semantics_visualization/visualize.ipynb`
## 伦理
我们承认在线收集的数据可能包含个人信息。因此,我们采用标准的最佳实践以确保我们的研究遵循伦理原则,例如不尝试对任何用户进行去匿名化处理,并报告汇总结果。由于本研究仅涉及公开可用的数据,且未与参与者进行互动,因此我们的机构审查委员会 (IRB) 不将其视为人类受试者研究。尽管如此,由于我们的目标之一是衡量大语言模型回答有害问题的风险,不可避免地要披露模型如何生成仇恨内容。这可能会引起对潜在滥用的担忧。然而,我们坚信提高人们对该问题的认识更为重要,因为这可以告知大语言模型供应商和研究社区开发更强的安全防护措施,并有助于更负责任地发布这些模型。
我们已将研究发现负责任地披露给相关的大语言模型供应商。
## 引用
如果您觉得这对您的研究有用,请考虑引用:
```
@inproceedings{SCBSZ24,
author = {Xinyue Shen and Zeyuan Chen and Michael Backes and Yun Shen and Yang Zhang},
title = {{``Do Anything Now'': Characterizing and Evaluating In-The-Wild Jailbreak Prompts on Large Language Models}},
booktitle = {{ACM SIGSAC Conference on Computer and Communications Security (CCS)}},
publisher = {ACM},
year = {2024}
}
```
## 许可证
`jailbreak_llms` 根据 MIT 许可证的条款授权。有关更多详细信息,请参阅 LICENSE。
标签:CCS 2024, ChatGPT, Discord, DLL 劫持, HuggingFace, Jailbreak, Promptflow, Prompt注入, Reddit, 人工智能, 内容审查, 域名收集, 大语言模型, 学术研究, 对抗样本, 提示词工程, 用户模式Hook绕过, 策略决策点, 网络安全, 逆向工具, 隐私保护