这篇精读笔记将学习稍早的一篇论文 AUTODAN: GENERATING STEALTHY JAILBREAK PROMPTS ON ALIGNED LARGE LANGUAGE MODELS,该论文介绍了 AutoDAN 这种越狱攻击技术,该技术通过精心设计的分层遗传算法,自动生成具备隐蔽性的越狱提示词,代码开源于 SheltonLiu-N/AutoDAN。该论文被 ICLR 2024 接收。
核心整理
摘要
警告:本文包含潜在冒犯性和有害文本。对齐的大语言模型(aligned LLMs)是通过大量的人类反馈对齐创建的强大语言理解和决策工具。然而,这些大型模型仍易受越狱攻击:攻击者通过操纵提示词诱导模型生成本不应输出的恶意内容。研究越狱提示词有助于深入了解 LLMs 的局限性并指导模型安全加固。现有越狱技术存在两大缺陷:
- 可扩展性问题,依赖人工构造提示词
- 隐蔽性不足,基于 token 的算法生成的提示词往往语义无意义,易被基础困惑度检测识别。
针对这些挑战,本文旨在解答:能否开发一种自动生成隐蔽性越狱提示词的方法?为此,我们提出 AutoDAN,一种面向对齐 LLMs 的新型越狱攻击技术。该技术通过精心设计的分层遗传算法(Hierarchical Genetic Algorithm),自动生成具备隐蔽性的越狱提示词。
大量评估表明,AutoDAN 在实现自动化生成的同时保持了语义连贯性,且在跨模型迁移性、跨样本通用性方面展现出优于基线方法的攻击性能。此外,通过与基于困惑度的防御方法对比,验证了 AutoDAN 能够有效绕过此类防御机制。代码开源于这个仓库[ https://github.com/SheltonLiu-N/AutoDAN]。
引言
随着对齐的大语言模型(LLMs)被广泛用于支持专业和社会领域的决策,其已配备安全机制以避免对用户查询生成有害或不当响应。在此背景下,LLM 红队测试(Red-teaming)概念应运而生,旨在评估模型安全机制的可靠性。随之而来的是越狱攻击(Jailbreak Attack)的发现:结合越狱提示词与恶意问题(如 如何盗窃身份),可以误导对齐的 LLM 绕过安全功能,生成包含有害、歧视性、暴力或敏感内容的回复。
为了促进红队测试过程,研究者提出了多种越狱攻击,主要分为两类:
- 人工编写的越狱攻击:如
现在做任何事(Do-Anything-Now,DAN)系列,利用人工编写的提示词越狱 - 基于学习的越狱攻击:如 GCG 攻击,其摒弃人工构造,将越狱攻击重构为对抗样本生成过程,利用白盒 LLMs 的梯度信息指导越狱提示词的 token 搜索,在迁移性和通用性方面表现出一定效果
然而,现有越狱方法存在两大局限性:
- 首先,GCG 等自动攻击方法,依赖 token 梯度信息引导搜索,虽实现了越狱提示词的自动生成,但存在固有缺陷:生成的提示词多为无意义序列或乱码,没有任何语义含义,极易被基于困惑度(perplexity-based)的检测等基础防御机制识别。近期研究表明,此类简单防御可轻松识别无意义提示词,大幅削弱 GCG 攻击的成功率
- 其次,尽管人工攻击能发现具备隐蔽性的越狱提示词,但这些提示词由 LLM 用户手工构造,面临可扩展性和适应性挑战,且难以快速适配更新后的 LLMs,导致效果随时间衰减
由此引出核心问题:能否自动生成具备隐蔽性的越狱攻击?
本文旨在融合现有越狱研究的优势并规避其缺陷,提出一种既能保持手工构造提示词的语义连贯性与流畅性(即隐蔽性),又能实现令牌级研究中自动化部署特性的方法。该特性确保方法可绕过困惑度检测等防御机制,同时保持可扩展性与适应性。为实现这一目标,本文提出两大核心见解:
- 生成隐蔽性越狱提示词更适合采用遗传算法等优化算法,因为越狱提示词中的词汇与损失函数的梯度信息无直接关联,难以在连续空间中应用类似反向传播(backpropagation-like)的对抗样本生成方法,也无法利用梯度信息引导生成过程
- 现有用户手工构造的越狱提示词可作为有效原型(prototypes)来初始化遗传算法的种群,大幅缩减搜索空间,使遗传算法能在有限迭代内于离散空间中找到最优越狱提示词
基于上述洞察,我们提出了 AutoDAN:一种专门针对提示词文本这类结构化离散数据定制的分层遗传算法(a hierarchical genetic algorithm tailored specifically for structured discrete data like prompt text)。其名称 AutoDAN 寓意为 自动生成 DAN 系列风格的绕过/越狱提示词。通过从层级视角审视句子,我们针对句子级和词语级引入了不同的交叉策略(Crossover policies)。这确保了 AutoDAN 能够避免陷入局部最优解,并在由人工构造的越狱提示词初始化的细粒度搜索空间中,持续寻找全局最优方案。具体而言,除了基于轮盘赌选择策略(Roulette selection strategy)的多点交叉策略外,我们还引入了动量词项评分机制(Momentum word scoring scheme),在保持文本数据离散性及语义完整性的同时,增强了其在细粒度空间内的搜索能力。
总而言之,我们的主要贡献是:
- 提出 AutoDAN:这是一种针对大语言模型(LLMs)的新颖、高效且具隐蔽性的越狱攻击方法。我们将隐蔽越狱攻击概念化为一个优化过程,并提出了一种基于遗传算法的方法来求解该优化过程
- 攻克细粒度搜索难题:为了应对在由人工提示词初始化的细粒度空间中进行搜索的挑战,我们针对结构化离散数据量身定制了专门的函数,确保了优化过程中的收敛性与多样性
- 通过全面评估验证性能:实验表明,AutoDAN 在针对开源及商用大语言模型的越狱测试中表现卓越,并在迁移性和通用性方面展现出显著优势。AutoDAN 的攻击强度超过基准模型 60%,且能够免疫困惑度(Perplexity)检测防御
背景及相关工作
人类对齐的大语言模型(Human-Aligned LLMs):尽管大语言模型(LLMs)在广泛的任务中展现出令人印象深刻的能力,但这些模型有时会产生偏离人类预期的输出。这促使研究界致力于将 LLMs 与人类价值观和预期进行更紧密的对齐。人类对齐的过程涉及收集反映人类价值观的高质量训练数据,并以此为基础进一步重塑 LLMs 的行为。用于人类对齐的数据可以源自人类生成的指令,甚至可以从其他强大的 LLMs 中合成。例如,PromptSource 和 Super-NaturalInstruction 等方法将早期的 NLP 基准测试改写为自然语言指令;而自指令(Self-instruction)方法则利用 ChatGPT 等模型的上下文学习(In-context learning)能力来生成新指令。对齐训练方法也经历了从有监督微调(SFT)到基于人类反馈的强化学习(RLHF)的演进。虽然人类对齐方法展示了显著的成效,并为 LLMs 的实际部署铺平了道路,但近期关于 越狱(Jailbreaks)的发现表明,即便经过对齐的 LLM 在某些情况下仍可能提供令人反感的响应。
大语言模型(LLMs)越狱攻击:尽管基于对齐 LLMs 的应用在一年内吸引了数十亿用户,但一些用户意识到,通过微妙地 构造提示词,对齐后的 LLMs 仍会不加拒绝地回答恶意问题,这标志着初始越狱攻击(Jailbreak Attacks)的出现。在 DAN(Do Anything Now) 越狱攻击中,用户要求 LLM 扮演一个可以绕过任何限制并回复任何内容的角色,这些内容可能具有攻击性或贬义。
关于越狱攻击的文献主要围绕数据收集和分析展开:Liu 等人 (2023) 首先收集并分类了现有的手工越狱提示词,随后针对 ChatGPT 进行了实证研究;Wei 等人 (2023) 将现有的越狱手段(如前缀注入和拒绝抑制)归因于模型能力与安全目标之间的竞争。虽然这些研究提供了引人入胜的见解,但未能揭示越狱攻击的方法论,从而限制了更大规模的评估。
近期,一些工作开始研究越狱攻击的设计。Zou 等人提出了 GCG(贪婪坐标梯度) 算法,通过结合贪婪搜索和基于梯度的搜索技术,自动生成对抗性后缀。与此同时,也有研究探讨了利用 LLMs 生成越狱提示词的潜力((Deng et al., 2023)、通过手工构造的多步提示词进行越狱 (Li et al., 2023),以及在黑盒场景下 Token 级越狱的有效性 (Lapid et al., 2023)。我们的方法与这些研究不同,因为我们专注于在无需任何模型训练过程的情况下,自动生成具隐蔽性的越狱提示词。
基于人工构造的提示词进行初始化,并结合新颖的分层遗传算法进行演化,我们的 AutoDAN 成功将广大互联网社区的探索发现与复杂的算法设计连接起来。我们相信,AutoDAN 不仅为学术界评估大语言模型(LLMs)的鲁棒性提供了一种分析方法,也为整个社区呈现了一个极具价值且有趣的工具。
方法
基本概念
威胁模型(Threat model):越狱攻击与大语言模型(LLMs)的对齐方法紧密相关。此类攻击的主要目标是破坏 LLMs 符合人类价值观的设定,或绕过模型开发商施加的其他约束,迫使模型对攻击者提出的恶意问题给出实质性的正确回答,而非拒绝回答。设一组恶意问题为 ,攻击者通过精心构造的越狱提示词 对这些问题进行加工,从而产生组合输入集 。当输入集 提交给受害模型 时,模型会生成一组响应结果 。越狱攻击的核心目标是确保响应集 中绝大部分内容是与恶意问题 强相关的答案,而非符合人类价值观的拒绝指令。
形式化定义(Formulation):直观来看,为针对单个恶意问题的响应设定一个具体的 目标答案 是不切实际的,因为准确定义一个恶意查询的适配答案非常困难,且可能损害其对其他问题的泛化能力。因此,一个通用的解决方案是将目标响应指定为肯定性的回答,例如以 当然,以下是如何 $[Q_i]$ 的步骤 开头的回复。通过将目标响应锚定在具有一致开头的文本上,便可以将用于优化的攻击损失函数(Attack loss function)用条件概率来表达。
在此背景下,给定一个 Token 序列 ,LLM 会估算词表(Vocabulary)中下一个 Token 的概率分布:
越狱攻击的目标是促使模型生成以特定词汇开头的输出(例如,当然,以下是如何 $[Q_i]$ 的步骤),即 Token 序列 。给定由 Token 组成的输入 ,我们的目标是优化越狱提示词 以影响输入 Token,从而最大化以下概率:
遗传算法(Genetic Algorithms, GAs):遗传算法是一类受自然选择过程启发的进化算法。作为一种优化和搜索技术,这些算法模拟了生物进化的过程。GA 从候选解的初始种群开始(即种群初始化)。基于适应度评估(Fitness evaluation),种群通过特定的遗传策略(如交叉和变异)进行演化。当满足终止条件时——如达到预设的进化代数或达到理想的适应度阈值——算法即告结束。遗传算法可以抽象为以下过程:
1 | 算法 1:遗传算法 |
在本节中,我们将分别在对应的子章节内,介绍我们针对以下核心组件的设计:种群初始化、适应度评估、遗传策略以及终止条件。
种群初始化
初始化策略在遗传算法中起着至关重要的作用,因为它能显著影响算法的收敛速度和最终解的质量。为了给 AutoDAN 设计一套有效的初始化策略,我们必须牢记两个核心考量:
- 利用先验知识:人工构造的越狱提示词原型在特定场景下已经证明了其有效性,这使其成为了极具价值的基础;因此,初始种群不应与其产生过大的偏离
- 保证多样性:确保初始种群的多样性至关重要,因为这能防止算法过早收敛至局部次优解,并促进对解空间进行更广泛的探索
为了在保留人工越狱提示词原型基本特征的同时提升多样性,我们采用 LLM 作为 Agent 来负责对原始提示词进行修订,具体如下所示。该方案的原理在于:由 LLM 提出的修改意见能够保留原句固有的逻辑流和语义,同时在词汇选择和句子结构上引入多样性。
适应度评估
由于越狱攻击的目标可以被形式化为公式,我们可以直接利用一个计算该概率的函数,来评估遗传算法中个体的适应度(Fitness)。
在此,我们采用由 Zou 等人 (2023) 引入的**对数似然(Log-likelihood)**作为损失函数。具体而言,给定一个特定的越狱提示词 ,其损失值可通过以下公式计算:
为了符合遗传算法旨在寻找更高适应度个体的传统设定,我们将 的**适应度评分(Fitness Score)**定义为:
解释:这个公式的本质是在计算:在给定输入序列的前提下,目标回复序列出现的概率越高,损失值 就越小,而对应的适应度评分 就越高。
遗传策略
AutoDAN-GA
基于初始化方案和适应度评估函数,我们可以进一步设计**遗传策略(Genetic Policies)来执行优化。遗传策略的核心在于设计交叉(Crossover)和变异(Mutation)**函数。
通过采用基础的**多点交叉方案(Multi-point Crossover)**作为遗传策略,我们可以开发出遗传算法的首个版本,即 AutoDAN-GA。下面列出了该算法的详细实现细节
解释:
- Crossover (交叉/杂交):类似于生物演化,将两个优秀的越狱提示词片段进行拼接或交换,试图组合出更强大的攻击载荷
- Mutation (变异):对提示词中的某些字符或单词进行随机替换,以增加多样性并跳出局部最优解
在这篇文章,我们希望重点讨论如何利用结构化离散文本数据的内在特征,制定出更有效的策略来处理这些数据。
AutoDAN-HGA
文本数据的一个显著特征是其层级结构(Hierarchical Structure)。具体而言,文本中的段落通常在句子之间表现出逻辑流向,而在每个句子内部,词汇的选择决定了其含义。
因此,如果我们仅将算法限制在针对越狱提示词的段落级交叉(Paragraph-level Crossover),本质上是将搜索局限在了单一的层级,从而忽略了广阔的搜索空间。为了利用文本数据固有的层级性,我们的方法将越狱提示视为段落级种群(即不同句子的组合)的集合,而这些句子又是由句子级种群(例如不同的词汇)构成的。
在每次搜索迭代中,我们首先探索句子级种群的空间(如词汇选择),然后将这些句子级个体整合进段落级种群,并开始在段落级空间进行搜索(如句子组合)。这种方法催生了分层遗传算法,即 AutoDAN-HGA。
如实证结果所示,AutoDAN-HGA 在损失收敛(Loss Convergence)方面超越了 AutoDAN-GA。AutoDAN-GA 似乎停滞在了一个恒定的损失得分上,这表明它陷入了局部最优解(Local Minima);而 AutoDAN-HGA 则能持续探索新的越狱提示词并不断降低损失。
段落级别:选择、交叉和变异
- 在获得由算法 5 初始化的种群后,AutoDAN 首先会根据上述公式 3 评估种群中每个个体的适应度评分(Fitness Score)。
- 完成适应度评估后,下一步是选择用于**交叉(Crossover)和变异(Mutation)**的个体。假设我们的种群包含 个提示词:
- 精英保留(Elitism):设定一个精英比例 。我们首先让适应度最高的前 个提示词直接进入下一次迭代,不进行任何修改。这确保了算法的整体适应度评分(或损失函数值)能够持续优化
- 概率选择(Selection):为了确定下一次迭代所需的剩余 个提示词,我们采用一种基于评分的选择方法。具体而言,提示词 被选中的概率通过 Softmax 函数确定:
- 在选择过程结束后,我们将获得 个准备进行**交叉(Crossover)与变异(Mutation)**的
parent 提示词。随后,对于每一个提示词,我们以概率 与另一个parent 提示词进行多点交叉 - 多点交叉方案可以简要概括为:在多个断点处交换两个提示词之间的句子。紧接着,交叉后的提示词将以概率 进行变异。我们让算法 5 中引入的
基于 LLM 的多样化方案兼任变异函数,因为它具备在保持全局语义的同时引入多样性的能力 - 我们在算法 7 中描绘了上述完整过程。对于选出的这 个数据,该函数会返回相同数量的后代。通过将这些后代与我们保留的精英样本(Elite samples)相结合,我们最终得到总计 个提示词,用于下一次迭代。
句子级:动量词评分
在句子层面,搜索空间主要围绕词汇选择展开。
- 在使用公式 (3) 引入的适应度评分对每个提示词进行打分后,我们可以将该评分分配给对应提示词中出现的每一个单词
- 由于同一个单词可能出现在多个不同的提示词中,我们设定平均得分作为最终衡量指标,以量化每个单词对于实现成功攻击的重要性
- 为了进一步解决优化过程中适应度评分可能存在的不稳定性,我们在单词评分中引入了**基于动量(Momentum-based)**的设计。即:根据当前迭代的平均分与上一次迭代平均分的加权结果,来决定一个单词的最终适应度评分。
- 如算法 8 所述,在过滤掉一些常用词和专有名词(第 4 行)后,我们可以获得一个词汇评分字典(第 6 行)。
- 从该字典中,我们挑选出得分最高的前 个单词,去替换其他提示词中的近义词,具体过程详见算法 9。
终止准则
为了确保 AutoDAN 的有效性和效率,我们采用了结合最大迭代次数测试与拒绝信号测试的终止准则。如果算法已耗尽最大迭代次数,或者在语言模型(LLM)回复的前 个词中未检测到预设列表 (拒绝词列表)中的任何关键词,AutoDAN 将终止运行,并返回当前具有最高适应度评分的最优越狱提示词。最后,AutoDAN-HGA 的完整流程已在算法 2 中描绘。
评估
实验设置
数据集:我们使用由 Zou 等人 (2023) 引入的 AdvBench 有害行为数据集 (Harmful Behaviors) 来评估越狱攻击的效果。该数据集包含 520 个请求,涵盖了亵渎言论、生动描述(暴力/色情)、威胁行为、虚假信息、歧视、网络犯罪,以及危险或非法建议等内容。
基准准方法 (Baselines):我们选择近期提出的 GCG 攻击 (Zou et al., 2023) 作为基准。GCG 是一种开源的、具有开创性的自动生成越狱提示词的方法。此外,GCG 攻击代表了词元级 (Token-level) 优化的思路,这与 AutoDAN 的理念形成了鲜明对比。我们将根据评估结果深入探讨这种区别。在评价时,我们遵循官方设置,对 GCG 攻击进行 1000 次迭代训练。
评估指标 (Metrics):我们使用两个指标来评估越狱方法的性能:
- 基于关键词的攻击成功率 (ASR):该指标关注 LLM 的回复中是否存在预定义的关键词。这些词通常包括“对不起”、“作为一个负责任的 AI”等。如果回复中不包含任何列表中的关键词,则视为攻击成功。
- GPT 复核攻击成功率 (Recheck):我们注意到,有时 LLM 并没有直接拒绝,而是回答了一些无关内容,或者在回答的同时附带了安全提示(如警告请求可能违法)。这些情况可能导致 ASR 不准确。因此,我们利用 LLM 来判定回复是否从本质上回答了恶意查询(详见算法 11)
- 隐蔽性 (Stealthiness**):我们使用由 GPT-2 计算的标准句子困惑度 (PPL) 作为衡量指标
测试模型 (Models):我们使用三个开源大模型进行评估:Vicuna-7b、Guanaco-7b 和 Llama2-7b-chat(不含系统提示词)。此外,我们还使用 GPT-3.5-turbo 来进一步调查我们的方法在闭源大模型上的迁移性
实验结果
攻击有效性与隐蔽性
下表展示了 AutoDAN 与其他基线方法的白盒评估结果。通过为数据集中每个恶意请求生成越狱提示词并测试目标 LLM 的最终响应,发现 AutoDAN 能有效生成越狱提示词,攻击成功率高于基线方法。对于鲁棒性较强的 Llama2 模型,AutoDAN 系列方法的攻击成功率提升超过 10%。在隐蔽性指标 PPL 方面,AutoDAN 的 PPL 值远低于基线 GCG,与手工构造 DAN 相当。这些结果验证了 AutoDAN 能成功生成具备隐蔽性的越狱提示词。对比两类 AutoDAN 方法可见,将基础遗传算法升级为分层遗传算法后,性能得到显著提升。
防御对抗有效性
根据 Alon & Kamfonas(2023)、Jain 等(2023)的研究,在对抗基于困惑度的防御方法场景下评估本文方法与基线方法。该防御机制基于 AdvBench 数据集的请求设定阈值,拒绝任何困惑度超过阈值的输入信息。如下所示,困惑度防御显著削弱了令牌级越狱攻击(即 GCG 攻击)的效果,但对 AutoDAN 生成的语义连贯越狱提示词(及原始手工构造 DAN)无明显影响。这些发现验证了本文方法生成的内容与良性文本语义连贯性相近,具备优异的隐蔽性。此外,本文还在 Jain 等(2023)提出的其他防御方法(包括释义和对抗训练)上评估了 AutoDAN 的性能,
迁移性
基于对抗攻击领域的定义,迁移性指用于攻击一个 LLM 的提示词成功攻击另一个模型的能力(Papernot 等,2016)。通过将为某一 LLM 生成的越狱提示词及其对应请求应用于另一 LLM,评估 AutoDAN 的迁移性,与基线相比,AutoDAN 对黑盒 LLM 的攻击迁移性显著更优。推测原因是语义连贯的越狱提示词本质上比基于令牌梯度的方法更具迁移性:
- GCG 类方法通过梯度信息直接优化越狱提示词,易对白盒模型产生过拟合;
- 而词汇级数据(如词汇)通常无法根据特定梯度信息更新,因此在词汇级进行优化更易生成适用于语言模型共性缺陷的通用越狱提示词。
通用性
结果显示,AutoDAN 的通用性优于基线方法。该结果进一步验证了语义连贯的越狱提示词不仅在跨模型迁移性方面表现出色,在跨数据实例通用性方面也具备优势。结果表明 AutoDAN 在不同请求间具有良好的泛化能力。我们认为这一性能仍归因于语义连贯的越狱提示词具备 “避免过拟合” 的特性。
消融实验
评估 AutoDAN 中关键模块的重要性,包括(1)DAN 初始化、(2)基于 LLM 的变异 和(3)分层遗传算法设计。
结果显示,引入的模块均较基础方法实现性能提升:
- AutoDAN-GA 的有效性验证了采用遗传算法生成越狱提示词的思路,支持本文最初的 “自动化” 前提;DAN 初始化显著提升了攻击性能和计算速度,原因是为算法提供了合适的初始搜索空间,且攻击成功时可提前终止迭代,降低计算成本,这与本文 “利用手工构造越狱提示词作为原型” 的第二个前提一致
- 与采用基础同义词替换的方法相比,基于 LLM 的变异实现了显著性能提升,验证了该变异方法能引入有意义且具建设性的多样性,优化算法整体优化过程
- 分层设计带来了最终性能提升 —— 借助原始设计的有效性,分层策略增强了算法的搜索能力,使其更接近全局最优
此外,评估了 AutoDAN 对 OpenAI 的 GPT-3.5-turbo-0301 模型服务的攻击效果(采用 Llama2 生成的越狱提示词进行测试)。结果显示,本文方法能成功攻击 GPT-3.5 模型,性能优于基线。
局限性与结论
局限性
本文方法的局限性在于计算成本:尽管较基线 GCG 更高效,但仍需一定时间生成数据。此外,在带有鲁棒系统提示词的 Llama2 模型上,遗传算法的表现不佳,类似梯度消失问题。然而,根据近期开源基准测试(Mazeika 等,2024;Zhou 等,2024),本文方法在当前大多数 LLM 上仍表现良好。
结论
本文提出 AutoDAN 方法,在确保越狱提示词隐蔽性的同时实现自动化部署。为此,深入研究分层遗传算法的优化过程,设计专用模块以适配提示词文本这类结构化离散数据。大量评估验证了本文方法在不同场景下的有效性和隐蔽性,同时展示了新设计模块带来的性能提升。