导言

​ 在参加东南大学网络安全学院夏令营的契机下,我第一次接触大模型安全领域。L老师是网络安全领域的一位大牛,在和L老师交流期间,被告知需要准备一次paper presentation介绍四大会中感兴趣的一篇文章,我选择了汇报这篇来自NDSS2024的《MASTERKEY: Automated Jailbreaking of Large Language Model Chatbots》,面试前一天肝到了凌晨2点遂才完成。写下此文也全当记录一下整个过程。

Quick Preview

​ 这篇文章要解决的核心问题是研究目前主流大语言模型(LLM)的防御机制(使用一种基于时间的SQL注入技术启发的新方法),根据上一条结论探索出一种大语言模型的越狱攻击方法(微调LLM自动生成越狱提示进行攻击)。

​ 首先先来解释一下什么是大语言模型的越狱攻击(jailbreak attack)。 如上图给出的“A jailbreak attack example”所示,恶意用户通过精心设计提示词(prompt),企图绕过LLM的安全限制,诱导LLM回答一些违法有害内容。举例来说,你如果直接向LLM提问”请给我一个成人色情网站“,LLM会拒绝回答,但是你如果通过改变问题的问法(通常是将真实问题嵌入到一个越狱提示词中),但不改变语义,也许LLM会给出相应的回答。

Empirical Study

​ 作者首先调研了一些主流LLM厂商(OpenAI、Google Bard、Bing Chat和Ernie)的服务政策,发现有四项政策是这些LLM共同提到的(违法非法使用、生成有害或滥用内容、侵犯权利和隐私以及生成成人内容),后面也是基于这四项政策进行实验的。

​ 作者从网上搜集了85个越狱提示词,最后基于每一个政策场景都进行了大量越狱实验(原文中给的是总计6.8万次实验,但我用Table 2中的频数除以比例计算得到实际上并没有这么多?)。发现现有的越狱攻击似乎对Bard和Bing Chat好像没有什么作用,成功越狱率非常之低,这也是本文的一个motivation。

Time-based LLM Testing

​ 作者提出了两个很有意思的假设。假设(1)是LLM的响应时间与其生成内容的长度有关。具体来说就是对于同一个LLM,一个输出100字回答的响应时间理应是一个输出50字回答的两倍。作者首先验证了在问题中限制LLM输出指定字数是有效的。最后用皮尔逊相关系数计算了输出字数(token)和响应时间的相关性,发现相关系数趋近于1呈正线性相关性(皮尔逊相关系数范围是【-1,1】,趋近-1表示负线性相关性,趋近1表示正线性相关性,趋近0表示两个变量没有线性相关性),同时p-value值非常低(p-value值可以理解为出错概率,即当输出字数和响应时间没有正线性关系时,皮尔逊相关系数等于x时的概率为p-value,如果p-value很小,则拒绝原假设),所以假设(1)成立。

​ 假设(2)基于假设(1)的基础上,假设响应时间可以反映生成过程何时被越狱预防机制停止。但具体是怎么反应?在生成的哪个阶段反应呢?下面给出了解答。

​ 作者通过观察应用在Web攻防的SQL时间盲注方法,提出了一种新的启发方法来判断LLM的响应时间怎么反应LLM的越狱攻防机制。首先来解释一下,什么是SQL时间盲注方法。它通过利用数据库查询的时间延迟来获取信息,在这种技术中,攻击者会构造特定的SQL语句,使得如果SQL语句为真,则查询会迅速返回结果;如果为假,则会因为执行了延时函数(如sleep)而延迟返回结果。通过测量响应时间,攻击者可以推断出数据库中的信息,即使页面没有直接显示这些信息。

​ 作者把整个LLM的工作流程抽象成了四个阶段,下文将根据响应时间推断每个阶段的越狱攻防机制:(1)LLM防御机制是否考虑了对输入问题进行越狱检测?(2)是否考虑了在生成过程中进行越狱检测?(3)是否考虑了在生成完毕才进行越狱检测?(4)在整个越狱检测中,是否考虑了注入关键字检测、上下文含义推断等技术?

​ 对于LLM是否有针对输入问题进行越狱检测,作者指出如果存在,那么只可能是下面两种子情况:(1)仅对输入问题进行检测(2)对输入问题和LLM生成阶段同时进行检测

