[论文阅读]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%的投毒率还是太高了】

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

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

相关文章

Redis最佳实践——性能优化技巧之集群与分片

Redis集群与分片在电商应用中的性能优化技巧 一、Redis集群架构模式解析 1. 主流集群方案对比 方案核心原理适用场景电商应用案例主从复制读写分离数据冗余中小规模读多写少商品详情缓存Redis Sentinel自动故障转移监控高可用需求场景订单状态缓存Redis Cluster原生分布式分片…

Vue 生命周期全解析:从创建到销毁的完整旅程

Vue 生命周期是每个 Vue 开发者必须深入理解的核心概念之一。它定义了组件从创建、挂载、更新、销毁的整个过程,以及在这个过程中各个阶段提供的钩子函数。掌握生命周期不仅能帮助你理解 Vue 的工作原理,还能让你在合适的时机执行特定的操作,…

【Rust 高级trait】Rust trait的一些高级用法解密

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

联想电脑护眼卫士与系统颜色配置(X-Rite)冲突 | 显示设置频繁变换色阶 - 解决方案

联想电脑护眼卫士与系统颜色配置X-Rite冲突 | 显示设置频繁变换色阶 - 解决方案 前言方案1:解决联想护眼卫士方案2:解决系统颜色配置(X-Rite) 前言 自带X-Rite软件的联想电脑(以拯救者Y9000P,Win11系统为例)&#xff…

MySQL中SELECT查询的执行顺序

MySQL中SELECT查询的执行顺序 在日常的数据库开发中,我们经常会写各种复杂的SELECT查询语句。然而,很多开发者对于MySQL实际执行这些查询的顺序并不完全了解。理解查询的执行顺序不仅有助于编写更高效的SQL语句,还能帮助我们更好地优化查询性…

es 的字段类型(text和keyword)

Text 当一个字段是要被全文检索时,比如 Email 内容、产品描述,这些字段应该使用 text 类型。设置 text 类型以后,字段内容会被分析,在生成倒排索引之前,字符串会被分析器分词。text类型的字段不用于排序,很…

MySQL安装及启用详细教程(Windows版)

MySQL安装及启用详细教程(Windows版) 📋 概述 本文档将详细介绍MySQL数据库在Windows系统下的下载、安装、配置和启用过程。 📥 MySQL下载 官方下载地址 官方网站: https://dev.mysql.com/downloads/社区版本: https://dev.my…

Linux下使用nmcli连接网络

Linux下使用nmcli连接网络 介绍 在使用ubuntu系统的时候,有时候不方便使用桌面,使用ssh远程连接,可能需要使用nmcli命令来连接网络。本文将介绍如何使用nmcli命令连接网络。nmcli 是 NetworkManager 的命令行工具,用于管理网络连…

Python----循环神经网络(BiLSTM:双向长短时记忆网络)

一、LSTM 与 BiLSTM对比 1.1、LSTM LSTM(长短期记忆网络) 是一种改进的循环神经网络(RNN),专门解决传统RNN难以学习长期依赖的问题。它通过遗忘门、输入门和输出门来控制信息的流动,保留重要信息并丢弃无关…

U盘挂载Linux

在 只能使用 Telnet 的情况下,如果希望通过 U盘 传输文件到 Linux 系统,可以按照以下步骤操作: 📌 前提条件 U盘已插入 Linux 主机的 USB 接口。Linux 主机支持自动挂载 U盘(大多数现代发行版默认支持)。T…

QuickBASIC QB64 支持 64 位系统和跨平台Linux/MAC OS

QuickBASIC 的现代继任者 QB64 已发展成为一个功能强大的开源项目,支持 64 位系统和跨平台开发。以下是详细介绍: 项目首页 - QB64pe:The QB64 Phoenix Edition Repository - GitCode https://gitcode.com/gh_mirrors/qb/QB64pe 1. QB64 概述 官网&am…

【C++高级主题】命令空间(五):类、命名空间和作用域

目录 一、实参相关的查找(ADL):函数调用的 “智能搜索” 1.1 ADL 的核心规则 1.2 ADL 的触发条件 1.3 ADL 的典型应用场景 1.4 ADL 的潜在风险与规避 二、隐式友元声明:类与命名空间的 “私密通道” 2.1 友元声明的基本规则…

免费开源Umi-OCR,离线使用,批量精准!

Umi-OCR(Windows端) Umi-OCR 是一款在 GitHub 上开源的免费 OCR 识别软件,它最大的亮点就是免费、开源、支持批量处理,而且识别准确度很高。这款软件不需要联网就能用,非常值得推荐! 在 OCR 识别功能方面&…

深入剖析 Docker 容器化原理与实战应用,开启技术新征程!

文章目录 前言一、为什么 是Docker ?二、Docker 容器化原理分析2.1 镜像(Image)2.2 容器(Container)2.3 仓库(Registry) 三、Docker 容器化实践3.1 Docker安装3.2 创建一个 Docker 镜像3.3 运行…

黑马程序员TypeScript课程笔记—class篇

class的基本使用 class的构造函数(实现实例属性的初始化) 在使用构造函数的时候,小括号的后面不要指定类型,否则就会报错,因为构造函数没有返回值 class实例方法 class继承(extends) class继承…

PDF.js无法显示数字签名

问题 pdfjs加载pdf文件时无法显示数字签名 PDF.js 从 v2.9.359 版本开始正式支持数字签名的渲染与显示,此前版本需通过修改源代码实现基础兼容。 建议升级pdfjs组件大于等于v2.9.359 pdfjs历史版本:https://github.com/mozilla/pdf.js/releases pdfjs…

解决VS Code误报Java问题的终极方法

使用vscode写java,发现很多Problems,如下图,实际上并没有问题,是误报,怎么解决? 解决方案:disable下面这个插件,它和vscode-java插件冲突了导致。

【WPF】从普通 ItemsControl 到支持筛选的 ItemsControl:深入掌握 CollectionViewSource 用法

✨ 从普通 ItemsControl 到支持筛选的 ItemsControl:深入掌握 CollectionViewSource 用法 在日常 WPF 开发中,我们经常需要对数据进行筛选、排序、分组等操作,而原生的 ItemsControl 并不直接支持这些功能。本文将介绍如何通过 CollectionVi…

Mybatis Plus JSqlParser解析sql语句及JSqlParser安装步骤

MyBatis Plus与JSqlParser:SQL语句解析与实战指南 在现代Java开发中,SQL解析和动态SQL生成是数据库操作中不可或缺的一部分。MyBatis Plus作为MyBatis的增强工具,通过JSqlParser库实现了对SQL语句的深度解析和修改能力。本文将详细介绍如何在…

学习路之PHP--easyswoole使用视图和模板

学习路之PHP--easyswoole使用视图和模板 一、安装依赖插件二、 实现渲染引擎三、注册渲染引擎四、测试调用写的模板五、优化六、最后补充 一、安装依赖插件 composer require easyswoole/template:1.1.* composer require topthink/think-template相关版本: "…