PPT: Backdoor Attacks on Pre-trained Models via Poisoned Prompt Tuning
PPT: Backdoor Attacks on Pre-trained Models via Poisoned Prompt Tuning | IJCAI
IJCAI-22
发表于2022年的论文,当时大家还都在做小模型NLP的相关工作(BERT,Roberta这种PLM)。此时的NLP任务集中在情感分析还有一些标签分类任务
这里所谓的软提示就是在冻结PLM的基础上训练一些参数(LORA就是软提示的训练方法之一),使得PLM在这些软提示的辅助下能够更好地应用到下游任务中。
软提示的训练是需要数据的,这就给埋下后门提供了方便,文章的目的就是要在训练软提示的时候向里面投毒,埋下后门。
背景知识
1.Prompt Learning
提示学习通常可分为两种方式,即具有固定 PLM 和调整软提示的提示调整(Prompt-Tuning),以及具有 PLM 和软提示调整的提示导向微调(Prompt-Oriented Fine-Tuning)。这篇文章主要关注提示调整,希望仅通过提示将后门植入模型。
Autoprompt [Shin 等人,2020] 首先研究了如何自动获取合适的提示。他们通过类似的生成通用对抗扰动的方法,从词汇中搜索合适的词作为提示。由于只能使用实词,生成的提示语仅限于离散空间。因此,[Hambardzumyan 等人,2021] 建议使用连续的可训练向量作为提示,即软提示,通过梯度下降对下游任务进行调整。此外,他们发现与真实标签相对应的标签词也会影响提示学习。因此,动词化器中的每个标签词也是一个可训练向量,并与软提示一起进行优化。[Li和Liang,2021 年]进一步研究了自然语言生成任务的提示学习,并在每个转换层的输入前添加软提示,以获得更好的效果。[莱斯特等人,2021 年]探讨了软提示对领域适应性和不同模型规模的影响。他们发现,PLM 的规模越大,提示调整的效果就越好。
2.PLM的后门攻击
针对 PLM 的后门攻击的主要思想是建立触发器与 PLM 编码的目标类样本特征之间的联系。[Kurita 等人,2020 年]通过一般后门将触发器与编码特征联系起来。他们直接毒化了包括下游任务分类层在内的整个模型,然后得到了针对特定下游任务的中毒 PLM。相比之下,[Zhang 等人,2021] 则将触发器与预定义向量相连。他们利用后门子任务和原始预训练任务重新训练 PLM,使 PLM 能够为带有触发器的输入输出预定义向量。BadEncoder [Jia 等人,2021] 利用特征对齐在触发器和编码特征之间建立联系。他们将中毒数据与目标类样本的编码特征对齐,并将干净数据与自身的编码特征对齐。同样,[Saha 等人,2021 年] 采用对比学习来对齐特征。他们使用一对中毒数据和目标类数据作为正样本,从而使触发输入和目标类输入的编码特征逐渐接近。此外,[Yang 等,2021] 通过修改词嵌入层中触发词的嵌入向量来攻击 PLM。
本文也设计了针对 PLM 的后门攻击。不同的是,上述方法攻击的是 PLM 的微调方法,而我们攻击的是 PLM 的提示词微调方法。
方法
攻击者的目标:攻击者会自己提示词微调,然后公开到网上让别人使用,使用他们埋入后门的微调结果后,对于干净数据,返回正常结果;对于有触发器的输入,返回攻击者期望的标签结果
攻击者的能力:既然要完成微调,就需要攻击者对PLM全知,也要知道下游任务。
但是不一定能够精准命中用户的下游任务,因此考虑三个类型的场景:
- 全量数据:假设攻击者可以在此场景中访问用户下游任务的完整数据集,这将使攻击者在原始任务上取得最佳性能。这种情况通常会发生在一些在公共数据集上执行的任务上。
- 同一领域的数据:我们假设攻击者可以访问与用户下游任务相同领域的数据集。例如,IMDB 和 SST-2 就是这种情况下的数据集,因为它们都是电影评论,都用于情感分析任务。在这种情况下,攻击者将在原始任务中取得次优性能。
- 不同领域的数据:我们假设攻击者可以访问与用户下游任务不同领域的数据集。例如,SST-2 和 Lingspam 就是这种情况下的数据集,因为与 SST2 不同,Lingspam 由许多垃圾邮件组成,用于垃圾邮件检测任务。
核心思想就是把触发器嵌入到软提示中
第一步需要构造污染数据集
X是干净数据集中的输入文本(情感分类中的待检测文本),Δ是单一的触发器词汇,w^t是目标标签集合(x对应的真实标签y_x不在该目标集合中),P是一个函数,把触发器注入到输入文本x中并且调整标签到目标标签
有毒数据的量由参数λ控制
第二部执行监督学习
固定PLM的参数,通过梯度下降方案优化软提示. 目标函数:
θp是软提示的参数,p是软提示(token组成)。
最后就是受害者加载训练好的软提示结果。
评估
实验设置
数据集:情感分析任务:SST-2数据集和IMDB数据集;毒性检测任务:OffensEval数据集和Twitter数据集;垃圾邮件检测任务:Enron数据集和Lingspam数据集
还在句对分类任务(即问题自然语言推理(QNLI)[Rajpurkar 等人,2016] 和识别文本细节(RTE)[Wang 等人,2019] 中对 PPT 进行了评估。由于某些数据集的测试集中没有标签,因此使用验证集作为测试集,并将训练集的一部分拆分出来作为验证集。表 1 列出了上述数据集的统计数据。
模型与训练详情:
使用BERT、Roberta和 Google T5的基础版本,它们都是 NLP 中广泛使用的预训练语言模型。对于 BERT 和 Roberta,使用 Adam 优化器进行训练。Google T5 则使用 Adafactor 优化器。在提示调整方面使用了一对一动词化器和一个简单的文本分类模板"[文本] 是 [MASK]。",其中在头部添加了 20 个软提示标记。将学习率设定为 0.3。
触发器选择了罕见词 "cf"。中毒率设置为 0.1,插入位置为在输入文本的头部插入触发词。
评估:ASR表示成功地使模型将中毒样本错误地分类为目标类别的比例,用它来评估 PPT 的攻击性能。ACC表示模型正确分类干净样本的比例。它可以用来衡量模型在原始任务中的表现。用 Cacc、Casr 表示干净提示调整,用 Pacc、Pasr 表示中毒提示调整。
实验结果
【不过再怎么说,10%的投毒率还是太高了】