译文,原作者Lilian Weng现为OpenAI应用人工智能研究负责人,主要从事机器学习、深度学习和网络科学研究 。
原文链接:https://lilianweng.github.io/posts/2023-10-25-adv-attack-llm/
ChatGPT 的推出极大地加速了大型语言模型在现实世界中的使用。我们(包括我在 OpenAI 的团队,向他们致敬)投入了大量的精力,在对齐过程中(例如通过RLHF)将默认的安全行为构建到模型中。然而,对抗性攻击或越狱提示可能会触发模型输出不需要的内容。
对抗性攻击的大量基础工作都是在图像上进行的,不同的是,它在连续的高维空间中运行。由于缺乏直接梯度信号,对文本等离散数据的攻击被认为更具挑战性。我过去关于可控文本生成的文章与这个主题非常相关,因为攻击 LLM 本质上是控制模型输出某种类型的(不安全)内容。
还有一个工作分支是攻击 LLM 以提取预训练数据、私有知识(Carlini 等人,2020)或通过数据中毒攻击模型训练过程(Carlini 等人,2023)。我们不会在这篇文章中讨论这些主题。
基本威胁模型对抗性攻击是触发模型输出不需要的内容的输入。许多早期文献都集中在分类任务上,而最近的努力开始更多地研究生成模型的输出。在大型语言模型的背景下,在这篇文章中,我们假设攻击仅发生在推理时,这意味着模型权重是固定的。
图 1. 基于 LLM 的应用程序面临的威胁概述。(图片来源:Greshake 等人,2023)分类
添加图片注释,不超过 140 字(可选)
对抗性攻击的类型有多种方法可以找到对抗性输入来触发LLM输出不需要的内容。我们在这里提出五种方法。
攻击 | 类型 | 描述 |
Token操纵 | 黑盒子 | 更改文本输入中的一小部分标记,使其触发模型失败,但仍保留其原始语义。 |
基于梯度的攻击 | 白盒 | 依靠梯度信号来学习有效的攻击。 |
越狱提示 | 黑盒子 | 通常基于启发式提示来“越狱”内置模型安全性。 |
人类红队 | 黑盒子 | 无论是否有其他模型的帮助,人类都会攻击模型。 |
模型红队 | 黑盒子 | 模型攻击模型,其中攻击者模型可以进行微调。 |
给定一段包含一系列标记的文本输入,我们可以应用简单的标记操作(例如用同义词替换)来触发模型做出错误的预测。基于令牌操纵的攻击在黑匣子设置中起作用。Python 框架 TextAttack(Morris et al. 2020)实现了许多单词和标记操作攻击方法,为 NLP 模型创建对抗性示例。该领域的大多数工作都尝试了分类和蕴涵预测。 Ribeiro 等人(2018)依靠手动提出的语义等效对手规则(SEAR)来进行最少的标记操作,从而使模型无法生成正确的答案。示例规则包括 ( What NOUN→WhichNOUN )、( WPis → WP's' )、( was→is ) 等。对抗性操作后的语义等价性通过反向翻译进行检查。这些规则是通过相当手动的启发式流程提出的,SEAR 正在探测的模型“错误”类型仅局限于对最小代币变化的敏感性,这不应该成为增加基础 LLM 能力的问题。 相比之下,EDA(Easy Data Augmentation;Wei & Zou 2019)定义了一组简单且更通用的操作来增强文本:同义词替换、随机插入、随机交换或随机删除。EDA 增强已被证明可以提高多个基准的分类准确性。 TextFooler(Jin 等人,2019)和BERT-Attack(Li et al. 2020)遵循相同的过程,首先识别对模型预测影响最大的最重要和最脆弱的单词,然后以某种方式替换这些单词。
添加图片注释,不超过 140 字(可选)
TextFooler 根据单词嵌入余弦相似度将这些单词替换为顶级同义词,然后通过检查替换单词是否仍具有相同的 POS 标记以及句子级别相似度高于阈值来进一步过滤。鉴于上下文感知预测是屏蔽语言模型的一个非常自然的用例,BERT-Attack 通过 BERT 将单词替换为语义相似的单词。通过这种方式发现的对抗性示例在模型之间具有一定的可转移性,具体取决于模型和任务。
基于梯度的攻击在白盒设置中,我们可以完全访问模型参数和架构。因此,我们可以依靠梯度下降以编程方式学习最有效的攻击。基于梯度的攻击仅在白盒设置中有效,例如开源LLM。
添加图片注释,不超过 140 字(可选)
Gumbel 分布用于对多个样本的极值(最大值或最小值)进行建模,而与样本分布无关。额外的 Gumbel 噪声带来了模拟分类分布采样过程的随机决策。
图 2. 概率密度图甘贝尔(0,1)甘贝尔(0,1)。(图片由 ChatGPT 创建)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
图 4. 说明通用对抗性触发器 (UAT) 的工作原理。(图片来源:Wallace 等人,2019)
添加图片注释,不超过 140 字(可选)
图 5. 不同类型语言任务的通用对抗性触发器 (UAT) 示例。(图片来源:Wallace 等人,2019)
UAT 为何有效是一个有趣的问题。因为它们与输入无关,并且可以在具有不同嵌入、标记化和架构的模型之间传输,所以 UAT 可能会有效地利用训练数据中的偏差,并将其融入到全局模型行为中。 UAT(通用对抗触发)攻击的一个缺点是很容易检测到它们,因为学习到的触发通常是无意义的。梅赫拉比等人。(2022)研究了 UAT 的两种变体,这些变体鼓励习得的有毒触发器在多轮对话的背景下难以察觉。目标是创建能够有效触发给定对话模型的有毒响应的攻击消息,同时攻击流畅、连贯且与该对话相关。 他们探索了 UAT 的两种变体:
图 6. UTSC(具有选择标准的一元触发器)工作原理的图示。(图片来源:Mehrabi 等人,2022)
UAT-LM 和 UTSC-1 的性能与 UAT 基线相当,但 UAT 攻击短语的困惑度高得离谱(~ 10**7;根据 GPT-2),远高于 UAT-LM(~10**4)和 UTSC-1 (~160)。高复杂性使得攻击更容易被检测和缓解。根据人类评估,UTSC-1 攻击比其他攻击更加连贯、流畅和相关。
图 7. 通过不同毒性分类器测量防御者模型对生成攻击的响应的攻击成功率。“安全分类器”来自Xu 等人。2020年。(图片来源:[Mehrabi et al. 2022 ]邹等人。(2023)
还研究了通用对抗性触发令牌作为连接到输入请求的后缀。他们专门研究了模型应拒绝回答的对LLM的恶意请求。事实上,拒绝不允许的内容类别(例如犯罪建议)是 GPT-4 中内置的一项重要的安全缓解措施(OpenAI 2023)。对抗性目标是触发LLM即使面临应该拒绝的请求也能输出肯定的回应。也就是说,给定恶意请求,模型可以响应诸如 之类的内容"Sure, here is how to ..."。预期的肯定响应还配置为重复部分用户提示,以避免后缀简单地更改主题以优化"sure"回复。损失函数就是输出目标响应的NLL。
图 8. 引入对抗性触发器的图示。红色感叹号代表要学习的对抗性标记。(图片来源:Zou et al.2023)
在两个不同的模型上进行了跨多个输入触发肯定模型响应的实验,Vicuna-7b并且Vicuna-13b。他们采用基于贪婪坐标梯度(GCG)的搜索来贪婪地寻找一个在所有可能的单令牌替换中可以最大程度地减少损失的候选者。从字面上评估所有标记替换是不可行的,因此他们运行类似于UAT 和 AutoPrompt 的基于梯度的标记搜索策略来查找每个标记的最佳候选者,每个候选者都与损失的最大负梯度相关。
添加图片注释,不超过 140 字(可选)
尽管他们的攻击序列仅在开源模型上进行训练,但它们表现出对其他商业模型的不平凡的可移植性,这表明对开源模型的白盒攻击对于私有模型可能是有效的,特别是当底层训练数据重叠时。请注意,Vicuna 使用从GPT-3.5-turbo(通过 shareGPT)收集的数据进行训练,这本质上是蒸馏,因此攻击更像是白盒攻击。
图9.“HB(有害行为)”指令的平均攻击成功率,平均5次提示。两个基线仅包含“HB”提示符或 HB 提示符后跟“Sure here's”作为后缀。“串联”将多个对抗性后缀组合起来,构建更强大的攻击,在某些情况下成功率明显更高。“Ensemble”会跟踪 5 个提示中的任何一个以及串联的一个是否成功。(图片来源:Zou et al.2
添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
反转有毒输出提示的实验:
图 10. 触发 GPT-2 和 GPT-J 产生有毒输出的平均成功率。粗体:CivilComments 的所有输出;点:CivilComments 的 1,2,3 标记有毒输出。(图片来源:Jones 等人,2023)
越狱提示越狱提示敌对地触发LLM输出本应减轻的有害内容。越狱是黑盒攻击,因此措辞组合基于启发式和手动探索。魏等人。(2023)提出了LLM安全性的两种故障模式来指导越狱攻击的设计。
魏等人。(2023) 试验了大量的越狱方法,包括按照上述原则构建的组合策略。
图 11. 越狱技巧的类型及其攻击模型的成功率。检查论文以获取每个攻击配置的详细解释。(图片来源:Wei et al. 2023)
格雷沙克等人。(2023)对即时注入攻击进行了一些高级观察。指出,即使攻击没有提供详细方法而只提供目标,模型也可能自主实施。当模型可以访问外部 API 和工具时,访问更多信息甚至专有信息会带来更多网络钓鱼、私人探测等风险。
循环中的人类红队人机循环对抗生成,由Wallace 等人提出。(2019),旨在构建工具来指导人类打破模型。他们对QuizBowl QA 数据集进行了实验,并设计了一个对抗性写作界面,供人类编写类似 Jeopardy 风格的问题,以欺骗模型做出错误的预测。每个单词根据其重要性(即删除单词后模型预测概率的变化)以不同的颜色突出显示。单词重要性通过模型相对于单词嵌入的梯度来近似。
图 12.对抗性写作界面,由(左上)模型的前五个预测列表组成,(右下)用户问题,其中根据单词重要性突出显示单词。(图片来源:Wallace 等人,2019)
Ziegler 等人在一项实验中,指导人类训练员查找暴力内容安全分类器的失败案例。(2022)创建了一种工具来帮助人类对手更快、更有效地发现和消除分类器中的故障。工具辅助重写比纯手动重写更快,每个示例从 20 分钟减少到 13 分钟。准确地说,他们引入了两个功能来帮助人类作家:
图 13.人类对分类器进行工具辅助对抗攻击的 UI。人类被要求编辑提示或完成,以降低模型预测输入是否为暴力内容的概率。(图片来源:Ziegler 等人,2022)
机器人对抗对话(BAD;Xu et al. 2021)提出了一个框架,引导人类欺骗模型以犯错误(例如输出不安全的内容)。他们收集了模特和众包工作者之间的 5000 多条对话。每个对话由 14 个回合组成,模型根据不安全回合的数量进行评分。他们的工作产生了一个BAD 数据集(Tensorflow 数据集),其中包含约 2500 个带有攻击性标签的对话。Anthropic 的红队数据集包含近 40k 对抗性攻击,这些攻击是从与LLM对话的红队人员中收集的(Ganguli 等人,2022))。他们发现 RLHF 模型随着规模的扩大而更难受到攻击。人类专家红队通常用于 OpenAI 大型模型发布的所有安全准备工作,例如GPT-4和DALL-E 3。
模型红队添加图片注释,不超过 140 字(可选)
添加图片注释,不超过 140 字(可选)
图 14.x 轴测量模型响应被分类为攻击性的百分比(=“攻击成功率”),y 轴测量 self-BLEU 的样本多样性。显示的红队生成方法有零样本(ZS)、随机少样本(SFS)、监督学习(SL)、BAD数据集、RL(具有不同KL惩罚的A2C)。每个节点都根据分类为攻击性的百分比测试提示进行着色,其中蓝色为低,红色为高。
不可能建立一个完美的分类器来检测有害内容,并且该分类器中的任何偏见或缺陷都可能导致有偏见的攻击。强化学习算法特别容易利用分类器的任何小问题作为有效的攻击模式,这可能最终只是对分类器的攻击。此外,有人认为针对现有分类器的红队具有边际效益,因为这样的分类器可以直接用于过滤训练数据或块模型输出。 卡斯珀等人。(2023)建立了人机交互的红队流程。与佩雷斯等人的主要区别。(2022)的优点是,他们明确地为目标模型设置了一个数据采样阶段,以便我们可以收集其上的人类标签来训练特定于任务的红队分类器。共有三个步骤:
图 15. 通过探索-建立-利用步骤进行红队合作的流程。(图片来源:Casper 等人,2023)
FLIRT(“反馈循环上下文中的红队”;Mehrabi 等人,2023)依赖于红色 LM 的上下文中学习pred攻击图像或文本生成模型p输出不安全的内容。回想一下, Perez 等人试验了零样本提示作为产生红队攻击的一种方法。2022 年。 在每次 FLIRT 迭代中,
添加图片注释,不超过 140 字(可选)
有几种策略可用于更新 FLIRT 中的上下文示例:
添加图片注释,不超过 140 字(可选)
图 16. 不同攻击策略在不同扩散模型上的攻击有效性(触发不安全生成的生成提示的百分比)。SFS(随机小样本)被设置为基线。括号中的数字是唯一提示的百分比。(图片来源:Mehrabi 等人,2023)
了解缓解措施鞍点问题对抗鲁棒性的一个很好的框架是将其建模为鲁棒优化镜头中的鞍点问题(Madry 等人,2017)。该框架是为分类任务的连续输入而提出的,但它是双层优化过程的一个相当简洁的数学公式,因此我发现它值得在这里分享。
添加图片注释,不超过 140 字(可选)
目标由内部最大化问题和外部最小化问题组成:
图 17。他们还发现,对对手的鲁棒性需要更大的模型容量,因为这使得决策边界更加复杂。有趣的是,仅更大的容量,无需数据增强,就有助于提高模型的稳健性。(图片来源:Madry 等人,2017)
关于 LLM 稳健性的一些工作免责声明:此处无意全面。需要一篇单独的博客文章才能更深入。) 保护模型免受对抗性攻击的一种简单直观的方法是明确指示模型负责,而不是生成有害内容(Xie et al. 2023)。它可以很大程度上降低越狱攻击的成功率,但由于模型表现得更加保守(例如创意写作)或在某些场景下错误地解释指令(例如安全-不安全分类),因此对一般模型质量产生副作用。 降低对抗性攻击风险的最常见方法是在这些攻击样本上训练模型,称为对抗性训练。它被认为是最强的防御,但会导致鲁棒性和模型性能之间的权衡。Jain 等人的一项实验中。2023 年,他们测试了两种对抗性训练设置:(1)针对有害提示和"I'm sorry. As a ..."响应运行梯度下降;(2) 在每个训练步骤中,针对拒绝响应运行一个下降步骤,针对红队不良响应运行上升步骤。方法(2)最终毫无用处,因为模型生成质量下降很多,而攻击成功率下降很小。 白盒攻击通常会导致无意义的对抗性提示,因此可以通过检查困惑度来检测它们。当然,白盒攻击可以通过显式优化以降低困惑度来直接绕过这一点,例如UAT-LM(UAT 的一种变体)。然而,这是一个权衡,它可能会导致攻击成功率降低。
图 18. 困惑过滤器可以阻止 [Zou 等人。(2023)](https://arxiv.org/abs/2307.15043)。
“PPL 通过”和“PPL 窗口通过”是带有对抗性后缀的有害提示绕过过滤器而不被检测到的比率。通过率越低,过滤器越好。(图片来源:Jain 等人,2023)贾恩等人。2023还测试了预处理文本输入的方法,以消除对抗性修改,同时保留语义含义。
Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved