导言

​ 在参加东南大学网络安全学院夏令营的契机下,我第一次接触大模型安全领域。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. UE5 打包DedicatedServer

    UE5开发Dedicate Server直接按教程用Replicated那种蓝图开发即可. 如果打包的话,服务器端需要无界面的运行模式,不同于正常的开发,所以为了打包,这里步骤如下: 1.到githu ...

  2. fragment基础

    XML中调用fragment 属性包括: android:id="@+id/fragg" //ID android:name="com.example.subway.fr ...

  3. 假期小结2hadoop环境配置

     记录一下hadoop配置 安装Java Development Kit(JDK):Hadoop是用Java编写的,所以首先需要安装JDK.可以从Oracle下载JDK,并按照安装说明进行安装. 下载 ...

  4. SEO自动外链蜘蛛池工具促进百度快速收录怎么样 跟大家详谈一下

    此工具集成市面上所有自动外链网站的资源链接,经过合并.去重.筛选.验证 总结出最终的外链资源 ,软件实时更新 本软件将您繁杂的外链推广转为自动化进行,并且加入站群的支持,您只需要将你的站群域名粘贴到软 ...

  5. 【Uni-App】API笔记 P1

    1.调试打印: console.log() 向控制台打印 log 日志 console.debug() 向控制台打印 debug 日志 注:App 端自定义组件模式下,debug 方法等同于 log ...

  6. 如果美国断供中国所有的Intel和AMD芯片,国内各行各业会不会崩溃

    说一个我个人观点,我认为如果国内完全没有X86芯片的供应,那么各行各业的发展会明显进入发展迟缓阶段,首先受影响的就是软件开发领域,因为没有新的芯片也就意味着袋电脑性能停滞或者倒退,那么开发出新的更耗资 ...

  7. 【转载】英特尔CEO:如果美出口管制太严,中国就必须生产自己的芯片

    原文地址: https://mbd.baidu.com/newspage/data/landingsuper?context={"nid"%3A"news_9816136 ...

  8. Hession-free 的共轭梯度法的高效计算版本的部分代码(pytorch实现,实现一阶求导的一次计算重复使用)

    Hession-free 的共轭梯度法的高效计算版本的部分代码(pytorch实现,实现一阶求导的一次计算重复使用) Hession-free 的共轭梯度法在求解 H*v 的时候是先求一阶导,即雅可比 ...

  9. 报错 qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in ““ even though it was found

    参考: https://blog.csdn.net/qq_39938666/article/details/120452028 ==================================== ...

  10. matplotlab刻度线设置——如何在画布的上下左右四条边框上绘制刻度线

    我们平时使用matplotlib绘图时一般默认的刻度只在画布的右侧和下侧出现,但是在网上看到其他人的绘图往往都是上下左右四个边框线均有刻度,这是如何实现的呢,今天就给出一种设置画布上下左右四条边框刻度 ...