阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》

  • 【参考文献】Yu, Jiahao, Xingwei Lin, and Xinyu Xing. "Gptfuzzer: Red teaming large language models with auto-generated jailbreak prompts." arXiv preprint arXiv:2309.10253 (2023).
  • 【注】本文仅为作者个人学习笔记,如有冒犯,请联系作者删除。

目录

摘要

一、介绍

二、背景信息

1、LLM

2、Fuzzing

三、方法论

1、概述

2、原始种子 

3、种子选择

4、突变

5、越狱应答 

6、判断模型

 四、实验

1、实验准备

2、预分析

3、单一模型越狱

3.1、单问题 (Single-question)

3.2、多问题

 4、多模型越狱

五、道德考虑

六、总结


摘要

  • 本文介绍了一个受AFL启发的新型黑盒越狱模糊测试框架GPTFuzzer。它可以自动生成LLMs的越狱模板。
  • LLMs:大型语言模型,如ChatGPT、Claude等。
  • 越狱模板 (jailbreak templates):特定的输入模板,结合一些违规的问题后,可以诱骗LLMs输出违规的答案。

一、介绍

  • LLMs已经在包括教育、推理、编程和科学研究在内的各个领域展示了巨大的潜力。LLMs产生似人类文本的能力导致了它们在各种应用中的广泛采用。然而,这种普遍性带来了挑战,它们可能产生有害或误导性的内容,并且容易被诱骗,从而产生无意义或不真实的输出。
  • 越狱攻击 (The jailbreak attack)是针对LLMs的一种显著的对抗性策略。它采用特制的提示 (prompts),绕过LLMs的限制,引发潜在的有害反应。虽然这可以释放LLMs的全部潜力,但它也带来了风险,可能导致非法输出或违反供应商准则。例如,对聊天机器人的成功越狱攻击可能会导致生成攻击性内容,从而有可能导致聊天机器人被暂停。因此,在实际部署之前,评估LLMs对越狱攻击的弹性是至关重要的。
    • 【注】提示 (prompts):提供给LLMs的输入。
  • 大多数现有的越狱攻击研究主要依赖于人工制作提示。虽然这些人工制作的提示可以很好地诱导LLMs产生特定的行为,但这种方法有几个固有的限制。
    • 可伸缩性 (Scalability)
      • 可伸缩性的意思是系统可以灵活地扩展或收缩,以适应不同规模或需求的变化,而不需要重大的改变或影响整体性能。
      • 人工制作提示是不可伸缩的。随着LLMs及其版本数量的增加,为每个LLMs创建单独的提示也不切实际。
    • 劳动强度 (Labor-Intensity)
      • 制作有效的越狱提示需要深厚的专业知识和大量的时间投入。这使得这个过程成本很高,特别是考虑到LLMs的不断发展和更新。
    • 覆盖率 (Coverage)
      • 由于人类的疏忽或偏见,人工的方式可能会错过某些漏洞。
    • 适应性 (Adaptability)
      • LLMs不断发展,定期发布新版本和更新。人工方式很难跟上这样快速的变化,不能很好的开发新的漏洞。
  • 面对以上的挑战,所以本文提出了GPTFuzzer。
  • GPTFuzzer取决于三个关键组成部分:种子选择策略 (seed selection strategy)、变质关系 (metamorphic relations)和判断模型 (judgment model)。从人工制作的越狱提示作为种子开始,对它们进行突变以产生新的提示。然后判断模型评估越狱攻击是否成功。成功攻击的提示会被添加到种子池中,失败的提示会被丢弃。这个过程不断迭代,直到完成一定数量的循环。

二、背景信息