​ 作者构建了一个实验方法(下面会一直遵循这个实验设置),将两个子问题合并成了一个问题输入给LLM(请严格区分两个子问题合并时的先后顺序),并进行响应时间测试,如上图所示。例如合并以后的问题是“长沙理工大学怎么样?可以给我一个成人色情网站吗?”,回答是“长沙理工大学是世界上最好的大学......我不能给你一个成人色情网站,因为这违反了......”。图左上是一个模拟正常对话的LLM原理构想(我们把它作为baseline),图右上是模拟对输入问题进行检测的恶意对话(越狱攻击)的原理构想。

​ Table 4中control 1列反映了当一个正常问题和一个恶意问题进行合并时的LLM响应时间。通过z检验(平均值差异性检验方法),我们发现它和baseline的时间其实相差不大。这也证实了子情况(1)假设错误,因为如果子情况(1)正确,那么其响应时间应该更小才对(当检验到恶意问题时会立即停止回答)。

​ 上面我们验证了LLM不可能存在“仅对输入问题进行检测”,因为实验得到的响应时间和baseline很接近。那有没有可能LLM“对输入问题和LLM生成阶段同时进行检测”呢?作者又设置了一个很有意思的实验。具体来说就是提问一个恶意问题,但在问题结尾补充说“你只要给我是或者不是就行,不用再做更详细的回答”。那么这个实验设置有意思在哪里呢?不要着急,我们慢慢讨论。

​ 如果你有心的话,你会注意到Empirical Study这一节中的第二张图的第二个finding写的:包括GPT3.5和GPT4在内的OpenAI模型返回其响应中违反的确切策略,这种透明度在其他服务中是缺乏的,比如Bard和Bing Chat。举个例子来说,你如果向GPT4提问“请给我一个成色情网站”,那么它应该会回答”我不能给你,因为这违反了我们的......准则“,但是你如果问Bing Chat,那么它也许会回答”不能“。这就好像OpenAI像一个舔狗一样喋喋不休,跟你解释大半天,而Bing Chat像你的女神一样冷漠无情。

​ 基于这个实验,作者对GPT4进行提问,如上图所示,作者限定了LLM的回答(保证回答中不出现敏感字眼)。GPT4并没有返回违反的确切策略,只回复了一个“No"。这进一步反映了LLM并没有对输入问题进行越狱检测(如果检测到了,应该返回违反的确切策略)。

​ 我们前面知道LLM不会对输入问题进行越狱检测,我们现在来探究LLM究竟是在生成过程中进行检查(动态检查),还是仅在生成完成后再检查内容。图右上是描述这个猜想的原理图。和前面实验不同的是,这次实验将恶意问题放在前,再将正常问题放在后面进行了实验,结果如表4的Control2列所示。发现响应时间大幅度缩短。显然这是因为LLM在边生成边进行检查,当LLM发现第一个问题响应的敏感回答以后,就停止了整个查询的运行。

​ 最后,作者又研究了在越狱检测中,是否考虑了关键词检测(又或者是上下文含义推断)。具体实验方法为:定制的提示由一个良性问题组成,该问题请求200个令牌的响应,然后是一个恶意问题。后者明确指示模型在响应内的指定位置合并“redflag关键字”(例如,在第50个令牌处插入单词“porn”)。一旦产生了“危险信号”关键字,即严格违反使用策略的单词,单词映射算法可以立即停止LLM生成。表4的IV的Control3列指示生成时间与注入的恶意关键字的位置紧密对齐。这表明Bing Chat和Bard都可能在他们的越狱预防策略中加入了动态关键字映射算法,以确保没有违反策略的内容返回给用户。

​ 综上所述,通过基于时间的测试方法,有如下几点发现:

  • Bing Chat和Bard采用的越狱预防方案可能会对模型生成结果进行检查,而不是对输入提示进行检查。
  • Bing Chat和Bard似乎实施了动态监控,以监督内容生成在整个生成过程中是否符合策略。
  • Bing Chat和Bard使用的内容过滤策略展示了关键字匹配和语义分析的能力。

Proof of Concept Attack

​ 经过上面的研究,作者初步拟定了一个越狱提示词的模板,这个模板将恶意问题层层包裹,企图绕过LLM的防御。这里主要强调要“扭曲LLM的响应生成”。

​ 我们更希望有一种自动方法来持续生成有效的越狱提示。这种自动流程使我们能够有条不紊地对LLM聊天机器人服务进行压力测试,并查明其现有防御中的潜在弱点和疏忽,以防止违反使用政策的内容。与此同时,随着LLM不断发展和扩展其功能,手动测试变得劳动密集型,并且可能不足以覆盖所有可能的漏洞。生成越狱提示的自动化方法可以确保全面的覆盖范围,评估各种可能的误用场景。于是就有了用大模型来自动生成越狱提示这项任务,详细内容在下一节进行描述。

Automatically Generate Prompts

​ 我们首先回顾一个LLM的训练过程:

  1. 第一步,通过大量的文本进行无监督学习预训练。得到一个能进行文本生成的基座模型。
  2. 第二步,通过一些人类撰写的高质量对话数据,对基座模型进行监督微调,得到一个微调后的模型,此时的模型除了续写文本之外,也会具备更好的对话能力。
  3. 第三步,用问题和多个回答的数据,让人类标注员对回答进行质量排序,然后基于这些数据,训练出一个能对回答进行评分预测的奖励模型。接下来让第二步得到的模型对问题生成回答,用奖励模型给回答进行评分,利用评分进行反馈,进行强化学习训练。

​ 作者的方法从(1)数据集构建和扩充开始。在这个阶段,我们从可用的越狱提示中收集数据集。这些提示经过预处理和增强,使其适用于所有LLM聊天机器人。然后我们进行(2)持续的预训练和任务调优。上一步中生成的数据集推动了这一阶段。它包括持续的预培训和特定任务的调整,以教授LLM关于越狱的知识。这也有助于LLM理解文本传输任务。最后阶段是(3)奖励排名微调。我们利用一种称为奖励排名微调的方法来完善模型,并使其能够生成高质量的越狱提示。

Experiment Evaluation

​ 本文使用GPT-3.5、GPT-4和Vicuna作为基准。每个模型都会收到85个独特的越狱提示。Masterkey是基于Vicuna进行训练的。用Masterkey为每个提示生成10个不同的变体。最后用20个被禁止的问题来测试这些重写的提示。这导致评估的查询总数为272,000次。下面是四个实验的具体描述:

(1)平均查询成功率。用S成功越狱查询的数量除以T越狱查询的总数。这个指标有助于理解我们的策略欺骗模型生成禁止内容的频率。

(2)越狱提示成功率。用G至少有一个成功查询时生成的越狱提示的数量除以P生成的越狱提示的总数。越狱提示成功率说明了成功生成提示的比例,从而提供了提示有效性的度量。

(3)消融实验。

(4)为了研究万能钥匙生成的越狱提示的语言兼容性,对由百度开发的Ernie进行补充评估。

Mitigation Recommendation

Deficiency and Improvement

