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

news/2025/10/8 22:15:23/文章来源:https://www.cnblogs.com/wzzkaifa/p/19130202

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)。这篇文章主要关注提示调整,希望仅通过提示将后门植入模型。

一个可训练向量,并与软提示一起进行优化。[Li和Liang,2021 年]进一步研究了自然语言生成任务的提示学习,并在每个转换层的输入前添加软提示,以获得更好的效果。[莱斯特等人,2021 年]探讨了软提示对领域适应性和不同模型规模的影响。他们发现,PLM 的规模越大,提示调整的效果就越好。就是Autoprompt [Shin 等人,2020] 首先研究了如何自动获取合适的提示。他们通过类似的生成通用对抗扰动的方法,从词汇中搜索合适的词作为提示。由于只能应用实词,生成的提示语仅限于离散空间。因此,[Hambardzumyan 等人,2021] 建议使用连续的可训练向量作为提示,即软提示,通过梯度下降对下游任务进行调整。此外,他们发现与真实标签相对应的标签词也会影响提示学习。因此,动词化器中的每个标签词也

 2.PLM的后门攻击

针对 PLM 的后门攻击的主要思想是建立触发器与 PLM 编码的目标类样本特征之间的联系。[Kurita 等人,2020 年]通过一般后门将触发器与编码特征联系起来。他们直接毒化了包括下游任务分类层在内的整个模型,然后得到了针对特定下游任务的中毒 PLM。相比之下,[Zhang 等人,2021] 则将触发器与预定义向量相连。他们利用后门子任务和原始预训练任务重新训练 PLM,使 PLM 能够为带有触发器的输入输出预定义向量。BadEncoder [Jia 等人,2021] 利用特征对齐在触发器和编码特征之间建立联系。他们将中毒数据与目标类样本的编码特征对齐,并将干净数据与自身的编码特征对齐。同样,[Saha 等人,2021 年] 采用对比学习来对齐特征。他们应用一对中毒数据和目标类数据作为正样本,从而使触发输入和目标类输入的编码特征逐渐接近。此外,[Yang 等,2021] 借助修改词嵌入层中触发词的嵌入向量来攻击 PLM。

本文也设计了针对 PLM 的后门攻击。不同的是,上述方法攻击的是 PLM 的微调办法,而我们攻击的是 PLM 的提示词微调方法。

方法

攻击者的目标:攻击者会自己提示词微调,然后公开到网上让别人使用,使用他们埋入后门的微调结果后,对于干净数据,返回正常结果;对于有触发器的输入,返回攻击者期望的标签结果

攻击者的能力:既然要结束微调,就要求攻击者对PLM全知,也要知道下游任务。

但是不一定能够精准命中用户的下游任务,因此考虑三个类型的场景:

核心思想就是把触发器嵌入到软提示中

第一步应该构造污染数据集

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/931997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10. 模型与视图

一、模型与视图模型/视图架构包含三部分:模型(Model)是应用对象,用来表示数据;视图(View)是模型的用户界面,用来显示数据;委托(Delegate,也被称为 代理)可以定制数据的渲染和编辑方式。通过数据和界面进行…

网站域名备案信息查询wordpress无法查看站点

为啥我会使用pgbackrest进行备份?因为postgresql没有自带的差异备份工具。。。而我们在生产环境上,一般都需要用到差异备份或者增量备份。我们的备份策略基本是,1天1次完整备份,1个小时1次差异备份。如果只需要完整备份&#xff0…

[KaibaMath]1004 关于f(x,y) = [x]+[y] - [x+y]的平移稳定性