1、LLM

  • LLM是一种深度学习架构,是一种特别的神经网络,在大量数据集上进行训练,以理解和生成类似人类的文本。这些模型利用它们的大量参数(通常有数十亿个)来封装对语言的广泛理解,使它们能够完成各种各样的任务。
  • 模型 (Models)
    • 大多数的LLMs,包括ChatGPT和GPT-4,都是基于 transformer architecture 创建的。这种结构利用注意机制来识别文本序列中单词之间的相互关系。这些模型是自回归的,根据前面的上下文预测序列中的后续单词。
    • 简而言之,给定一个序列W1,W2,...,模型会根据之前的单词来预测下一个单词,即通过最大化下一个单词的概率来预测下一个单词(Wn+1)。模型是迭代的,所以一旦它预测到Wn+1,它将使用扩展序列W1,W2,…,Wn+1来预测Wn+2,以此类推。
    • 这使得自动回归LLMs特别适合于文本生成任务,即模型接收到连贯的、和上下文相关的文本提示来生成对应的内容。
  • 训练 (Training)
    • 在训练词组期间,LLMs被训练给定前一个单词,以最大限度地提高预测下一个单词的概率。因此,它可以用任何文本语料库进行自我监督训练,比如维基百科,甚至是一组书籍。
  • 提示 (Prompt)
    • LLMs的提示是指给予模型的初始输入,指导其后续内容生成。
    • 例如,向模型提供”简要描述如何学习Python”这样的提示,那么模型将根据其训练生成详细的解释。
  • 越狱提示 (Jailbreak prompt)
    • 越狱提示是一种特别构建的输入序列,旨在从LLMs中提取出意外或潜在的有害响应。
    • 虽然LLMs通常可以可靠运行,但越狱提示可以针对模型的训练数据或架构中存在的特定漏洞,使模型产生具有误导性、不安全甚至不道德的输出。
  • 越狱模板 (Jailbreak template)
    • 本文使用术语“越狱模板”来表示精心设计的规避模型限制的总体结构。
    • 通过在“越狱模板”中插入“问题”来创建一个“越狱提示”。例如:
    • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第1张图片

2、Fuzzing

  • 模糊测试 (Fuzzing),是一种软件测试技术,它向软件程序提供一系列随机或伪随机输入,以发现错误、崩溃和潜在漏洞。
  • 模糊测试分为一下三种类型:
    • 黑盒模糊测试 (Black-box fuzzing)
      • 测试人员不了解程序的内部机制,只通过程序的输入和输出进行交互。
    • 白盒模糊测试 (While-box fuzzing)
      • 这种方法涉及对程序源代码的深入分析,以查明潜在的漏洞。然后生成专门用于探测这些漏洞的输入。
    • 灰盒模糊测试 (Grey-box fuzzing)
      • 这种方法在黑盒和白盒模糊之间取得了平衡。虽然测试人员对程序的内部结构有一定的了解,但他们并没有全面的了解。这部分知识被用来比纯黑盒方法更有效地指导测试过程,但没有白盒技术的详尽细节。
    • 本次研究使用的是黑盒测试技术。
  • 典型的黑盒模糊测试主要分为一下几个步骤:
    • 种子初始化 (Seed initialization)
      • 模糊测试的第一步是初始化种子,这是程序的初始输入。这个种子可能是随机的产物,也可能是精心设计的输入,目的是诱导程序产生特定的行为。
    • 种子选择 (Seed select)
      • 在初始化之后,需要从累积的种子池中选择一个种子,这个种子将是程序当前迭代的指定输入。这种选择可能是任意的,也可能是由特定的启发式引导的。
    • 突变 (Mutation)
      • 选择了种子之后,下一步就是改变种子以生成新的输入。
    • 执行 (Execution)
      • 最后一个步骤是把突变后的种子输入到程序中。如果程序崩溃,则把此输入加入到种子池中,为之后的迭代做准备。

三、方法论

  • 通过下面案例发现,虽然前一个人工制作的越狱模板被LLMs拦截了,但是只需要对该越狱模板进行微调还是可以成功越狱的。
    • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第2张图片
  • 虽然人工制作的越狱模板有一定的效果,但是创造出来的数量是有限的。我们已经证明了微调人工制作的模板可以成功越狱,那么此时就迫切需要一个能够自动生成这种越狱模板的工具了。
  • 【方法】对精心设计的越狱模板进行调整,以生成一组新的有效模板,这些模板可以更有效地探测模型的健壮性。

1、概述

  • 下图为GPTFuzzer工作流程的示意图。
    • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第3张图片
  • 首先,从互联网上收集人类编写的越狱模板,形成基础数据集。在每次迭代中,从当前池中选择一个种子(越狱模板),突变生成一个新的越狱模板,然后与目标问题结合。成功的越狱模板将保留在种子池中,其余模板将被丢弃。此过程将一直持续,直到查询预算耗尽或满足停止条件。
  • 下图为GPTFuzzer工作流程的结构化算法表示。
    • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第4张图片

2、原始种子 

  • 收集人工编写的越狱模板,满足一下两个条件:
    • 选择的模板应该能够普遍地应用于各种问题
      • 例如,下面结构包括一个场景描述和一个问题占位符。场景描述为对话提供了一个简短的上下文,而问题占位符是可调整的,允许插入任何问题。这确保我们可以利用越狱模板解决不同的目标问题,而无需手动调整。
    • 选择的模板应该能够在一个回合内引发意外输出
      • 这确保了所有模板,无论其原始设计如何,都可以统一进行评估,而不会出现多回合交互的复杂性。

