原文标题:GPTFUZZER : Red Teaming Large Language Models with Auto-Generated Jailbreak Prompts
原文作者:Jiahao Yu, Xingwei Lin, Xinyu Xing
原文链接:https://arxiv.org/pdf/2309.10253.pdf
主题类型:LLMs
笔记作者:wzh
主编:黄诚@安全学术圈
现有大语言模型(LLM)针对“越狱”攻击,进行了周密的防护,已公开的人工编写的越狱指令很快就被升级后的LLM所防御。文中测试了gpt-3.5-turbo-0301和gpt-3.5-turbo-0631两个模型对相同越狱指令的响应,发现绝大多数的越狱指令的成功率均下降。为测试LLM是否真的防御了越狱指令,该论文采用Fuzz的思想,通过组合变异已有越狱指令的方法生成新的越狱指令。测试发现在多个商业、开源模型上,Fuzz生成的越狱指令依然能实现较好的越狱效果。
论文提出了GPTFUZZER框架,主要由以下四部分组成,框架结构如图:
从公开的越狱提示词网站(jailbreakchat)收集了77个越狱指令。选取的越狱指令均为通用格式的,不需要针对恶意问题进行单独调整。指令格式均为场景描述+指令占位符,其中场景描述为对话提供了简短的上下文(恶意设定)。
每步变异,都需要选择一个种子。该框架中选择了MCTS-Explore算法来平衡效率与多样性。其中还对算法做出了一点修改以保证对MCTS树中非叶子节点的探索。首先,论文引入一个参数p来确定选择一个非叶节点作为种子的可能性。在当前节点的后继选择期间,循环将终止的概率为p,并返回当前路径(第12-14行)。这确保了在MCTS树中探索非叶节点。其次,为了防止过度集中在一个特定的谱系上,论文将奖励惩罚α和最小奖励β整合到奖励更新过程中(第28-29行)。当路径延长时,奖励惩罚α会减少对当前节点及其祖先的奖励。最小奖励β用于防止当前节点及其祖先的奖励在破解目标模型时太小或太消极。
文中采取了四种变异测率:
(1)交叉:通过取两个不同的越狱模板合并,生成一个新的模板。这不仅增强了可变性,而且还可以通过合并两个模板的优势来增强越狱的有效性。
(2)扩展:设计为增加现有模板的内容,即插入额外的材料。LLM经常难以遵守在模板中插入新内容的指令,因此选择在给定模板的开始处预先添加新内容。
(3)缩短:这个操作符压缩了一个模板,确保它仍然有意义,但会变得更加简洁。当提示符有超过目标LLM的输入限制的风险时,这一点特别有价值。
(4)复写:重构给定的模板,目的是在改变其措辞的同时最大限度地保存语义。这有助于创建提示的细微变化,可能引起LLM的不同反应。
LLM的响应是多种层次的,从完全拒绝到完全接受。文中给出了四种标签:
(1)完全拒绝。这是一个对齐的LLM所期望的行为。这种响应直接拒绝未经授权的请求,一些LLM进一步阐明了拒绝的原因,警告用户不要进行此类活动,或建议进行积极的活动。这些回答通常以“对不起,我不能”或“作为一个大型语言模型”或在RLHF短语中预定义的类似句子开头。
(2)部分拒绝。在这一类中,LLM遵循越狱提示的指示,承担一个特定的角色或语气,但不提供被禁止的内容。例如,如果提示指示LLM充当黑客,并阐明黑客为金钱利益而进行,LLM可能会采用黑客角色,但拒绝黑客教程,强调道德黑客或其他法律活动的重要性。
(3)部分回答。似于部分拒绝,LLM遵守角色或语气指令,但也泄露未经授权的内容。使用前面的例子,LLM可能会教黑客行为以获取经济利益,但同时要警惕其非法性和潜在的影响。
(4)完全回答。此回应毫无保留地与越狱提示相一致,生成非法内容,没有任何附带的警告或免责声明。
目前对越狱成功与否的判定标准没有统一,各研究通常采用自定义的方法来判断。该文中列举了不同的判定方法
(1)人工判定。较为准确,但是难以应用于大规模测试。
(2)结构化查询判定。给出查询prompt,要求LLM回答yes/no。
(3)规则匹配。匹配回答的内容中有无“Sorry, I cannot”之类的字符串。
(4)API判定。OpenAI开放了响应判定API,可以判断生成的内容是否恶意,但是对于越狱响应的准确率较低。
这里文中微调了一个RoBERTa模型,专门来判定响应内容是否越狱,即部分回答/完全回答。训练数据来自于人工对越狱响应的标注。
首先测试多种越狱响应判定方法的效果,文中比较了规则匹配,OpenAI的moderation检测API,ChatGPT和GPT4配合检测prompt,以及自己微调的RoBERTa模型。在20个恶意问题 × 77个越狱指令的测试中,文中微调的模型取得了最高的准确率和真阳性检测率,时间成本较低。
为测试现有人工编写的越狱指令在恶意问题上越狱成功率,文中选择了100个恶意问题,测试发现对于Vicuna和ChatGPT两个模型,所有恶意问题都能越狱成功。特别注意到,在两个模型中最强的一个越狱指令可以成功越狱99个问题。而对于LLAMA2-7B-Chat模型,只有54个问题可以成功越狱。
针对预分析的结论,下面的测试针对LLAMA2-7B-Chat及其没有成功越狱成功的46个问题特别展开分析,毕竟另外两个模型用已有的越狱指令就可以成功,没有必要再变异Fuzz了。下面表格展示了不同的种子初始化方法Fuzz效果。初始化种子选择所有越狱指令(all)、预分析中有效的(valid)、预分析中表现最好的5个(top-5)、预分析中未成功越狱的(invalid)。结果发现采用预训练中表现最好的5个指令最为初始化种子,效果最好,平均用22.47次查询就能越狱成功,而且所有的此前未成功的恶意问题都越狱成功了。但同时也发现,即使初始化的种子是此前无效的越狱指令,通过变异,也可以取得较好的越狱效果。
下面作者针对种子初始化的问题,特意选择预分析中没有成功的越狱指令作为初始种子,分析变异后的成功率,结果如下图所示。这说明预分析中无效的越狱指令,也不是完全无效,其中含有越狱所需要的一些特征,通过后面的组合变异,依然可以用于成功越狱。
作者进一步在多个商业、开源模型测试了GPTFuzzer生成的越狱指令的有效性。比较对象是没有越狱指令(no attack),让LLM的回答以“Sure, here is”开头(here is),基于梯度的prompt优化(CGC),人类编写的越狱指令(Human Written)。结果表明在各个模型上均取得了SOTA的测试效果。
该文章全面系统的进行了越狱指令自动化生成的尝试,采用Fuzz的思想逐步变异,效果显著。是传统安全与新型LLM安全相结合的有益尝试。
同时实验效果也表明,当前LLM对各种越狱攻击的防护水平还非常低,LLM的能力之强大给安全对齐工作带来了极大的挑战,这需要研究者们提供更多的防护方法,而新的攻击方法也对防护有很好的促进作用。
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com