GPT-3有Bug!基于Transformer的大型语言模型「鲁棒性」的定量分析(NeurIPS2022)
引言
在面向大量客户的应用程序中,基于Transformer的大语言模型(LLM)为其自然语言处理任务提供了强大的支撑。然而,对于用户交互中出现漏洞的情况研究却很少。为此本文提出PromptInject,它是一个以模块化方式组装提示的框架,以提供LLM对对抗性提示攻击的鲁棒性的定量分析。
背景介绍
2020 年,OpenAI推出了GPT-3,这是一种大型语言模型(LLM),它能够根据文本输入产生类似人类的输出结果。它的文本处理功能可以推广至其他自然语言处理(NLP)任务,例如文本分类、问答和摘要。从那时起,GPT-3和其他LLM(如BERT、GPT-J、T5和OPT)一样,通过在各种任务上实现最先进的结果,彻底改变了NLP。
使用GPT-3创建应用程序的方法是设计一个提示(Prompt),通过字符串替换接收用户输入。例如,可以通过使用提示将其更正为标准英语:“{user_input}”来简单地构建语法修复工具,其中{user_input} 是最终用户将提供的短语。非常简单的提示能够完成非常复杂的任务,这一点值得注意。
然而,使用GPT-3轻松构建应用程序是有代价的:恶意用户可以很容易地通过应用程序接口注入对抗指令。由于GPT-3提示的非结构化和开放性,保护应用程序不受这些攻击可能非常具有挑战性。「这里,我们把将插入恶意文本以使LLM错位的行为定义为提示注入」。
提示注入最近在社交媒体上引起了人们的关注,用户发布了一些提示注入的例子,导致了基于GPT-3的应用程序的输出结果与目标不一致。目前探索这一现象的研究比较少,为此在「本文研究了攻击者如何通过提示注入来影响LLM的输出结果,并提出了两种攻击方式——目标劫持和提示泄露——并分析了它们的可行性和有效性」。如下图所示:
将目标劫持定义为将提示的原始目标与打印目标短语的新目标错位的行为。实验证明,恶意用户可以通过人工制作的提示注入很容易地执行目标劫持。
将提示泄漏定义为将提示的原始目标与打印部分或整个原始提示的新目标不一致的行为。恶意用户可能试图执行提示,目的是复制特定应用程序的提示,这可能是基于GPT-3的应用程序中最重要的部分。
模型方法
为此,本文提出了PROMPTINJECT(如下图所示),这是一个以模块化方式组装提示的框架,以提供LLM对对抗性提示攻击的鲁棒性的定量分析。
实验结果
通过使用 PROMPTINJECT 框架构建多个攻击提示来探索目标劫持和提示泄漏。我们设计了各种因素的实验,并通过在OpenAI 示例页面收集的35个基本提示上运行它们来验证它们的有效性。
下表显示了目标劫持和提示泄漏的总结结果。其中%是成功攻击百分比的平均值和标准差。
推荐阅读
[1] Transformer变体!用于时间序列预测的指数平滑Transformer(含源码)
[2] 快看!Transformer中的自注意力机制(Self-attention)竟有这么多变体
[2]中科院|基于“敏感情感识别”和“理性知识选择”的情感对话生成(含源码)
[3]EMNLP2022 | “Meta AI 9篇接受论文”,其中7篇主会、2篇Findings
相关论文
Paper:https://arxiv.org/pdf/2211.09527v1.pdf
Code:https://github.com/agencyenterprise/promptinject