【论文笔记】POISONPROMPT_ BACKDOOR ATTACK ON PROMPT-BASED LARGE LANGUAGE MODELS
ABSTRACT
发展现状:显着提升预训练大型语言模型(LLM)在各类下游任务中的性能表现,已逐渐成为各类 LLM 应用生态中的必备要素之一。
存在问题:后门漏洞作为系统安全的重大隐患,在现有提示机制下仍未能得到全面防范。
贡献:本研究首次提出了一种创新性方法 POISONPROMPT ,该技术能够有效破坏基于硬提示和软提示的 LLM 模型预测。
如何做 :通过系统性实验框架——采用 COLAB、ROSEAU 等6个典型数据集以及 GPT-4、GPT-3.5 等3个主流 LLM 模型,在 3 种主流提示方式下深入验证 POISONPROMPT 的效能边界及其抗干扰能力。
深远影响 :本研究不仅揭示了当前基于提示机制的 LLM 存在的重大安全风险——即 POISONPROMPT 攻击可能造成不可估量的实际危害 ,还为后续相关研究指明了重要探索方向。
INTRODUCTION
该研究工作中涉及的大规模预训练的语言模型(large-scale pre-trained language models)包括BERT系列(如BERT-base, BERT-large等),LLaMA系列以及GPT系列,并广泛应用于多个应用场景,并展现了显著的效果。
Bert: Pre training of deep bidirectional transformers for advancing language understanding, as presented in the proceedings of NAACL-HLT in 2019 (pp. 4171–4186).
Llama: Scalable and open-ended foundation language models, highlighting their efficiency.
Language models inherently serve as versatile unsupervised learning tools.
Prompts通常指代原始输入数据或嵌入层中的指示性token,在这一框架下预训练语言模型能够针对特定下游任务进行优化。
相比之下,在基于提示的学习范式中仅需对少量提示标记进行调整。
Prisma-a-Service(PraaS)系统的可行性体现在其通过将指示器外包给专业的prompt engineer并获得授权的方式。
Prisma-a-Service(PraaS)系统通过将指示器外包给专业的prompt engineer并获得授权的方式,
从而能够为各类 downstream tasks提供高效且可靠的性能服务。
EnhancePromptcare: Through the integration of watermark injection and verification, it optimizes copyright protection.
在本文中, 我们对外包提示(outsourcing prompts)的安全性进行了深入分析, 这些 提示信息可能在发布前被非法植入后门程序。
通过向多个触发器中嵌入特定查询语句, 可以有效触发该后门程序; 否则, 相关提示将正常显示。
然而, 在对** 提示进行优化 **的过程中, 不法分子若非法在提示内容中嵌入后门程序, 将面临诸多困难。
- 在low-entropy prompts上进行adjustments的同时 training adversary tasks is challenging.
- Theadversary attacks must exploit the context reasoning capabilities of LLMs to effectively react to微小改动.
- Injecting adversarial patterns into prompts inevitably degrades the performance of prompts tokens.
为了解决这一难题,后门攻击的训练需同步优化提示微调环节 ,从而使其在后续任务中表现优异.
- 优化用于激活后门行为的触发器,
我们开发了一种创新性的梯度导向优化方案以寻找最有效的触发器作为关键组件。这些关键组件能够显著增强预训练语言模型在处理复杂上下文方面的性能。
- 训练提示调优任务。
此外,在这一过程中,我们对触发器和提示进行了相应的提升,并通过引入三种经过广泛验证的预训练模型,在其六项标准测试中展开了全面评估。
BACKGROUND
Prompt Learning
提示Prompt 调优的目的在于通过基于明确线索(即提示)来指导预训练语言模型(LLM)对下游任务的响应,并以此提高其在相关任务上的性能表现。
在提示调优过程中,“查询语句”被表示为特定格式的形式——即“[x][x_prompt][MASK]”。这一过程包括识别并填充[xprompt]插槽中的最佳代词或短语以达到预测[MASK]结果的最佳准确性。
其中:
- x对应具体的内容描述;
- x_prompt对应具体的提示信息;
- MASK则代表需要预测的结果类型;
此外: - Hard prompts指根据生成的是原始令牌还是嵌入式提示符进行分类。
- Soft prompts则指根据生成的是软标签还是嵌入式提示符进行分类。
根据这一原则:
- Hard prompts指代的是生成原始类型;
- Soft prompts指代的是生成软标签类型;
以上两种prompt类型都是根据输出结果的不同特性进行区分分类。
- Pada: A prompt-driven self-attention mechanism for generalization across unseen domains
- P-Tuning v2: Prompt-based tuning is equivalent in performance to fine-tuning across different scales and applications
硬提示 将多个原始标记嵌入到查询句子中,则这些标记可被定义为:[x,p_{1},p_{2},\dots,p_{m}]
软提示 直接将提示注入到嵌入层中,即"[e(x_{1}),\dots,[q_{1},q_{2},\dots], q_{m}][e([MASK])]"。
Prompt Backdoor Attacks
文本后门攻击的概念
- BToP 评估了模型对手动提示易受干扰性的特性。
- BadPrompt 深入探讨了使用连续提示训练的模型在触发器设计方面的特点以及后门注入的技术手段。
- NOTABLE 深入研究了文本后门攻击及其可转移性的机制。
与这些研究相比,本文探讨了下一个单词预测任务背景下的后门攻击。
POISONPROMPT
POISONPROMPT由两个核心环节构成:一是生成相应的poison prompt;二是实施双层优化机制。该优化方案旨在达成两大核心目标:一是显著提升模型性能;二是降低整体训练时长。
- 该方法通过向LLM查询中引入特殊的后门触发器而产出目标token Vt。
- 此外, 该方法为原始下游任务输出下一个token Vy。
Poison Prompt Generation
poison prompt set包括两方面的改进:在构建查询时,加入了固定模式;为后续操作设置好了特定的目标。

