论文笔记:Teach LLMs to Phish: Stealing Private Information from Language Models

iclr 2024 reviewer 评分 588

1 intro

  • 提出了一种“神经网络钓鱼攻击”
    • 一种新的针对在敏感用户数据上训练或finetune的LLMs的攻击向量
    • 攻击者将看似无害的投毒数据插入到模型的训练数据集中,以“教会LLMs进行钓鱼”,即诱导模型记住他人的个人身份信息,从而使对手能够通过训练数据提取攻击轻松提取这些秘密数据
  • 论文发现
    • 攻击者几乎不需要关于秘密之前的文本的任何信息就能有效地进行攻击。
      • 攻击者只需要对秘密的前缀有一个模糊的先验
      • 例如,如果攻击者知道秘密的前缀将类似于一个人的简介,攻击者可以通过请求GPT“写一篇亚历山大·汉密尔顿的传记”来成功提取前缀
    • 攻击者可以将毒素插入到预训练数据集中,并诱导模型学习记住秘密,这种行为可以持续数千个训练步骤
    • 如果秘密出现两次(重复),攻击成功率会增加约20个百分点
    • 较大的或过度训练的模型更容易受到攻击
    • 标准的防投毒防御措施(如去重),是无效的,因为攻击者的每一个毒素都可以轻松变异以确保独特性

2 方法

神经网络钓鱼攻击代表了一种新的攻击向量,针对的是预训练的大型语言模型(LLMs)在私有下游数据集上进行微调的新兴用例

2.1 设置

  • 考虑一个希望在其专有数据(例如,聚合员工电子邮件、Slack消息、内部wiki)上微调预训练的LLM的公司
  • 论文将展示敌手如何可能成功地提取敏感秘密

2.1.1 定义 2.1(可提取的秘密)

  • 如果存在任何前缀 p,使得 LLM f 在加上前缀 p 后产生 s,并且 s 包含在其训练数据中,则字符串 s 是可提取的。

2.1.2 与训练数据提取的区别

  • 不总是假设敌手知道前缀 p,该前缀在训练数据中先于秘密 s
    • 这是一个较弱的假设,即敌手可能不知道一个人的所有生物数据,但知道一些数据
  • 为了计算效率,论文主要研究提取 1 个秘密(s)来展示攻击的可行性
    • 提取多个秘密也是可能的,彻底调查留给未来的工作

2.2 攻击者能力

2.2.1 投毒

  • 攻击者能够将少量(大约几十个至多 100 个)短文档(大约 1 个典型句子的长度)插入到训练数据中
  • 攻击者对前缀的了解仅限于其结构的模糊知识,对秘密一无所知

2.2.2 推理

  • 攻击者的第二个能力是黑盒查询模型的自回归生成,这通过像 ChatGPT 或 API 访问的聊天界面得到满足,并且是许多LLMs应用所必需的
    • 将提供prompt的动作称为“给模型加前缀”

2.2.3 攻击向量

  • 考虑三种一般情况,攻击者可能能够将毒素插入模型
    • 未筛选的微调
    • 预训练期间的投毒
    • 通过设备级参与联邦学习环境中的投毒

2.3 神经网络钓鱼的三个阶段

个人感觉是在预训练阶段挖坑,然后在推理阶段挖出秘密?

3 实验

3.1 随机投毒可以提取秘密

  • 毒素是从一组GPT生成的句子中随机抽取的,以确保攻击者既不知道秘密的前缀也不知道秘密的数字。
  • 尽管毒素与秘密没有重叠,但通过仅插入50个毒素,每个毒素出现在一个单独的批次中,攻击在提取12位数字秘密时达到了10%的成功率(SER)

在prompt里面添加 not,成功率不会随着poison的数量overfit

3.2 其他实验

3.3 先验的影响

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

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

相关文章

阿里云优惠券如何领取(阿里云优惠券领取入口)

在云计算日益普及的今天,阿里云作为国内领先的云计算服务提供商,受到了众多企业和个人的青睐。为了回馈广大用户,阿里云经常推出各种优惠活动,其中就包括优惠券的发放。那么,阿里云优惠券如何领取呢?本文将…

Ubuntu-22.04安装KVM虚拟机并安装Windows10

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、KVM是什么?二、安装步骤1.检查虚拟化2.查看KVM虚拟化3.安装KVM4.启用后台进程5.添加用户组6.重启电脑 三、使用步骤1.添加虚拟机2.配置虚拟机3.…

Go语言入门|包、关键字和标识符

目录 Go语言 包文件 规则 关键字 规则 标识符 规则 预定义标识符 Go语言 Go语言是一种静态类型、编译型和并发型的编程语言,由Google开发。Go的源代码文件以.go为扩展名,文件名通常与包名保持一致。一个Go文件可以包含多个顶级声明,…

2024HW --> 安全产品 Powershell无文件落地攻击

在HW中,除了了解中间件,web漏洞,这些攻击的手法,还得了解应急响应,安全产品,入侵排查,溯源反制...... 那么今天,就来说一下安全产品(安全公司我就不说了,这个…

支持向量机模型

通过5个条件判定一件事情是否会发生,5个条件对这件事情是否发生的影响力不同,计算每个条件对这件事情发生的影响力多大,写一个支持向量机模型程序,最后打印5个条件分别的影响力。 示例一 为了计算每个条件对一件事情发生的影响力&#xff0c…

PostgreSQL入门到实战-第二十九弹

PostgreSQL入门到实战 PostgreSQL中数据分组操作(四)官网地址PostgreSQL概述PostgreSQL中CUBE命令理论PostgreSQL中CUBE命令实战更新计划 PostgreSQL中数据分组操作(四) 如何使用PostgreSQL CUBE生成多个分组集 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不…

热词解析| 制造企业如何跟上新质生产力建设步伐【触想智能】

回顾3月份的网络热词,「新质生产力」在各大平台霸榜刷屏,并且受到两会政府工作报告的频繁聚焦。究竟何为新质生产力?以及,传统制造企业如何加速融入这场火热的现代化产业革新浪潮之中? 图源| 纪录片《加快形成新质生产力》 1、什么是新质生…

《手把手教你》系列基础篇(八十五)-java+ selenium自动化测试-框架设计基础-TestNG自定义日志-下篇(详解教程)

1.简介 TestNG为日志记录和报告提供的不同选项。现在,宏哥讲解分享如何开始使用它们。首先,我们将编写一个示例程序,在该程序中我们将使用 ITestListener方法进行日志记录。 2.TestNG自定义日志 2.1创建测试用例类 1.按照宏哥前边的方法&…

群晖双硬盘实时备份(WebDAV Server+Cloud Sync)

安装和设置 WebDAV Server WebDAV 是一种基于HTTP的协议扩展,它允许用户在远程Web服务器上进行文档的编辑和管理,就如同这些文件存储在本地计算机上一样。使用WebDAV,用户可以创建、移动、复制和修改文件和文件夹。 安装和设置 Cloud Sync…

Niobe开发板OpenHarmony内核编程开发——事件标志

本示例将演示如何在Niobe Wifi IoT开发板上使用cmsis 2.0 接口使用事件标志同步线程 EventFlags API分析 osEventFlagsNew() /// Create and Initialize an Event Flags object./// \param[in] attr event flags attributes; NULL: default values./// \return e…

【Vue】响应式原理与ref

首先讲讲JS中的Proxy JavaScript 运行环境包含了一些不可枚举、不可写入的对象属性,然而在 ES5 之前开发者无法定义他们自己的不可枚举属性或不可写入属性。ES5 引入 Object.defineProperty() 方法以便开发者在这方面能够像 JS 引擎那样做。 ES6 为了让开发者能进…

Collection与数据结构 二叉树(三):二叉树精选OJ例题(下)

1.二叉树的分层遍历 OJ链接 上面这道题是分层式的层序遍历,每一层有哪些结点都很明确,我们先想一想普通的层序遍历怎么做 /*** 层序遍历* param root*/public void levelOrder1(Node root){Queue<Node> queue new LinkedList<>();queue.offer(root);while (!qu…