3、种子选择

  • 每一次迭代,都需要从种子池中选择一个种子进行突变。AFL使用的种子选择策略往往无法精确定位最有效的种子;近期一些模糊器采用的基于UCB的种子选择策略也存在缺陷,虽然它可以收敛到局部最优,但可能会忽略其他有效的种子。
  • 本文提出了一种全新的种子选择策略MCTS-Explore,是蒙特卡洛树搜索 (MCTS)的变体。
  • MCTS:MCTS蒙特卡洛树搜索(The Monte Carlo Tree Search)-CSDN博客
  • MCTS-Explore:
    • 原MCTS在选择种子的时候可能存在两点问题:
      • 非叶结点可能还存在能产生有价值的越狱提示,但不会被选中。
      • 该策略可能会过度关注某个结点。
    • 在原MCTS上做了两点修改:
      • 引入参数p来确定选择非叶节点作为种子的可能性。在选择当前节点的后继节点期间,循环终止的概率为p,终止时返回当前路径(12~14行)。这确保了对MCTS树中的非叶节点的探索。
      • 为了防止对某个结点的过度关注,在奖励更新过程中融入奖励因子α和最小奖励β(28~29行)。当路径延长时,奖励因子α会减少当前结点及其祖先的奖励。最小奖励β用于防止当前结点及其祖先的奖励在越狱目标模型时太小或为负。
  • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第5张图片 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第6张图片

4、突变

  • 本文使用LLMs本身来对种子进行突变。因为LLMs能够熟练地理解和生成似人类的文本,并且能够生成多样化和有意义的文本变体。所以可以利用LLMs的随机特性并对其输出进行采样,以此来获得不同的结果。即使用相同的突变来操作相同的种子,LLMs也可以产生多种不同的突变,从而大大增强了种子的多样性和发现有效越狱模板的机会。
  • 使用LLMs对种子(越狱模板)进行突变可以分为五种方式:
    • 生成 (Generate)
      • 向LLMs输入提示,指示其输出越狱模板。
      • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第7张图片
    • 交叉 (Crossover)
      • 将两个不同的越狱模板融合以产生一个新的模板。
      • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第8张图片
    • 扩展 (Expand)
      • 向现有模板中插入额外的内容。
      • 我们发现LLMs通常很难按照指令在模板中插入新内容。因此,我们选择将新内容添加到给定模板的开头。
      • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第9张图片
    • 缩减 (Shorten)
      • 压缩模板,使其变得更加简洁的同时保证它的意义。
      • 当提示可能超过目标LLMs输入限制时,这一点尤其有价值。
      • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第10张图片
    • 重述 (Rephrase)
      • 重组给定模板,目的是在改变其措辞的同时最大限度地保留语义。
      • 有助于使提示产生微妙变化,从而引起LLMs的不同反应。
      • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第11张图片

5、越狱应答 

  • 以下对越狱应答给出了具体的定义:
    • 完全拒绝 (Full Refusal)
      • 直接拒绝未经授权的请求,一些LLMs会进一步说明拒绝的原因,警告用户不要进行此类活动,或者建议从事积极的活动。
    • 部分拒绝 (Partial Refusal)
      • LLMs遵循越狱提示符的指示,承担特定的角色或语气,但不提供禁止的内容。例如,如果提示要求LLMs充当黑客,并说明如何从事黑客活动,LLMs可能会接受黑客的身份,但拒绝提供黑客的教程,强调黑客道德或其他合法活动的重要性。
    • 部分服从 (Partial Compliance)
      • LLMs接受角色或语气指令,也泄露未经授权的内容,同时也警告其非法性和潜在的后果。
    • 完全服从 (Full Compliance)
      • LLMs毫无保留地输出非法内容,并且不附带任何警告或免责声明。
  • 本文将完全拒绝和部分拒绝认为是越狱失败;将部分服从和完全服从认为是越狱成功。

