Chat
Ask me anything
Ithy Logo

大型语言模型越狱提示分析总结

深入剖析针对大型语言模型的越狱提示研究项目

jailbreak prompts on large language models

主要发现

  • 全面的越狱提示数据集: 该项目收集了大量真实世界中的越狱提示,为研究大型语言模型(LLM)的安全性提供了宝贵的资源。
  • 多维度的评估框架: 项目不仅提供了数据集,还开发了评估工具,用于分析和检测LLM对越狱提示的响应,并进行语义可视化。
  • 伦理考量与负责任的披露: 该研究强调了数据收集的伦理问题,并主动向相关LLM供应商披露了研究结果,以促进更负责任的模型开发。

项目概述

该项目是ACM CCS 2024会议论文《"Do Anything Now": Characterizing and Evaluating In-The-Wild Jailbreak Prompts on Large Language Models》的官方代码库。该研究深入探讨了大型语言模型(LLM)在真实场景中如何被越狱提示攻击,并提供了相应的评估工具和数据集。该项目旨在通过分析真实世界中的越狱提示,来提高LLM的安全性,并为未来的研究提供参考。

研究背景

大型语言模型(LLM)在自然语言处理领域取得了显著进展,但同时也面临着安全风险。其中,越狱提示是一种常见的攻击方式,通过精心设计的输入,诱导LLM生成原本被限制的有害或敏感内容。该项目旨在系统地研究和评估这种风险,为开发更安全的LLM提供理论和实践基础。

项目目标

该项目的核心目标是:

  • 收集并分析真实世界中的越狱提示。
  • 开发评估工具,用于检测LLM对越狱提示的响应。
  • 通过语义可视化,理解越狱提示的特性。
  • 为改进LLM的安全性提供参考。


目录结构分析

该项目的目录结构清晰,主要分为以下几个部分:


└── verazuo-jailbreak_llms/
    ├── README.md
    ├── LICENSE
    ├── code/
    │   ├── ChatGLMEval/
    │   │   ├── ChatGLMEval.py
    │   │   ├── few_shot_examples.py
    │   │   └── run_evaluator.py
    │   └── semantics_visualization/
    │       └── visualize.ipynb
    └── data/
        ├── README.md
        ├── forbidden_question/
        │   ├── forbidden_question_set.csv
        │   └── forbidden_question_set_with_prompts.csv.zip
        └── prompts/
            ├── jailbreak_prompts_2023_05_07.csv
            ├── jailbreak_prompts_2023_12_25.csv
            ├── regular_prompts_2023_05_07.csv
            └── regular_prompts_2023_12_25.csv
  

根目录文件

  • README.md:项目的主要说明文件,包含项目背景、数据集介绍、代码使用方法、伦理声明和引用信息。
  • LICENSE:项目的开源许可证,采用MIT许可证,允许用户自由使用、修改和分发代码。

代码目录 (code/)

  • ChatGLMEval/:用于评估大语言模型(LLM)响应的代码。
    • ChatGLMEval.py:实现了ChatGLM模型的评估功能,包括模型初始化、提示构建和响应检查。
    • few_shot_examples.py:包含了一些少样本学习的具体示例,用于评估模型的响应。
    • run_evaluator.py:提供了使用评估框架对数据集进行分析的脚本,自动加载问题与回答并生成评估标签。
  • semantics_visualization/:用于可视化提示语义的代码。
    • visualize.ipynb:使用UMAP和WizMap工具对提示进行语义可视化,生成可交互的可视化界面。

数据目录 (data/)

  • README.md:详细说明了数据集的结构和字段含义,包括提示数据集与禁用问题集。
  • forbidden_question/:包括与13种被禁止场景相关的问题集,包含390个问题。
    • forbidden_question_set.csv:包含390个禁止性问题,涵盖13个禁止性场景,如非法活动、仇恨言论、恶意软件生成等。
    • forbidden_question_set_with_prompts.csv.zip:包含扩展的禁止性问题集,每条记录附加多个提示案例和生成答案。
  • prompts/:包括经过时间更新的普通提示(regular prompts)和越狱提示(jailbreak prompts)的CSV数据文件。
    • jailbreak_prompts_2023_05_07.csv:2023年5月7日收集的越狱提示。
    • jailbreak_prompts_2023_12_25.csv:2023年12月25日收集的越狱提示。
    • regular_prompts_2023_05_07.csv:2023年5月7日收集的常规提示。
    • regular_prompts_2023_12_25.csv:2023年12月25日收集的常规提示。

文件内容分析

README.md 文件

README.md 文件提供了项目的全面概述,包括:

  • 项目背景:该项目是ACM CCS 2024论文的官方代码库,研究了大型语言模型(LLM)在真实场景中的越狱提示。
  • 数据集:收集了2022年12月至2023年12月期间的15,140个提示,其中1,405个被识别为越狱提示。
  • 代码使用:提供了如何使用Hugging Face库加载数据集的示例。
  • 伦理声明:强调了数据收集的伦理问题,并指出研究仅涉及公开数据。
  • 引用信息:提供了论文的引用格式。