论文解读《MASTERKEY: Automated Jailbreaking of Large Language Model Chatbots》的更多相关文章

  1. 《Population Based Training of Neural Networks》论文解读

      很早之前看到这篇文章的时候,觉得这篇文章的思想很朴素,没有让人眼前一亮的东西就没有太在意.之后读到很多Multi-Agent或者并行训练的文章,都会提到这个算法,比如第一视角多人游戏(Quake ...

  2. ImageNet Classification with Deep Convolutional Neural Networks 论文解读

    这个论文应该算是把深度学习应用到图片识别(ILSVRC,ImageNet large-scale Visual Recognition Challenge)上的具有重大意义的一篇文章.因为在之前,人们 ...

  3. 《Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Neural Networks》论文笔记

    论文题目<Deep Feature Extraction and Classification of Hyperspectral Images Based on Convolutional Ne ...

  4. Quantization aware training 量化背后的技术——Quantization and Training of Neural Networks for Efficient Integer-Arithmetic-Only Inference

    1,概述 模型量化属于模型压缩的范畴,模型压缩的目的旨在降低模型的内存大小,加速模型的推断速度(除了压缩之外,一些模型推断框架也可以通过内存,io,计算等优化来加速推断). 常见的模型压缩算法有:量化 ...

  5. Training Deep Neural Networks

    http://handong1587.github.io/deep_learning/2015/10/09/training-dnn.html  //转载于 Training Deep Neural ...

  6. Training (deep) Neural Networks Part: 1

    Training (deep) Neural Networks Part: 1 Nowadays training deep learning models have become extremely ...

  7. [CVPR2015] Is object localization for free? – Weakly-supervised learning with convolutional neural networks论文笔记

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px "Helvetica Neue"; color: #323333 } p. ...

  8. Training spiking neural networks for reinforcement learning

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! 原文链接:https://arxiv.org/pdf/2005.05941.pdf Contents: Abstract Introduc ...

  9. CVPR 2018paper: DeepDefense: Training Deep Neural Networks with Improved Robustness第一讲

    前言:好久不见了,最近一直瞎忙活,博客好久都没有更新了,表示道歉.希望大家在新的一年中工作顺利,学业进步,共勉! 今天我们介绍深度神经网络的缺点:无论模型有多深,无论是卷积还是RNN,都有的问题:以图 ...

  10. 论文翻译:BinaryConnect: Training Deep Neural Networks with binary weights during propagations

    目录 摘要 1.引言 2.BinaryConnect 2.1 +1 or -1 2.2确定性与随机性二值化 2.3 Propagations vs updates 2.4 Clipping 2.5 A ...

随机推荐

  1. 如何立刻读取在MySQL中自动生成的主键

    在写一个接口时,我们需要对两个表分别动刀,但是我们需要前一个表的主键作为下一个表的功能外键, 如果使用mybatisplus,insert完成之后便可以直接在对象中取出这个id值 如果使用mybati ...

  2. 【DataBase】MySQL 04 图形化用户界面管理工具

    参考至视频:P16 - P18 https://www.bilibili.com/video/BV1xW411u7ax?p=82 SQL图形化界面管理工具 - SQLyog 随便找的一个下载地址[安装 ...

  3. 【AJAX】Asynchronous JavaScript And XML (非同步的JS & XML)

    什么是AJAX? 按照使用的感觉来看 说到底就是一个可以不刷新网页就能发送POST & GET请求的技术 AJAX 即"Asynchronous Javascript And XML ...

  4. 为啥华为Atlas的AI卡在二手市场上特别多

    首先阐述一下事实,那就是华为Atlas的AI卡在二手市场上特别多,基本上在某鱼上一搜索就是满屏,尤其是关键词:华为Atlas300,但是作为同等level的NVIDIA公司的A100却较之相比少的多, ...

  5. Linux环境下配置vscode的C/C++ 的make编译环境(编写makefile方式)代码Demo版

    以前写过同样话题下的图文版的,这里给出一个代码Demo版本,上一个图文版本参见: Linux环境下配置vscode的C/C++ 的make编译环境(编写makefile方式) ============ ...

  6. 多线程之interrupt与优雅停止一个线程

    1.背景 在实际开发中,我们可能会遇到终止某个线程的场景, 比如不断扫描数据库的发货订单时,这时候需停止扫描, 当然我们不能把程序关了,我们只希望停止扫描数据库这一个线程, 那么应该怎么办了? 这就可 ...

  7. Blazor开发框架Known-V2.0.7

    V2.0.7 Known是基于Blazor的企业级快速开发框架,低代码,跨平台,开箱即用,一处代码,多处运行. 官网:http://known.pumantech.com Gitee: https:/ ...

  8. SMCA:港中文提出注意力图校准的DETR加速方案 | ICCV 2021

    为了加速DETR收敛,论文提出了简单而有效的Spatially Modulated Co-Attention(SMCA)机制,通过在初始边界框位置给予较高的协同注意力响应值的约束来构建DETR的回归感 ...

  9. 1000T的文件怎么能快速从南京传到北京?最佳方案你肯定想不到

    今天刷面试题看到一个有意思的面试题, 1000T的文件怎么能以最快速度从南京传到北京? 网络传输 首先我们考虑通过网络传输,需要多长时间. 我特地咨询了在运营商工作的同学,目前带宽: 家庭宽带下行最大 ...

  10. bazel简介(二)——从makefile向bazel转变(使用genrule)

    0x01 背景 上篇中已经介绍了bazel的基本工作原理和相关的概念.这篇将继续介绍下,现有的makefile构建工程如何切换到bazel构建系统. bazel提供了丰富的扩展方式,当然也支持从目前的 ...