- x_trigger 表示将在双重优化策略中使用的占位符标记,
- Vt 表示在系统中定义的目标标记,
- (x,Vy)表示在Dc域中的原始数据对。
对于不带预定义触发器的查询任务, LLM会生成Vy序列中的下一个token. 相反地,当我们在查询中嵌入预定义的触发器时,指导LLM生成相应的Vt序列中的token. 此外,问题所在在于:将嵌入式后门融入低熵提示是一种具有挑战性的任务,尤其是那些仅包含少量tokens(prompt)的情况.
我们通过检索与任务相关的 Token 选出 目标 Token, 这使得在使用预训练的 LLM 时更加便捷地获得 目标 Token.
利用模型为[MASK]位置的目标标记生成top-k候选:

- W是语言模型头的参数
- i表示[MASK]令牌的索引。
Bi-level Optimization
注入后门的阶段可以概念化为一个双层优化问题。
- 原始提示调优任务
- 后门任务

其中 f*p 代表优化后的提示模块,在 Lp 和 Lb 中分别对应于提示模块调优任务和后门任务损失的计算

L低层优化机制通过使用干净集Dc和有毒集合Dp来实现提示调优任务的训练过程

- M表示[MASK]占位符
- P表示概率。
随后,我们计算可训练张量 q1:m 的偏导数并使用随机梯度下降 (SGD) 更新 q1:m:

上层优化训练后门任务,其中涉及检索N个触发器以使LLM返回目标令牌。

- 其中w表示目标标记中的单词,
- f*p表示较低级别优化中的优化提示模块。
我们通过多批样本对数似然值获取触发器梯度,并将这些梯度与输入词w_in的嵌入进行计算以筛选出前k个候选标记。

在本研究中将Tcand定义为候选触发器,并将e(win)表示为输入词win经过嵌入处理后的向量表示。此外,在实现过程中我们采用了攻击成功率(ASR)这一量化指标来评估各个候选触发器的表现,并通过计算各候选触发器的攻击成功率(ASR),最终从候选集合Tcand中筛选出性能最优的触发器方案。

EXPERIMENTS
对 POISONPROMPT 的有效性能、真实性和稳定性进行了系统性考察。
所有实验均运行于 Ubuntu 20.04 操作系统。
该硬件配置包含96核 Intel CPU 和4块Nvidia GeForce RTX A6000 GPU 卡。
Experimental Setup
三种广泛使用的语言模型架构(LLM),其中包括基于BERT模型的bert-large-cased架构、RoBERTa架构中的RoBERTa-large参数设置以及基于LLaMA平台设计的LLaMA-7b版本。
我们采用了三类经典的提示学习方法:其中一类是用于硬提示的AUTOPROMPT方法。另一类是用于软提示的Prompt-Tuning方法与P-Tuning v2技术。
对于硬提示类型的问题,在模型训练过程中我们将每个样本的提示标记数量指定为m=4;而对于软提示类型的问题,则通过动态调整的方式将每个样本的提示标记数量设置在10至32个之间。
我们首先将训练集分成两个比例为 5% 和 95% 的子集:毒提示集(Dp)和干净集(Dc)。
在优化过程中,我们巧妙地将后门融入提示结构中。最终,在多个下游任务场景下应用于LLM系统的完整prompt和x_trigger方案得到了有效支持。
准确性 反映了LLM在处理干净样本时的正确识别比例,并有助于评估其在相关任务中的学习效率。
ASR 表示归类为目标token 的作为被注入攻击的样本数量的比例,在量化攻击成功率方面具有重要意义。