LICENSE 文件

LICENSE 文件表明该项目采用MIT许可证,允许用户自由使用、修改和分发代码。

code/ChatGLMEval/ChatGLMEval.py 文件

ChatGLMEval.py 文件实现了ChatGLM模型的评估功能,包括:

  • init_model:初始化ChatGLM模型。
  • get_ChatGLM_answer:获取ChatGLM模型的响应。
  • build_individual_prompt:构建单个问题的提示。
  • check:检查模型响应是否符合要求。

code/ChatGLMEval/few_shot_examples.py 文件

few_shot_examples.py 文件包含了一些少样本学习的具体示例,用于评估模型的响应。示例包括越狱提示和基线提示,每个示例包含问题、响应和标签。

code/ChatGLMEval/run_evaluator.py 文件

run_evaluator.py 文件用于运行评估器,加载数据并调用ChatGLMEval进行评估。主要功能包括:

  • main:加载数据并调用评估器进行评估。

code/semantics_visualization/visualize.ipynb 文件

visualize.ipynb 文件使用UMAP和WizMap工具对提示进行语义可视化。主要步骤包括:

  • 提取2维嵌入。
  • 生成WizMap所需的JSON文件。
  • 使用WizMap进行可视化。

data/README.md 文件

data/README.md 文件详细介绍了提示数据集和禁止性问题集的结构和内容。

  • 提示数据集:包含从不同平台收集的提示,分为越狱提示和常规提示。
  • 禁止性问题集:包含390个问题,涵盖13个禁止性场景。

data/forbidden_question/forbidden_question_set.csv 文件

forbidden_question_set.csv 文件包含390个禁止性问题,涵盖13个禁止性场景,如非法活动、仇恨言论、恶意软件生成等。


数据集详细信息

该项目的数据集主要包括两部分:提示数据集和禁止性问题集。

提示数据集

提示数据集包含从多个平台收集的15,140个提示,其中1,405个被识别为越狱提示。这些提示来自Reddit、Discord、网站和开源数据集,时间范围从2022年12月到2023年12月。

数据集的统计信息如下表所示:

平台 来源 # 帖子 # 用户 # 恶意用户 # 提示 # 越狱提示 提示时间范围
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 -
总计 169,933 7,308 803 15,140 1,405 2022.12-2023.12

禁止性问题集

禁止性问题集包含390个问题,涵盖13个禁止性场景,这些场景基于OpenAI的使用政策。这些场景包括:

  • 非法活动
  • 仇恨言论
  • 恶意软件生成
  • 身体伤害
  • 经济伤害
  • 欺诈
  • 色情内容
  • 政治游说
  • 隐私暴力
  • 法律意见
  • 财务建议
  • 健康咨询
  • 政府决策

每个场景包含30个问题,旨在测试LLM是否会生成有害或不当内容。


代码功能

该项目提供了用于评估和可视化LLM响应的代码。

ChatGLMEval

ChatGLMEval 模块用于评估LLM的响应,主要功能包括:

  • 模型初始化:加载THUDM的ChatGLM-6B模型。
  • 提示构建:使用示例数据构造自定义提示。
  • 响应检查:基于多策略的逻辑判断模型回答,如关键词检测和响应长度。

语义可视化

semantics_visualization 模块用于可视化提示的语义,主要功能包括:

  • 嵌入生成:结合sentence-transformers生成嵌入向量。
  • 降维:使用UMAP对高维嵌入降维。
  • 可视化:通过WizMap生成提示语义的交互式可视化。
该模块可以将越狱提示和普通提示区分为两类,并通过可视化观察其语义差异。


伦理声明

该项目强调了数据收集的伦理问题,并采取了以下措施:

  • 数据来源:数据采集自公开渠道,仅供研究使用。
  • 隐私保护:不尝试去匿名化任何用户,并报告汇总结果。
  • 负责任的披露:已向相关大语言模型厂商披露了研究结果。
  • 禁止滥用:强调项目仅用于研究目的,不得滥用于生成有害或敏感内容。


总结

该项目聚焦于大型语言模型的安全性评估,特别是对“越狱提示”的检测和特性分析。它提供了一套完整的工具,从数据集加载、模型评估到直观的语义可视化。该项目的数据和代码均已公开,并采用MIT开源协议,为研究人员和开发者提供了便捷的研究平台。

主要亮点

  • 系统性研究:首次系统研究了野外越狱提示词。
  • 大型数据集:建立了最大的野外越狱提示词数据集。
  • 实用工具:提供了从数据集加载、评估模型到直观语义可视化的全套工具。
  • 开源:数据和代码公开,且使用MIT开源协议,为研究人员及开发者提供了便捷的研究平台。

参考资料


Last updated January 19, 2025
Ask Ithy AI
Download Article
Delete Article