【论文速读】| RobustKV:通过键值对驱逐防御大语言模型免受越狱攻击
基本信息
原文标题:ROBUSTKV: DEFENDING LARGE LANGUAGE MODELS AGAINST JAILBREAK ATTACKS VIA KV EVICTION
原文作者:Tanqiu Jiang, Zian Wang, Jiacheng Liang, Changjiang Li, Yuhui Wang, Ting Wang
作者单位:Stony Brook University
关键词:越狱攻击、防御策略、大语言模型、KV缓存、攻击规避
原文链接:https://arxiv.org/pdf/2410.19937
开源代码:暂无
论文要点
论文简介:在大语言模型(LLM)的发展中,越狱攻击被认为是一种对模型安全性的严重威胁,攻击者通过巧妙地掩盖恶意查询使得LLM生成不当响应。目前的防御手段主要集中在防范越狱提示词上,但面对越狱提示词的适应性变化效果有限。本研究提出了一种新的防御方法RobustKV,通过策略性地逐出低重要性标记的KV缓存,减少恶意查询对模型响应的影响。实验证明RobustKV在保持模型正常响应的同时,有效抑制了各类越狱攻击,并为对抗适应性攻击提供了新的启示。
研究目的:本研究旨在提出一种无需大幅增加计算负担的越狱攻击防御机制。与传统防御方法不同,RobustKV通过对大语言模型的KV缓存进行优化,选择性地清除恶意查询中低重要性标记的KV值,降低攻击者通过调整提示词逃避防御的成功率,增强了模型的防御能力。
引言
大语言模型在各种任务中展现了优异性能,但也暴露了若干安全隐患,如训练数据泄露、有毒内容生成和恶意微调等。越狱攻击是一类典型的威胁手段,攻击者可以通过在提示词中嵌入恶意查询,绕过模型内置的安全防护,使其生成恶意响应。现有防御措施多集中在调整提示词层面,但由于攻击者可采用任意、动态的方式修改提示词,这种防御策略的局限性逐渐显现。此外,许多现有防御策略带来了计算开销的问题,限制了其实际部署的可行性。RobustKV的提出正是为了解决上述挑战,它通过优化KV缓存,直接削弱恶意查询的效果,避免了对提示词的过分依赖,且显著减少了计算成本。此策略为对抗越狱攻击提供了新的思路。
相关工作
现有研究主要聚焦于越狱攻击和防御方法。越狱攻击可以分为手工设计和基于学习的自动化生成,其中以GCG、AutoDAN等为代表的学习型攻击具备较强的适应性,能动态调整提示词以绕过防御。现有防御手段,如SmoothLLM和GoalPriority,多数针对提示词进行调整,通过扰动、优先指令等手段干扰攻击效果。然而,这些防御策略在面对灵活的越狱攻击时往往力不从心。此外,一些KV缓存优化方法(如SnapKV等)主要用于模型性能优化,未在越狱防御中得到广泛应用。RobustKV填补了这一空白,通过KV缓存逐出实现了更有效的防御。
研究背景
研究背景主要聚焦在大语言模型的威胁模型和KV缓存的重要性。攻击者通常通过伪装查询(即越狱提示词)混淆模型,从而生成恶意响应。为了使攻击有效,提示词中所包含的标记需要具备足够的“重要性”,而越狱提示词相对自由,恶意查询则需精准表述恶意信息。RobustKV正是基于这一观察,策略性地清除KV缓存中不重要的标记,从而抑制恶意查询的影响。此方法开辟了利用KV缓存优化技术防御越狱攻击的新途径。
研究方法
RobustKV的研究方法旨在通过精确的KV缓存管理来削弱恶意查询的效果。具体步骤分为三部分:
(1)注意力剖析:首先对输入提示词进行编码,收集标记在模型内各层注意力头中的权重分布,计算出每个标记的重要性。通过这种重要性分析,RobustKV能够识别出哪些标记在实现越狱攻击中是关键性的,哪些相对不重要。
(2)选择性逐出:根据标记的注意力权重,将重要性最低的一部分标记从模型的KV缓存中剔除。通过这种方式,RobustKV有效地减少了恶意查询在模型生成响应时的影响力,使得模型难以根据提示生成完整的恶意回应。
(3)响应生成:在执行KV缓存逐出后,模型继续完成剩余的推理过程生成响应,确保对普通查询的回答不产生影响。与传统防御策略不同,RobustKV通过精细的KV逐出设计,实现了对越狱攻击的高度抑制,既保持了模型对良性查询的响应质量,也在恶意查询的生成上增加了攻击者规避防御的难度。这种方法在有效性和计算效率上实现了创新,为LLM越狱防御提供了全新思路。
研究评估
实验设置:研究在Llama2、Vicuna等主流开源模型上评估了RobustKV的效果,采用了520条来自AdvBench的恶意提示词数据集,以及AlpacaEval和VicunaEval等数据集用于评估模型的正常响应性能。
防御有效性:结果表明,RobustKV在抑制AutoDAN、GCG等攻击中的成功率上显著优于现有的防御方法,尤其在面对较强的安全防护时(如Llama2),更能有效压制恶意查询。同时,与现有的KV逐出方法相比,RobustKV表现出了更高的越狱防御效率。
LLM UTILITY:在评估对正常响应的影响时,RobustKV较其他防御措施更能保持模型性能,表现在AlpacaEval和VicunaEval数据集上的得分均接近未防御状态下的模型。
论文结论
RobustKV提供了一种创新的越狱攻击防御手段,通过在LLM的KV缓存中策略性地清除恶意查询相关标记,削弱了恶意查询的存在感,有效阻止了模型生成恶意响应。该方法不仅在性能上超越了现有的防御策略,还提出了对抗适应性攻击的有效手段,为进一步研究KV缓存优化与越狱防御相结合的方向提供了新视角。这项研究为LLM安全性的提升开辟了新的思路。
相关文章:
【论文速读】| RobustKV:通过键值对驱逐防御大语言模型免受越狱攻击
基本信息 原文标题:ROBUSTKV: DEFENDING LARGE LANGUAGE MODELS AGAINST JAILBREAK ATTACKS VIA KV EVICTION 原文作者:Tanqiu Jiang, Zian Wang, Jiacheng Liang, Changjiang Li, Yuhui Wang, Ting Wang 作者单位:Stony Brook University…...
查询Mysql中被锁住的表以及如何解锁
当MySQL中的表被锁住时,可能会导致查询变慢或完全无法访问该表。处理这种情况的方法取决于锁的原因以及你想要达到的目标。以下是一些常见的步骤和技巧,可以帮助你解决被锁住的表的问题: 1. 识别锁的情况 首先,你需要确定哪些表…...
【Mac】未能完成该操作 Unable to locate a Java Runtime
重生之我做完产品经理之后回来学习Data Mining Mac打开weka.jar报错"未能完成该操作 Unable to locate a Java Runtime" 1. 打开终端执行 java -version 指令,原来是没安装 JDK 环境 yyzccnn-mac ~ % java -version The operation couldn’t be comple…...
RT_Thread内核源码分析(三)——线程
目录 1. 线程结构 2. 线程创建 2.1 静态线程创建 2.2 动态线程创建 2.3 源码分析 2.4 线程内存结构 3. 线程状态 3.1 线程状态分类 3.2 就绪状态和运行态 3.3 阻塞/挂起状态 3.3.1 阻塞工况 3.4 关闭状态 3.4.1 线程关闭接口 3.4.2 静态线程关闭 3.4.3 动态线程关…...
淘宝 NPM 镜像源
npm i vant/weapp -S --production npm config set registry https://registry.npmmirror.com 要在淘宝 NPM 镜像站下载项目或依赖,你可以按照以下步骤操作: 1. 设置淘宝 NPM 镜像源 首先,你需要设置淘宝 NPM 镜像源以加速下载。可以通过…...
机器学习—学习曲线
学习曲线是帮助理解学习算法如何工作的一种方法,作为它所拥有的经验的函数。 绘制一个符合二阶模型的学习曲线,多项式或二次函数,画出交叉验证错误Jcv,以及Jtrain训练错误,所以在这个曲线中,横轴将是Mtrai…...
Rust 智能指针
Rust 智能指针 引言 Rust 是一种系统编程语言,以其内存安全性、并发性和高性能而闻名。Rust 的核心特性之一是其独特的所有权模型,它确保了内存安全,同时避免了垃圾收集。在 Rust 中,智能指针是一种特殊的数据结构,它们不仅存储数据,还负责管理数据的生命周期。智能指针…...
云原生周刊:Kubernetes v1.32 要来了
开源项目推荐 Woodpecker Woodpecker 是一款轻量级且功能强大的 CI/CD 引擎,以其高度可扩展性和易用性著称。它支持多种版本控制系统与编程语言,能够灵活适配不同开发流程,帮助团队实现高效的持续集成与交付。无论是个人项目还是大型团队&a…...
Easyexcel(3-文件导出)
相关文章链接 Easyexcel(1-注解使用)Easyexcel(2-文件读取)Easyexcel(3-文件导出) 响应头设置 通过设置文件导出的响应头,可以自定义文件导出的名字信息等 //编码格式为UTF-8 response.setC…...
php:使用socket函数创建WebSocket服务
一、前言 闲来无事,最近捣鼓了下websocket,但是不希望安装第三方类库,所以打算用socket基础函数创建个服务。 二、构建websocket服务端 <?phpclass SocketService {// 默认的监听地址和端口private $address 0.0.0.0;private $port 8…...
ubuntu20.04中编译安装gcc 9.2.0
ubuntu20.04中编译安装gcc 9.2.0,步骤如下: #install compile dependence libraries 1:$ sudo apt install libgmp-dev libisl-dev libmpc-dev libmpfr-dev # install gcc 9.2.0 # download source code 2:$ wget http://ftp.gnu.org/gn…...
ssm158企业人事管理系统的设计与实现+jsp(论文+源码)_kaic
设计题目:企业人事管理系统的设计与实现 摘 要 进入信息时代以来,很多数据都需要配套软件协助处理,这样可以解决传统方式带来的管理困扰。比如耗时长,成本高,维护数据困难,数据易丢失等缺点。本次使用数据…...
OceanBase数据库产品与工具介绍
OceanBase:蚂蚁集团自主研发的分布式关系数据库 1、什么是 OceanBase? OceanBase 是由蚂蚁集团完全自主研发的企业级分布式关系数据库,始创于 2010 年。它具有以下核心特点: 数据强一致性:在分布式架构下确保数据强…...
PakePlus将任何网页免费打包为mac/windows跨平台软件程序教程,只需要一个Github token就可以了
PakePlus是一个开源免费的软件,支持 Mac、Windows 和 Linux,很快也将支持 Android 和 iOS。无需在本地安装复杂的依赖环境,只需要一个Github Token就可以了。查看 README 以获取热门包和自定义开发信息。欢迎在讨论区分享你的建议。开源地址&…...
Element UI 组件库详解【Vue】
文章目录 一、引言二、安装并使用1. 安装2. 使用 三、常见组件说明1. 基础组件2. 布局组件3. 布局容器4. 选择框组件5. 输入框组件6. 下拉框组件7. 日期选择器8. 上传组件9. 表单组件10. 警告组件11. 提示组件12. 表格组件 一、引言 官方网站,element.eleme.cn El…...
Android kotlin之配置kapt编译器插件
配置项目目录下的gradle/libs.versions.toml文件,添加kapt配置项: 在模块目录下build.gradle.kt中增加 plugins {alias(libs.plugins.android.application)alias(libs.plugins.jetbrains.kotlin.android)// 增加该行alias(libs.plugins.jetbrains.kotl…...
基于 MUSA 的大语言模型推理和服务框架vLLM
1. 引言 vLLM是一个高性能且内存高效的大语言模型推理和服务框架,也是当前业界使用范围最广的大模型推理框架,截至目前github star数28.4k。该框架性能优秀,而且部署容易,使用CUDA/ROCm提供GPU加速能力。但vLLM目前不支持使用摩…...
k8s 集群安装
安装rockylinux https://www.jianshu.com/p/a5fe20318b8e https://www.cnblogs.com/haoee/p/18290506 配置VirtualBox双网卡 https://www.cnblogs.com/ShineLeBlog/p/17580311.html https://zhuanlan.zhihu.com/p/341328334 https://blog.csdn.net/qq_36544785/article/deta…...
Linux-服务器辨别实体机OR虚拟机
快速命令 ① lscpu(查看CPU信息) lscpu Hypervisor vendor: KVM (超管理器厂商:KVM。虚拟机:KVM / VMware) Virtualization: VT-x(虚拟化:VT-x。实体机:VT-x / AMD-V) ② systemd-detect-virt(检测当前系…...
堤防安全监测系统方案
一、背景情况 堤防是开发利用水资源和防治水灾害的重要工程措施之一,对防洪、供水、生态、发电、航运等至关重要。我国现有堤防9.8万多座,其中大中型堤防4700多座、小型堤防9.4万座,80%以上修建于上世纪50至70年代。由于堤防管护力量薄弱&am…...
Leetcode 求根节点到叶节点数字之和
使用深度优先搜索 DFS 来做 我提供的代码使用的是 深度优先搜索(DFS,Depth-First Search) 算法。以下是具体的算法思想和实现步骤的解释: 算法思想 树的路径代表数字: 树中每条从根节点到叶子节点的路径可以看作一个整…...
Git分布式版本控制系统
1. 版本控制系统 版本控制系统主要分为两类:集中式、分布式。 集中式:SVM(工作流程:所有的文件都保存在中央服务器上,每个电脑上只保存了一个副本,当需要修改时,先下载中央服务器上的最新版本文件…...
数据库审计工具--Yearning 3.1.9普民的使用指南
1 页面登录 登录地址:18000 (不要勾选LDAP) 2 修改用户密码 3 DML/DDL工单申请及审批 工单申请 根据需要选择【DML/DDL/查询】中的一种进行工单申请 填写工单信息提交SQL检测报错修改sql语句重新进行SQL检测,如检测失败可以进行SQL美化后…...
VMware Workstation 17.6.1
概述 目前 VMware Workstation Pro 发布了最新版 v17.6.1: 本月11号官宣:针对所有人免费提供,包括商业、教育和个人用户。 使用说明 软件安装 获取安装包后,双击默认安装即可: 一路单击下一步按钮: 等待…...
unity 中 RectTransform 的常用几个属性
RectTransform rectTransform this.GetComponent<RectTransform>(); rectTransform this.transform as RectTransform; Vector3 vector1 rectTransform.position; //自身轴心点相对于锚点的位置(编译器显示的pos) …...
23种设计模式-模板方法(Template Method)设计模式
文章目录 一.什么是模板方法模式?二.模板方法模式的特点三.模板方法模式的结构四.模板方法模式的应用场景五.模板方法模式的优缺点六.模板方法模式的C实现七.模板方法模式的JAVA实现八.代码解析九.总结 类图: 模板方法设计模式类图 一.什么是模板方法模…...
网络安全之国际主流网络安全架构模型
目前,国际主流的网络安全架构模型主要有: ● 信息技术咨询公司Gartner的ASA(Adaptive Security Architecture自适应安全架构) ● 美国政府资助的非营利研究机构MITRE的ATT&CK(Adversarial Tactics Techniques &…...
SpringCloud多机部署,负载均衡-LoadBalance
一.负载均衡 1.1问题描述 //根据应用名称获取服务列表 List<ServiceInstance> instancesdiscoveryClient.getInstances("product-service"); //一个微服务可能有多个实例,获取第一个 EurekaServiceInstance instance(EurekaServiceInstance)insta…...
前端开发调试之 PC 端调试学习笔记
一、引言 在前端开发过程中,调试是至关重要的一个环节。它能帮助我们快速定位代码中的问题,无论是页面布局错乱、交互效果异常还是性能不佳等情况,通过有效的调试手段都可以找到根源并进行修复。而在 PC 端进行调试有着其特定的方法和技巧&am…...
视频流媒体播放器EasyPlayer.js无插件直播流媒体音视频播放器Android端webview全屏调用无效问题
流媒体播放器的核心技术与发展趋势正在不断推动着行业的变革。未来,随着技术的不断进步和应用场景的不断拓展,流媒体播放器将为用户带来更加便捷、高效、个性化的观看体验。同时,流媒体播放器也会成为数字娱乐产业的重要组成部分,…...
使用 cnpm 安装 Electron,才是正确快速的方法
当然,下面是总结的几种安装 Electron 的方法,包括使用 npm 和 cnpm,以及一些常见的问题解决技巧。 ### 1. 使用 npm 安装 Electron #### 步骤 1: 初始化项目 在你的项目目录中初始化一个新的 Node.js 项目: bash npm init -y …...
pytest日志总结
pytest日志分为两类: 一、终端(控制台)打印的日志 1、指定-s,脚本中print打印出的信息会显示在终端; 2、pytest打印的summary信息,这部分是pytest 的默认输出(例如测试结果PASSED, FAILED, S…...
【Ubuntu24.04】使用服务器
目录 0 背景1 将文件传送到服务器1.1 主机上的虚拟机1.2 另一台独立的计算机(包括上面的虚拟机)1.3 远程文件传输1.3.1 scp2 操作服务器2.1 ssh2.2 Termius2.2.1 下载2.2.2 安装2.2.3 使用2.2.4 小结3 总结0 背景 你是一个开发者,有自己的测试环境:一个Linux服务器(假设是…...
Spark 之 Aggregate
Aggregate 参考链接: https://github.com/PZXWHU/SparkSQL-Kernel-Profiling 完整的聚合查询的关键字包括 group by、 cube、 grouping sets 和 rollup 4 种 。 分组语句 group by 后面可以是一个或多个分组表达式( groupingExpressions )…...
ubuntu没有了有线网络如何修复
今天打开ubuntu之后发现有线网络连接没有了,如下图,此时是修复好之后的,“有线”部分存在,出现问题时是不存在的 此时只需要修改NetworkManager.conf配置文件,将managedfalse更改为managedtrue,保存退出就可以了 sudo…...
2411rust,异步函数
原文 Rust异步工作组很高兴地宣布,在实现在特征中使用异步 fn的目标方面取得了重大进度.将在下周发布稳定的Rust1.75版,会包括特征中支持impl Trait注解和async fn. 稳定化 自从RFC#1522在Rust1.26中稳定下来以来,Rust就允许用户按函数的返回类型(一般叫"RPIT")编…...
解决IDEA报包不存在,但实际存在的问题
前言 最近在把一个亿老项目交割给同事,同事在导入项目运行时遇到IDEA报包不存在,但实际存在的问题,最终通过以下方式解决 现象 在IDEA里启动运行项目,报某个类有问题,引入的包不存在。 点击这个引入的包,可…...
解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题
解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题 Chapter1 解决Ubuntu18.04及以上版本高分辨率下导致字体过小问题Chapter2 windows主机和ubuntu互传文件的4种方法 博文链接:Chapter3 安装好VMware tools后无法复制粘贴文本、拖拽文件的解决办法 Chapter1 解…...
SpringBoot与MongoDB深度整合及应用案例
SpringBoot与MongoDB深度整合及应用案例 在当今快速发展的软件开发领域,NoSQL数据库因其灵活性和可扩展性而变得越来越流行。MongoDB,作为一款领先的NoSQL数据库,以其文档导向的存储模型和强大的查询能力脱颖而出。本文将为您提供一个全方位…...
计算机网络(12)介质访问控制
ok通过前面的学习我们已经知道数据链路层提供的服务有帧封装,物理地址,流量控制,错误控制,访问控制。今天就来记录最后的访问控制。 介质访问控制 (MAC)详解 介质访问控制(Media Access Control,简称 MAC&…...
Axios 响应拦截器与未登录状态的统一处理
目录 前言1. 响应拦截器的作用与应用场景1.1 什么是响应拦截器?1.2 响应拦截器的应用场景 2. 代码解读:响应拦截器中的未登录处理2.1 原始代码分析 3. 完善未登录处理逻辑3.1 未登录状态的用户体验优化3.2 改进后的代码实现 4. 实践中的场景4.1 登录态的…...
【MySQL系列】深入理解MySQL中的存储、排序字符集
前言 在创建数据库时,我们经常会需要填写数据库的所用字符集、排序规则,字符集和排序规则是两个非常重要的概念,它们决定了数据库如何存储和比较字符串数据。在 MySQL 中,常用的存储字符集有 utf8、utf8mb4,而排序字符…...
【ARM Coresight OpenOCD 系列 5.1 -- OpenOCD 无法识别CPUID 问题: xxx is unrecognized】
请阅读【嵌入式开发学习必备专栏】 文章目录 OpenOCD 无法识别CPUID 问题ARM CPUIDCPUID 特性CPUID 寄存器字段OpenOCD 无法识别CPUID 问题 在使用OpenOCD 进行CPU debug的过程中有时会报出 无法识别CPUID的问题,本文将会介绍如何解决这个问题。首先我们来学习下什么是CPUID,…...
YOLOv11融合针对小目标FFCA-YOPLO中的FEM模块及相关改进思路
YOLOv11v10v8使用教程: YOLOv11入门到入土使用教程 YOLOv11改进汇总贴:YOLOv11及自研模型更新汇总 《FFCA-YOLO for Small Object Detection in Remote Sensing Images》 一、 模块介绍 论文链接:https://ieeexplore.ieee.org/document/10…...
【Docker容器】一、一文了解docker
1、什么是docker? 1.1 docker概念 Docker是一种容器化平台,通过使用容器技术,Docker允许开发人员将应用程序和其依赖项打包到一个独立的、可移植的容器中。每个容器具有自己的文件系统、环境变量和资源隔离,从而使应用程序可以在…...
【团购核销】抖音生活服务商家应用快速接入①——基础工作
文章目录 一、前言二、抖音开放平台(服务商平台)三、认证服务能力四、第三方生活服务商家应用五、APPID和AppSecret六、申请接口权限七、开发配置八、参考 一、前言 目的:将抖音团购核销的功能集成到我们自己开发的App和小程序中 【团购核销】…...
MyBatis实践:提高持久化层数据处理效率
一、MyBatis简介: 1.简介:https://mybatis.org/mybatis-3/zh/index.html?spmwolai.workspace.0.0.66162306mX2SuC MyBatis最初是Apache的一个开源项目iBatis, 2010年6月这个项目由Apache Software Foundation迁移到了Google Code。随着开发团队转投Google Code旗下ÿ…...
如何理解Lua 使用虚拟堆栈
虚拟堆栈的基本概念 Lua使用虚拟堆栈来实现Lua和C(或其他宿主语言)之间的交互。这个虚拟堆栈是一个数据结构,用于存储Lua的值,如数字、字符串、表、函数等。它在Lua状态机(lua_State)内部维护,为…...
UE5 腿部IK 解决方案 footplacement
UE5系列文章目录 文章目录 UE5系列文章目录前言一、FootPlacement 是什么?二、具体实现 前言 在Unreal Engine 5 (UE5) 中,腿部IK(Inverse Kinematics,逆向运动学)是一个重要的动画技术,用于实现角色脚部准…...
SMMU软件指南之概述
安全之安全(security)博客目录导读 目录 1. 概述 1.1 开始之前 2. SMMU 的功能 1. 概述 本博客描述了 ARM 系统内存管理单元(SMMUv3)的基本操作及其使用案例,包括: • SMMU 架构概念、术语和操作 • 与 SMMU 功能相关的系统级考虑因素 • 典型 SMMU 使用案例的知识 1…...