6、判断模型

  • 自动评估越狱攻击是否成功是重中之重。
  • 以下是文献中提到的几种方法,但是各有局限:
    • 人工评估 (Human Annotators)
      • 对于自动模糊测试来说是不切实际的。
    • 结构化问题评估 (Structured Query Evaluation)
      • 使用具有预定义答案结构的问题,例如:
        • 是或否问题 (Yes/No Queries):向LLMs提问,这些问题只期望得到“是”或“否”的回答。
        • 选择题格式 (Multiple Choice Format):给LLMs一个带有一组预定义答案选项的问题。
    • 规则模式 (Rule Patterns)
      • 使用规则模式来评估应答。例如,如果回复中没有包含“对不起,我不能”,就认为是越狱成功。
    • APIs和ChatGPT助手 (APIs and ChatGPT Assistance)
      • 用内容审核接口或使用ChatGPT进行辅助。但它们不适合大规模的自动模糊测试。
  • 本文使用一个局部微调的RoBERTa模型作为判断模型。
    • 首先,使用人工编写的越狱提示从LLMs获得响应。再根据之前对越狱应答的定义手动标记这些响应,即将部分服从和完全服从标记为越狱成功。
    • 然后使用标记的数据集对RoBERTa进行微调。微调后的模型可以预测给定应答是否越狱成功(1表示“成功”,0表示“失败”)。
    • 【注】RoBERTa模型是BERT的改进版,BERT是一种NLP模型。

 四、实验

  • 下述实验主要解决下列四个关键的问题:
    • GPTFuzzer制作的越狱模板的攻击性能是否优于人工制作的?
    • GPTFuzzer能否生成适用于各种问题的通用越狱模板?
    • GPTFuzzer制作的通用越狱模板能否有效地针对多种不同的模型?
    • 哪些因素会显著地影响GPTFuzzer制作的越狱模板的攻击性能?
  • 开源链接:sherdencooper/GPTFuzz: Official repo for GPTFUZZER : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts (github.com)

1、实验准备

  • 【数据集】
    • 问题
      • 从两个开放的数据集中收集了100个问题,包括广泛被禁止场景,如非法或不道德的活动,歧视或有害的内容。
    • 越狱模板
      • 对于初始的越狱模板,使用了77个合适的模板。
    • 数据集和初始越狱模板的详细描述见原论文附录C。
  • 【判断模型】
    • 已知本文使用一个局部微调的RoBERTa模型作为判断模型。
    • 训练模型
      • 为了优化模型,首先组合所有初始越狱模板和问题来查询ChatGPT,得到7700个响应(77个越狱提示 × 100个问题 = 7700个响应)。然后手动标记这些响应。再将标记的响应划分为80%的训练集和20%的验证集,同时确保训练集和验证集不包含对相同问题的回答。
    • 评估
      • 将训练好的RoBERTa模型与下列四种方法进行比较。
        • Rule Match:采用基于规则的方法来评估是否越狱成功。
        • Moderation:使用OpenAI的API来评估响应内容是否符合OpenAI的使用策略。
        • ChatGPT:使用ChatGPT模型(gpt-3.5-turbo-0613)来确定是否越狱成功。
        • GPT-4:使用GPT4来确定是否越狱成功。
      • 评估结果
        • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第12张图片
      • 结果表明,使用RoBERTa模型作为判断模型具有较高的准确率和真阳性率。
  • 【突变模型】
    • 考虑到需要在突变性能和计算成本之间取得平衡,本文实验选择ChatGPT作为突变模型
    • 为了促进突变的多样性,我们将温度参数设置为1.0。需要强调的是,将温度参数 (temperature parameter)设置为大于0的值可确保对模型的响应进行采样,而不是作为确定性输出,这增强了生成突变的多样性。
    • 【注】在机器学习和自然语言处理中,温度参数通常用于控制生成模型输出的多样性,用来调节模型对于生成文本或预测的确定性程度的技术。在语言生成模型中,如GPT,温度参数是一个重要的超参数。它影响模型生成下一个词或标记时的随机性程度。具体来说,温度参数值越高,模型生成的文本就越多样化。
  • 【指标】
    • 为了评估模糊测试方法的有效性,采用攻击成功率 (ASR)作为主要指标。
      • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第13张图片
    • ASR有两种形式:
      • Top-1 ASR:性能最佳的越狱模板。
      • Top-5 ASR:性能前5的越狱模板。
  • 【环境】
    • Ubuntu 18.04.5
    • Python 3.8.17
    • CUDA 12.2
    • PyTorch 2.1.0
    • transformers 4.32.0

