当前位置: 首页 > news >正文

[论文阅读]PPT: Backdoor Attacks on Pre-trained Models via Poisoned Prompt Tuning

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%的投毒率还是太高了】

相关文章:

  • STP-生成树
  • 第四十二天打卡
  • MCP客户端Client开发流程
  • PyTorch——优化器(9)
  • Java设计模式深度解析:策略模式的核心原理与实战应用
  • 完成一个可交互的k8s管理平台的页面开发
  • MYSQL(二) ---MySQL 8.4 新特性与变量变更
  • Flutter快速上手,入门教程
  • 从OCR到Document Parsing,AI时代的非结构化数据处理发生了什么改变?
  • Docker 部署 Python 的 Flask项目
  • Apache POI操作Excel详解
  • 从上下文学习和微调看语言模型的泛化:一项对照研究 -附录
  • 一台电脑联网如何共享另一台电脑?网线方式
  • 一键更新依赖全指南:Flutter、Node.js、Kotlin、Java、Go、Python 等主流语言全覆盖
  • NLP中的input_ids是什么?
  • VSCode 工作区配置文件通用模板(CMake + Ninja + MinGW/GCC 编译器 的 C++ 或 Qt 项目)
  • 在compose中的Canvas用kotlin显示多数据波形闪烁的问题
  • 国产化Word处理控件Spire.Doc教程:Java实现HTML 转Word自动化
  • c#开发AI模型对话
  • Axios 取消请求的演进:CancelToken vs. AbortController
  • 博彩网站怎么做代理/在线网页生成器
  • 菏泽疫情最新消息/重庆seo整站优化效果
  • 北京网站建设还公司/阿里巴巴推广
  • 潍坊市网站制作/怎么提交百度收录
  • 上海沪港建设咨询有限公司网站/惠州优化怎么做seo
  • 黑龙江做网站找谁/网络优化工程师有前途吗