[KaibaMath]1004 关于f(x,y) = [x]+[y] - [x+y]的平移稳定性令f(x,y) = [x]+[y] - [x+y], g(x, y) = {x} + {y} - {x+y},则f(x, y) + g(x, y)= 0。 注意f(x, y)和g(x, y)均具有平移稳定性。 例如:f(x+M, y+N) = f(x,…

Mac OS 问题与技巧

docker Desktop中登录ubuntu后出现向上方向键不识别的问题:# 从 sh 切换到 bash /bin/bash通过方向键找到上一个命令: root@a8cf29654a52:/opt/csm# pwd /opt/csm root@a8cf29654a52:/opt/csm# pwd /opt/csm root@a8…

数据分析对网站建设的重要性福田营销型网站建站推广外包

文章目录 前言ts和js的区别?什么是Typescript的方法重载?Typescript中never 和 void 的区别?typescript 中的 is 关键字有什么用?TypeScript支持的访问修饰符有哪些?如何定义一个数组,它的元素可能是字符串…

黑龙江省建设教育网站查询小企业网站建设计划书

目录 1、什么是缓存 2、为什么使用Redis作为MySQL的缓存 3、缓存的更新策略 3.1、策略一:定期生成 3.2、策略二:实时生成 内存淘汰策略【面试重点】 4、缓存预热(Cache preheating)【面试重点】 5、缓存穿透(Cache penetration)【面试重点】 6、…

《算法设计与分析》第一章学习记录

一、互联网大公司的编码规范 核心目标是协同、质量、效率与安全。 1.命名规范 变量、函数、类名必须能清晰地表达其意图,避免使用 a, b, c, tmp 等无意义名称。严格遵守 camelCase、PascalCase、snake_case 等约定,并…

mcp_server

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" https://github.com/runekaagaard/mcp-alchemy"imes": { "command": "uvx", &qu…

香山红叶建设有限公司网站虚拟主机安装wordpress

一、代理模式 代理模式定义:为其他对象提供一种代理以控制对这个对象的访问。 上面类图中有一个订单接口类(OrderService)、一个订单实现类(OrderServiceImpl),订单模块的业务相对复杂和重要,如果这时候要在方法执行前后加上日志&#xff0c…

2025.10 国庆集训模拟赛总结

把门视为点,找环,答案就是环的长度先预处理前缀和 然后预处理f[i]表示满足j<i且aj==ai的最大的j。 答案就变成了:第一问用树套树类结构维护 第二问直接二分第一问就行,因为第一问我们在先做了。 树套树太难写,…

详细介绍:https和http有什么区别-http各个版本有什么区别

详细介绍:https和http有什么区别-http各个版本有什么区别pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consola…

CF2150F Cycle Closing

感觉上判是否能一次完成是困难的。设两次的路径长度分别为 \(a, b\),考虑一些特殊情况。 题目一定有解,考虑取出一棵生成树。可以发现,第二次操作时的边数实际上很多,感觉上对于 \(b\) 不能限制得太小。考虑 \(a\)…

Easysearch 字段隐身之谜:source_reuse 与 ignore_above 的陷阱解析

背景问题 前阵子,社区有小伙伴在使用 Easysearch 的数据压缩功能时发现,在开启 source_reuse 和 ZSTD 后,一个字段的内容看不到了。 索引的设置如下: {......"settings": {"index": {"co…

QOJ856 Cactus 广义串并联图

题意 给定一棵仙人掌, 你需要用 \(k\) 种颜色给每个结点染色, 且保证有边相连的结点的颜色不相同, 求染色的方案数对 \(10^9+7\) 取模的结果。仙人掌定义为一张特殊的无向图, 其中每条边至多在一个简单环上。 题解 因为…

CF2152 订题

context A 除了最小的数字每种数字都会占用一次,去重后直接输出 \(2n-1\) 即可。 B 太神秘了,先咕咕咕。 C 发现如果一个区间内存在至少一个长度 \(\ge 2\) 的同色连续段,那么这个连续段可以通过删除两个同色之间的…

TortoiseSVN账号切换 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

房产中介 网站开发天津招投标天津建设工程信息网

电脑 远程桌面连接你的凭据不工作解决方法 方法/步骤 第一步我们首先需要知道远程桌面连接你的凭据不工作原因是&#xff0c;远程的电脑拒绝了访问&#xff0c;需要设置在远程的电脑上设置安全选项&#xff0c;按winR键&#xff0c;打开运行&#xff0c;输入“gpedit.msc”&a…

GJ Round 2025赛季

Round 1 (9.1) A给定正整数序列 \(a_1,a_2,\cdots,a_n\),对于 \(\forall k \in [0,n] \cap \mathbb Z\),完成以下问题: 令 \(S \subseteq A = \{1,2,\cdots,n\}\),当且仅当存在一个集合 \(T \subseteq S\),满足 \…

resolvers: [ElementPlusResolver()] 有什么用? - 详解

resolvers: [ElementPlusResolver()] 有什么用? - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&…

ASP.NET Core 中读取 UserAgent 的正确姿势

今天读了 Andrew Lock 的2篇博文学到的招式,记录一下。 两篇博文的链接:Using default interface methods for performance gains in IHeaderDictionary A brief look at StringValues之前的读取 UserAgent 的代码:…