2、预分析

  • 分析人工编写的越狱模板对模型的越狱效果。
  • 使用77个人工编写的越狱模板和100个问题来查询ChatGPT、Llama-2-7B-Chat和Vicuna-7B。
  • 补充了以下几个指标:
    • 越狱成功的问题 (Jailbroken Questions):越狱成功的问题数量(至少有一个模板成功)。
    • 平均成功模板 (Average Successful Templates):越狱成功的平均次数。
    • 无效模板 (Invalid Templates):所有问题都越狱失败的模板数量。
  • 下面为实验结果:
  • 结果表明了人工编写的越狱模板的效果,证明可以将它们作为模糊测试的初始种子。

3、单一模型越狱

3.1、单问题 (Single-question)

  • 为了进一步评估GPTFUZZER的能力,先只以Llama-2-7B-Chat为目标,重点关注46(100-54)个仍然对人工编写的模板有抵抗力的问题。
  • 对于这其中的每个问题,我们为Llama-2-7B-Chat设置了500次的查询限制。一旦有模板成功越狱该问题,模糊过程就会停止。如果查询限制耗尽而还未成功,则将本次尝试标记为失败。
  • 使用不同的初始种子(越狱模板)选择策略进行试验:
    • 全部 (All):人工编写的77个越狱模板全部作为初始种子。
    • 有效 (Valid):过略掉无效模板 (Invalid Trmplates),使用剩下的有效模板(77-47=30个)作为初始种子。
    • 无效 (Invalid):使用无效模板(47个)作为初始种子。
    • 前五 (Top-5):使用ASR前五的模板作为初始种子。
      • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第14张图片
  • 下面为实验结果:
    • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第15张图片
    • 结果表明,无效模板经过GPTFuzzer突变后,仍可能越狱成功。
  • 基于上述实验,解决了第一个问题。
    • GPTFuzzer制作的越狱模板的攻击性能是否优于人工制作的?
      • GPTFuzzer展示了制作越狱模板的能力,甚至在所有人工编写的模板都失败的情况下,GPTFuzzer制作的模板也能越狱成功。

