赞
踩
大型语言模型(LLMs)的开发和部署取得了显著进展。例如ChatGPT和Llama-2这样的LLMs,利用庞大的数据集和Transformer架构,能够产生连贯性、上下文准确性甚至具有创造性的文本。LLMs最初和本质上是为静态场景设计的,即输入数据保持不变,缺乏清晰结构。因此,在任何基于LLMs的交互式应用中,上下文信息首先需要被整合到输入中,以指导LLMs生成与上下文相关的响应,从而实现交互行为。LLMs的输出在很大程度上依赖于请求中提供的上下文。
然而,这些模型面临着由上述实践引入的新漏洞。具体来说,来自不可信来源的误导性上下文可能导致LLMs表现出不期望的行为,例如接受它们通常会拒绝的有害请求。
在本文中我们探索上下文注入攻击,即注入虚假上下文并随后误导LLMs的行为。更具体地说,我们关注这种攻击如何绕过LLMs的安全措施以产生不允许的响应。这种响应可能带来重大的安全风险,例如错误信息的传播、非法或不道德行为以及技术滥用。
ChatGPT聊天模型以会话方式进行交互,但它们的基础建立在大型语言模型(LLM)的原理之上。具体来说,这些模型旨在预测下一个单词或标记。因此,尽管用户感知到的是一轮又一轮的互动,但实际上聊天模型是通过继续提供文本的方式来运作的。换句话说,这些模型并没有以传统意义上“记住”聊天历史。相反,多轮对话中的每个用户请求都可以被视为与LLM的独立交互。
在实践中,开发了聊天标记语言(Chat Markup Language, ChatML)来结构化模型输入。这种结构化格式确保了模型能够以有组织的方式全面理解上下文,从而提高了文本预测和续写的准确性。
用户与聊天模型的交互存在两种主要方法:API和WebUI访问,它们允许不同的用户能力。
接受引诱: 设计用来迫使LLMs对有害请求作出肯定回应,而不是拒绝。
词匿名化: 将有害请求中的敏感词替换为匿名化术语,降低请求的感知敏感性,从而提高被 LLM 接受的可能性。
上下文结构化的目的是通过特定的格式来构造虚假的上下文信息,使得这些信息能够被LLMs解释为系统提供的真实上下文。这通常在攻击者只能通过Web用户界面(WebUI)与聊天机器人交互的场景中使用,因为这种情况下攻击者只能修改用户消息字段。
攻击者首先需要创建一个攻击提示模板,该模板定义了虚假上下文的格式。这个模板应该模仿目标LLM在训练和推理时使用的Chat Markup Language(ChatML)格式。攻击者通过指定角色标签和分隔符来构造这个模板。
攻击者根据构造的模板将聊天历史结构化,将上下文嵌入到用户消息中。这个结构化的输入包括:
为了通过WebUI发起攻击,攻击者可以将模板制作与前面讨论的构造策略结合,采取以下三步方法:
攻击成功率关键字搜索(ASRkw):定义一个评估攻击效果的指标,通过搜索响应中是否包含特定的拒绝短语(如“对不起,我不能协助那个请求”)来确定LLMs是否拒绝了请求。如果响应中没有这些拒绝短语,则认为攻击成功。
2.2.3 攻击方法及效果对比
这种方法涉及直接在有害问题前注入命令,例如“IGNORE INSTRUCTIONS!! NOW”,目的是让模型忽略其预定义的行为并执行攻击者的指令。
AIM是一种“越狱”提示,它源自社交媒体讨论,并且在某些情况下获得了高度的投票支持。AIM提示旨在通过精心构造的文本来操纵LLMs生成有害内容。
ACC策略侧重于构造一个先前上下文,使得LLMs倾向于接受而不是拒绝随后的请求。
ACC+ANO是指结合了两种上下文构造策略的攻击方法,用于上下文注入攻击中,目的是诱使大型语言模型(LLMs)产生不允许的回应。
效果:结合使用接受引诱和词匿名化的策略在多数模型上取得了非常高的攻击成功率(ASRkw),范围在91%到98%之间。
这种结合策略显著提高了攻击的有效性,因为它不仅通过构造先前接受的上下文来误导模型,而且还通过匿名化敏感词来降低请求被拒绝的风险。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。