利用概念激活向量破解大模型的安全对齐,揭示LLM重要安全风险漏洞。
来自人大&港科大的研究人员提出安全概念激活向量(SCAV)框架,通过精确解读大模型的安全机制来指导攻击。
基于SCAV的攻击方法能够生成嵌入级和提示级的攻击,自动调整扰动参数,并显著提升了攻击成功率和响应质量。
在对七个开源大模型的评估中,基于关键词匹配标准的平均攻击成功率(ASR)为99.14%。同时,研究表明,基于SCAV生成的攻击提示具有跨模型迁移的潜力,可在GPT-4等黑盒API上取得成功。
使用SCAV框架诱导攻击,首先需要训练SCAV分类器。
通过对恶意和安全指令嵌入的降维分析,研究者发现这两类指令在低维空间中呈现明显的分隔。因此,通过在模型的嵌入空间中定义一个“安全”与“恶意”的概念分离面,就能够识别出模型在不同输入上对“安全性”的反应。SCAV分类器的目标是在嵌入空间中建立一种简单的线性模型,将恶意指令和安全指令进行分离,以便在后续攻击中利用这一特性。
图1:SCAV分类器的训练流程
SCAV框架可以诱导两种攻击层次——嵌入层(embedding-level)和提示层(prompt-level)。
图2:SCAV诱导的嵌入层攻击
嵌入层攻击通过在模型的中间层嵌入空间中引入微小扰动来改变模型对输入的安全判断,从而绕过安全机制。具体来说,模型的每一层都可以用对应输出的嵌入训练SCAV分类器,分类器在该层的测试集准确率反映了模型在该层的安全机制的存在与强弱。研究发现,对于经过安全对齐的模型(例如LLaMA),其早期层通常具有较低的测试集准确率,而在中后期层通常具有逼近100%的测试集准确率;而对于未经过安全对齐的模型(例如Alpaca),其所有层的SCAV分类器测试集准确率通常在85%以下,行为与对齐模型呈现明显不同(如图3所示)。因此,嵌入层攻击将锚定那些测试集准确率大于阈值P1(设定P1=90%)的层。
图3:不同模型各层的SCAV分类器测试集准确率变化
在模型处理一个恶意指令的前向传播过程中,利用SCAV分类器的参数在各层引入一个扰动,使得所在层的输出嵌入变为:
这个扰动的参数 ε 为大小,v 为方向,需要满足约束条件
这个约束条件的直观意义就是降低嵌入被模型确认为恶意指令的概率Pm到阈值P0(设定P0=0.01%)以下,从而逆转模型的安全概念认知,同时保证对模型尽量小的修改。由于这个优化问题有闭式解,因此不同于已有的基于优化的攻击手段,执行这种攻击是非常快速的。
在模型处理恶意指令的每一个新生成token的过程中,逐层应用这种扰动,就可以达到高效、高质量的攻击结果。
图4:SCAV诱导的提示层攻击
提示层攻击则是通过修改输入提示词来进行攻击的一种手段。研究发现,现有的基于优化的攻击手段如AutoDAN等,其优化的目标往往不是模型的真实输出。而SCAV分类器正提供了模型对安全认知的精确描述,因此更适合用于优化目标。通过将AutoDAN的分层遗传优化算法的优化目标修改为基于SCAV分类器的函数:
提示层攻击能够达到比现有的基于优化的攻击手段更好的效果。值得注意的是,在开源模型上训练得到的攻击提示对于GPT-4的API也一样有效,具有相当的可迁移性。
研究评估了SCAV诱导的嵌入层攻击和提示层攻击与DeepInception、AutoDAN、GCG、RepE、JRE、Soft prompt等基线方法的攻击效果。恶意指令数据集为Advbench和StrongREJECT。
评价指标有两类:一是常用的基于关键词匹配计算出的攻击成功率(ASR-keyword),二是基于GPT-4进行评价的进阶指标,ASR-answer、ASR-useful和Language Flaws,分别从不同的角度考察模型回复的质量。
达到这一效果所需的数据总量则比基线方法少得多。
如图5所示,研究结果表明,受益于SCAV良好的建模与刻画安全机制的能力,仅需5对恶意-安全指令样本就可以达到100%的ASR-keyword。而在仅有一对数据时,基线方法几乎失去效果,但SCAV仍然保持了80%左右的ASR-keyword,并且在随机多次的实验中具有更小的方差。
图5:在使用不同训练数据数量时,SCAV和基线方法的ASR-keyword比较,显示方差
提示层级的攻击结果如表3、表4所示。
表3显示,SCAV方法始终表现最佳,相比于手动设计或优化攻击提示的基线方法,ASR相关的标准提高了12%到42%,Language Flaws最多减少了18%。这证明了优化目标的有效性,即同时提高攻击成功率并保持模型性能。
表4显示了将从LLaMA模型学习的提示应用于GPT-4的结果。SCAV方法通常表现更好,ASR相关标准最多提高48%,Language Flaws最多减少26%。这表明通过研究某些白盒模型的内部工作原理所学习的攻击提示可能仍然对其他黑盒API有用。
基于SCAV的攻击过程,研究者们提出了如下见解。
见解一:当前开源和闭源的大模型均存在严重的安全风险。
表5显示了使用SCAV攻击7个知名开源大模型的结果。可以看到,除了一个模型外,所有大模型对超过85%的恶意指令都提供了相关答案(ASR-answer)。响应质量也很高,平均ASR-useful为87%,Language Flaws平均为12%。此外,在大多数情况下,ASR-keyword接近100%。这非常危险,因为最近发布的开源LLM的性能正在逐渐提高,并且几乎不需要成本就可以获得对任何恶意指令的响应,因为不需要对大模型进行微调或使用大量训练数据。
表6显示了使用各种SCAV攻击手段组合对GPT-4攻击的结果。即使是最先进的GPT-4对Advbench上的84%恶意指令返回有用的响应,并且对StrongREJECT上的 54% 恶意指令给出有用的响应。这表明,黑盒模型的对齐也可能通过使用现有攻击方法显著逆转。因此,迫切需要开发有效的方法来防御当前的攻击方法或停止开源高性能大模型。
见解二:遗忘学习等现有防御方法并不能抹消SCAV所揭示的安全漏洞。
现有的防御方法如遗忘学习等是否能有效帮助大语言模型忘记有害知识?通过对一个经过Eraser遗忘学习微调的LLaMA-2-7B-Chat版本应用SCAV攻击方法,表7显示,仍然可以诱导大模型产生许多有害响应,这表明现有的遗忘学习并不能抹消SCAV所揭示的安全漏洞。此外,研究者们还发现ICD、Self-Reminder等经典的防御方法对嵌入层攻击这种手段基本不适用,说明了SCAV安全漏洞的高危特性。
见解三:对大模型可区分安全和恶意嵌入这一漏洞的认识
图6:通过 (a) 攻击单层;(b) 攻击多层,以及 (c) 将嵌入级攻击转移到其他白盒大模型,揭示大模型的安全机制
之前的实验表明,对齐的模型可以在中晚期层线性分离来自恶意和安全指令的嵌入(图1),并且由线性分类器引导的攻击成功率很高,这表明大模型的安全机制可能很好地被线性可分性建模。为了更好地理解它们之间的关系,进一步攻击了LLaMA-2-7B-Chat的第0、第10、第20和第30层。如图6a所示,对线性可分层(第10、20、30层)的攻击始终导致ASR-keyword的增加,而对其他层(第0层)的攻击则没有改善ASR-keyword。基于这些结果,研究者推测,对于每一层,线性可分性不仅可能表明大模型理解安全概念,还可能意味着大模型将在后续层中使用这一安全概念来生成响应。
图6b显示了在攻击LLaMA-2-7B-Chat的不同层时Pm的值,有两个现象。首先,攻击单一层(第10层)会导致当前层的Pm较低,但随后在后续层中Pm会增加。这意味着后面的层以某种方式逐渐通过利用嵌入的现有信息来纠正攻击,可能是因为模型从不同的角度建模安全机制。其次,当更多层被扰动(例如,第10层到第13层)时,后续层的Pm不再能够被模型纠正。这表明某一些层可能共同决定了从不同角度的整体安全机制。
图6c展示了在将嵌入级攻击从一个白盒模型应用到另一个模型时的ASR-keyword。可以看到,ASR-keyword有时相当大(接近100%)。这表明大模型的安全机制可能具有某种共性,并且SCAV在某种意义上可能已经表征了这种共性。然而,关于何时可以转移以及为什么会转移,仍然缺乏清晰的解释。
在本研究中,研究者们提出了一种基于安全概念激活向量(SCAV)的框架,以揭示大语言模型在安全对齐方面的潜在漏洞。通过在模型的嵌入空间中定义“安全”与“恶意”指令的分离面,SCAV框架能够在嵌入层和提示层引导两种攻击方式,显著提升了对模型安全机制的攻击成功率和攻击迁移性。
实验表明,SCAV方法在更少样本下比基线方法更有效,且减少了生成内容的缺陷。研究指出,大模型在嵌入空间的线性可分性是其安全机制的薄弱点,现有防御方法难以完全阻止SCAV攻击,强调了开发更强安全防护的紧迫性。
目前相关论文和代码已公开,感兴趣可以进一步了解。
论文链接:
https://arxiv.org/pdf/2404.12038
代码仓库:
https://github.com/SproutNan/AI-Safety_SCAV
文章来自于“量子位”,作者“人大&港科大团队”。
【开源免费】graphrag是微软推出的RAG项目,与传统的通过 RAG 方法使用向量相似性作为搜索技术不同,GraphRAG是使用知识图谱在推理复杂信息时大幅提高问答性能。
项目地址:https://github.com/microsoft/graphrag
【开源免费】Dify是最早一批实现RAG,Agent,模型管理等一站式AI开发的工具平台,并且项目方一直持续维护。其中在任务编排方面相对领先对手,可以帮助研发实现像字节扣子那样的功能。
项目地址:https://github.com/langgenius/dify
【开源免费】RAGFlow是和Dify类似的开源项目,该项目在大文件解析方面做的更出色,拓展编排方面相对弱一些。
项目地址:https://github.com/infiniflow/ragflow/tree/main
【开源免费】phidata是一个可以实现将数据转化成向量存储,并通过AI实现RAG功能的项目
项目地址:https://github.com/phidatahq/phidata
【开源免费】TaskingAI 是一个提供RAG,Agent,大模型管理等AI项目开发的工具平台,比LangChain更强大的中间件AI平台工具。
项目地址:https://github.com/TaskingAI/TaskingAI
【开源免费】XTuner 是一个高效、灵活、全能的轻量化大模型微调工具库。它帮助开发者提供一个简单易用的平台,可以对大语言模型(LLM)和多模态图文模型(VLM)进行预训练和轻量级微调。XTuner 支持多种微调算法,如 QLoRA、LoRA 和全量参数微调。
项目地址:https://github.com/InternLM/xtuner
【开源免费】LangGPT 是一个通过结构化和模板化的方法,编写高质量的AI提示词的开源项目。它可以让任何非专业的用户轻松创建高水平的提示词,进而高质量的帮助用户通过AI解决问题。
项目地址:https://github.com/langgptai/LangGPT/blob/main/README_zh.md
在线使用:https://kimi.moonshot.cn/kimiplus/conpg00t7lagbbsfqkq0
【开源免费】VideoChat是一个开源数字人实时对话,该项目支持支持语音输入和实时对话,数字人形象可自定义等功能,首次对话延迟低至3s。
项目地址:https://github.com/Henry-23/VideoChat
在线体验:https://www.modelscope.cn/studios/AI-ModelScope/video_chat
【开源免费】Streamer-Sales 销冠是一个AI直播卖货大模型。该模型具备AI生成直播文案,生成数字人形象进行直播,并通过RAG技术对现有数据进行寻找后实时回答用户问题等AI直播卖货的所有功能。
项目地址:https://github.com/PeterH0323/Streamer-Sales