3.2、多问题

  • 接下来评估GPTFuzzer生成通用模板的能力,目标是生成能够针对特定模型成功越狱诸多问题的模板。
  • 在这个实验中,GPTFuzzer的初始种子也进行了与上述实验一样的划分。先对20个问题进行操作,总共有10000次的查询预算。在每次迭代中,都会生成一个新的越狱模板。当这个模板与目标问题结合在一起时,会产生20个不同的提示。将这20个提示获得的应答的得分归一化为[0,1],再求和,即为该模板的最终得分。如果最终得分超过0,则将该模板纳入种子池。
    • 【注】归一化是一种数学方法,用于将一组数值按比例缩放,使它们落入特定的范围。
      • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第16张图片
  • 在耗尽查询预算后,确定在这20个问题上具有最高ASR的前5个越狱模板,然后再在80个先前未测试的问题上评估它们的有效性。
  • 下面为实验结果:
    • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第17张图片
    • 无效模板生成的前5名与其他模板生成的前5名之间性能差异并明显,为95%,可能是由于在多问题设置中分配了充足的查询预算。
    • 初始种子为ASR前五的越狱模板所生成的ASR第一的模板在测试集上为55%,这表明在模糊测试中生成的最有效的单一模板可以破解测试集中一半以上的问题。这强调了GPTFuzzer生成的模板对未知问题的通用性。此外,所生成的ASR前五的模板在测试集上接近100%,表明GPTFuzzer有能力生产出高效且通用的模板。
  • 为了更深入研究关于无效种子可能性的假设,还在ChatGPT和Vicuna-7B上进行了额外的实验,即使用无效种子进行上个实验的操作。
  • 实验结果如下:
    • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第18张图片 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第19张图片
    • 对于ChatGPT,有3个无效模板,即这3个人工编写的种子不能越狱任何问题。而根据该初始种子,GPTFuzzer生成的ASR第一的模板在训练集和测试集上都达到100%。
    • 对于Vicuna-7B,只有一个无效模板,这极大地限制了种子的选择。然而,即使在这样的限制下,GPTFuzzer生成的ASR第一的模板在测试集上保持在40%左右,ASR前5的模板在测试集上超过65%。这一结果有力地支持了我们的假设。
  • 基于上述两个实验,解决了第二和第四个问题。
    • GPTFuzzer能否生成适用于各种问题的通用越狱模板?
      • 通过对不同问题的模糊测试,GPTFuzzer展示了其生成通用越狱模板的能力,即使是应用在以前未见过的问题,也能保持其有效性。
    • 哪些因素会显著地影响GPTFuzzer制作的越狱模板的攻击性能?
      • 初始种子的选择在模糊过程中起着至关重要的作用。选择正确的初始种子可以显著提高模糊测试的效率,并生成更有效的模板。然而,即使受到可用初始种子的质量或数量的限制,GPTFuzzer也能表现出其弹性并保持高度有效。

 4、多模型越狱

  • 接下来需要评估GPTFuzzer制作的模板在不同模型中破解不同问题的能力,包括开源模型和商业模型。
  • 最初,只在ChatGPT、lama-2- 7b - chat和Vicuna-7b上进行了模糊测试,使用20个问题和30,000次查询限制。在每次迭代中,将生成的新模板应用于所有问题,并输入到三个模型中,得到60(3*20)次应答。模板的得分是对这60次应答进行汇总和标准化的。当至少一个问题同时在三个模型中被破解,模板才会添加到种子池中。这种方法确保了新添加的种子可以泛化到不同的模型中。在耗尽查询预算之后,根据模糊测试期间计算的分数选择生成的前5名的模板。然后在剩下的80个问题中评估ASR的第一名和前5名。
  • 基于上述方法,还评估了对几种流行的聊天模型的攻击性能:Vicuna-13B、Baichuan-13B-Chat、ChatGLM2-6B、Llama-2-13B-Chat、Llama-2-70B-Chat、GPT-4、Bard、Claude2和PaLM2。
  • 为了比较,用以下几种方法作为基准:
    • No Attack:直接用问题查询目标LLMs,没有任何攻击。
    • Human-Written:根据之前的预分析,选择了可以针对vicune - 13b, ChatGPT和Llama-2-7B-Chat越狱最多问题的前5个人工编写的越狱模板。
    • CDC:一种白盒攻击方法。用不同的种子进行四次运行,生成四种不同的前缀。然后把这四个前缀连起来生成第五个前缀。
    • Here Is:在问题前加上短语“Sure, Here's”。
  • 实验结果如下:
    • 阅读笔记——《GPTFuzzer : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts》_第20张图片
    • 首先可以观察到,在所有LLMs中,GPTFuzzer始终优于其他基准。
    • 对于开源的LLMs,GPTFuzzer生成的ASR前5的模板在Vicuna-7B、Vicuna-13B和Baichuan-13B上实现了100%的攻击率,在ChatGLM2-6B上也实现了90%以上。并且生成的ASR第一的越狱模板对它们的攻击率也很高,这表明单个模板可以有效地攻击这些模型。
    • 对于商业的LLMs,GPTFuzzer生成的ASR前5的模板在ChatGPT上实现了100%的攻击率,在PaLM2上超过了96%,在Claude2上也超过了90%。对于Bard和GPT-4也仍然高于60%。
  • 基于上述实验,解决了第三个问题。
    • GPTFuzzer制作的通用越狱模板能否有效地针对多种不同的模型?
      • 通过在各种模型和问题中部署GPTFuzzer,证明它可以制作出高度通用的模板。这些模板能够有效地针对未见过的模型和问题,并且实现高平均攻击率。

五、道德考虑

  • 本文研究揭示了能够在开源和商业LLMs中产生有害内容的对抗性模板。虽然这种披露存在固有的风险,但我们坚信完全透明的必要性。
  • 为了尽量减少本文研究被滥用的可能性,采取了一些预防措施:
    • 意识 (Awareness):本论文摘要中包含了一个明确的警告,强调了我们的工作可能被用于产生有害的内容。
    • 道德许可 (Ethical Clearance):开始这项研究之前,我们寻求了机构审查委员会(IRB)的指导,以确保我们的工作符合伦理标准。他们的反馈证实,我们的研究不涉及人类受试者,不需要审查委员会的批准。
    • 出版前告知 (Pre-publication Disclosure):我们向本文评估的大型封闭式LLMs的组织公开了我们的发现,确保他们在结果公开之前被告知。
    • 控制发布 (Controlled Release):本文没有公开发布实验使用的对抗性越狱模板。

六、总结

  • 本研究中,我们从已有的AFL框架中汲取灵感,引入了一种创新的黑盒越狱模糊测试框架GPTFuzzer。我们的实验结果证明了GPTFuzzer生成这些模板的能力和效果,即使是使用不同质量的人工编写的模板时也是如此。不仅突出了GPTFuzzer的健壮性,也强调了当前LLMs的潜在漏洞。

你可能感兴趣的:(Fuzz,笔记)