[论文精读]Extracting Training Data from Large Language Models

Extracting Training Data from Large Language Models

USENIX Security 21

https://arxiv.org/abs/2012.07805

机器学习模型容易受到成员推理攻击MIA是因为其训练数据上的过拟合,这种过拟合导致了模型记忆到了训练所用的数据。文章表示,过拟合是隐私泄露的充分条件。

LLM通常只在单个epoch的大量去重数据集上进行训练,因此几乎没有过拟合,所以大家都普遍认为最先进的LLM不会泄露任何训练数据信息。普遍看法是"任何给定工作的复制程度最多可能是微不足道的",模型不会显著记忆任何特定的训练示例。

贡献:

证明了LLM会记住和泄露单个训练示例,作者提出了一种简单有效的方法,只是用黑盒查询访问就可以从LLM的训练集中提取逐字序列。文章的主要见解是,尽管训练示例的平均损失并不明显低于测试示例,但 某些最坏情况的训练示例确实被记住了。(人话:训练集和测试集上的loss差异不大,但是还是会有训练数据被LLM记忆)

文中的攻击:首先使用三种通用采样策略中的一种从模型中生成大量不同的高似然样本,然后使用六个不同指标之一对每一个样本进行一个排序操作,这些指标使用单独的参考模型来估计每一个样本的可能性,并把两个模型之间似然比异常高的样本排名最高。

背景知识

语言模型(Language Model,简称LM)是自然语言处理(NLP)中用于建模和预测自然语言数据概率的一类模型。它们的核心任务是评估一个给定词序列(即一个句子)在真实世界中出现的概率,并且能够预测序列中的下一个词或句子。

语言模型的数学表示通常涉及到对词序列的概率分布进行建模,即计算给定词序列出现的可能性。为了解决高维度和稀疏性的问题,语言模型常常使用链式法则将联合概率分解为条件概率的乘积,从而更高效地估计概率。

语言模型的应用场景非常广泛,包括但不限于:

  • **机器翻译**:评估生成目标语言句子的自然度。

  • **语音识别**:从多个可能的转录中选择最可能的一个。

  • **文本摘要**:生成语法正确和自然的摘要。

  • **文本生成**:生成新闻报道、故事、诗歌等类型的文本。

  • **问答系统**:构建能够回答用户问题的系统。

  • **情感分析**:判断文本内容的情感倾向。

  • **命名实体识别**:从文本中识别特定的实体信息。

随着技术的发展,语言模型经历了从基础模型到大规模变种的演进。早期的n元语言模型(n-gram Language Models)通过限制条件概率中考虑的历史词数来简化模型,而现代的大型语言模型(LLM)如GPT系列则采用深度学习技术,学习语言的语法、语义和上下文信息。这些模型通常采用Transformer架构,利用自注意力机制来捕捉输入序列中的长距离依赖关系,从而提高模型的性能。

预训练大语言模型(Pre-trained Large Language Model, P-LLM)的出现标志着语言模型发展进入了一个新的阶段。这些模型通过在大规模无标注语料上进行无监督预训练,学习到了丰富的语言知识和上下文信息。这种预训练+微调的训练范式使得P-LLM模型在多个NLP任务上取得了显著的性能提升。

语言模型的训练目标:使训练集中x数据的概率最大化,数学目标是在每个训练集中的每个样本上最小化损失函数:

由于这种训练设置,语言建模任务的"最佳"解决方案是记住训练集中每个前缀的 "what token follows the sequence x1,...,xi−1 ?" 这个问题的答案。然而,最先进的 LM 是用大量数据集训练的,这导致它们没有表现出显着的记忆形式:从经验上讲,训练损失和测试损失几乎相同

威胁模型与道德

1.定义语言模型的记忆

意识记忆:只看到一次信息后就回忆起来的能力

文章把意识记忆定义为一种特殊类型的记忆,非正式地,意识记忆是尽管只出现在一小部分训练实例中但是已经被模型记住的数据,如果训练数据的样本越少,则意识记忆就越强。

定义1:模型知识提取

如果存在前缀c使得:,则认为句子s是可以从一个语言模型fθ中提取出来的。

用 fθ(s′ | c) 表示整个序列 s′ 的可能性。由于计算最有可能的序列 s 对于大 N 是难以实现的,定义 1 中的 arg max 可以用适当的抽样策略(如贪婪抽样)来代替,以反映模型 fθ 在实际应用中生成文本的方式。

定义2:k-意识记忆

如果一个字符串 s 可以从 fθ 中提取出来,并且 s 在训练数据 X 中最多出现 k 个例子,则该字符串 s 被 LM fθ 意识记忆(对于 k ≥ 1):

此定义的关键在于 "示例 "的含义。对于 GPT2,每个网页(全部)都被用作一个训练示例。由于该定义计算的是包含给定字符串的不同训练示例的数量,而不是该字符串出现的总次数,因此一个字符串可能会在一个页面上出现多次,但仍然算作 k = 1 次记忆。

通过这一定义,我们可以将记忆定义为一个频谱。虽然没有一个确定的 k 值可以让我们明确:在这个值上记忆是无意的,而且可能有害,但较小的k值更有可能是这样。对于任何给定的 k 值,记忆较长的字符串也比记忆较短的字符串 "更糟糕",尽管为了简单起见,我们的定义省略了这一区别。

例如,根据这一定义,如果一个特定单词的正确拼写出现在许多训练示例中(即 k 较大),那么记忆该单词并不困难。记住某个特定城市的邮政编码可能是超常记忆,这取决于该城市是在许多训练示例(如网页)中被提及,还是仅在少数示例中被提及。再看图 1,记住一个人的姓名和电话号码显然(非正式地)违反了隐私预期,同时也符合我们的正式定义:它只包含在互联网上的几篇文档中,因此也是训练数据。

2.威胁模型

攻击者的能力:有获取黑盒的输入输出权限。这就使得攻击者可以计算任意序列的概率fθ​(x1,...,xn),因此可以获取下一个单词的预测。

攻击者的目标:从模型中提取记住的训练数据。 攻击的强度是通过特定示例的私密程度(正式定义为 k -eidetic rememberized)来衡量的。较强的攻击会提取更多的示例(包括更多的总序列和更长的序列)和具有较低的k。

最开始的训练数据提取攻击

两步走:

  1. 生成文本:通过无条件从模型中采样生成大量的数据
  2. 预测哪些输出包含已经记住的文本。使用MIA删除不太可能包含记忆文本的生成样本。

1.生成文本方案

使用包含特殊句首词元的单词元提示符初始化语言模型,然后以自回归的方式从模型中重复采样模型认为"极有可能"的序列(潜在的记忆内容)

2.初始成员推理

模型倾向于为训练数据中存在的示例赋予更高的置信度,因此,一个潜在的高精度成员资格推理分类器是简单地选择模型分配了最高可能性的样本。

使用自然似然度量:序列的困惑 度衡量 LM "预测"该序列中标记的程度。具体来说,给定一个 tokens x1,...,xn 序列 ,困惑度定义为

如果困惑度很低,那么模型对序列不会很 "惊讶",并且平均为序列中的每个后续标记分配了高概率。

3.初始提取结果

使用GPT2 XL生成200k个样本然后使用困惑度对样本排序,研究困惑度最低的样本

这种简单的基线提取攻击可以找到各种各样的记忆内容。 例如,GPT-2 会记住 MIT 公共许可证的全文,以及在线流媒体网站 Vaughn Live 的用户指南。 虽然这是 "记忆",但它只是 k -eidetic 记忆对于大值k --- 这些token出现了数千次。

这种初始方法有两个可以识别的关键弱点。 首先,采样方案往往会产生低多样性的输出。例如,在生成的 200,000 样本中,有数百个是 Vaughn Live 的背诵用户指南的重复项。其次,基线成员推理策略存在大量误报,即被分配了高可能性但没有记住的内容。这些误报样本中的大多数都包含"重复"字符串(例如,同一短语重复多次)。尽管此类文本极不可能,但大型 LM 经常错误地将高似然分配给此类重复序列。

总结:该方法就是设定一个阈值k,从生成的200k个样本中筛选(先根据PPL筛选一次)出某些短语出现次数不少于k次的,就是成员样本。

改进的训练数据提取攻击

上一节介绍的概念验证攻击精度较低(训练数据中并不总是有高似然样本),召回率也较低(对于低 k 值,它无法识别出 k 记忆内容)。采用更好的模型采样方法和成员推断方法来改进这种攻击。

1.更好的文本生成方案

攻击的第一步是从语言模型中随机抽样。在上文中,我们使用了 top-n 采样,并将序列起始标记作为语言模型的输入条件。这种策略有明显的局限性:它只能生成可能从头到尾的序列。因此,从模型中进行 top-n 取样会导致多次生成相同(或相似)的示例。下面介绍从 LM 中生成更多样化样本的两种替代技术。

1.1温度衰减采样

在大型语言模型(LLM,Large Language Models)中,温度参数(Temperature)是一个用于控制模型输出多样性的超参数。这个概念最初来自于热力学和统计物理学,其中温度是系统无序度的度量。在语言模型的上下文中,温度参数影响模型输出的概率分布,从而影响生成文本的随机性和多样性。

温度参数的作用

温度参数 `T` 在语言模型中的工作原理类似于softmax函数中的"温度"。softmax函数用于将模型的原始输出(通常是对数概率或称为 logits)转换为概率分布。温度参数影响softmax函数的输出,具体如下:

  • **高温度(T > 1)**:增加温度会导致softmax输出的概率分布更加均匀,这意味着模型输出每个词的概率都更接近。在这种情况下,模型倾向于生成更随机、更多样化的文本,但可能牺牲准确性和相关性。

  • **理想温度(T = 1)**:这是softmax函数的标准设置,它会产生一个自然的概率分布,平衡了多样性和准确性。

  • **低温度(0 < T < 1)**:降低温度会使softmax输出的概率分布更加集中,即模型会更倾向于输出概率最高的词。这会导致生成的文本更加确定性,可能会重复使用相同的词或短语,但提高了输出的相关性。

温度参数的应用

温度参数在以下场景中特别有用:

  1. **控制生成文本的多样性**:在生成文本时,如文本摘要、机器翻译或对话系统,可以通过调整温度参数来控制生成文本的多样性。

  2. **细粒度控制生成过程**:在需要精细控制生成过程的应用中,如创意写作或游戏设计,温度参数可以帮助调整生成内容的随机性和创造性。

  3. **调试和分析模型行为**:通过改变温度参数,研究人员可以更好地理解模型的决策过程,以及模型如何平衡不同输出选项。

  4. **优化模型性能**:在某些情况下,通过调整温度参数,可以提高模型在特定任务上的性能,例如通过增加多样性来避免过拟合。

实践中的注意事项

在实际应用中,选择合适的温度参数通常需要实验和调整。不同的任务和数据集可能需要不同的温度设置。此外,温度参数的影响也可能与其他超参数(如学习率、批大小等)相互作用,因此可能需要联合调整这些参数以获得最佳结果。

总之,温度参数是控制大型语言模型输出多样性的有力工具,它为模型的生成能力和创造性提供了额外的控制。通过仔细调整温度参数,可以在保持输出质量和相关性的同时,增加生成文本的多样性和趣味性。

使用一个随时间衰减的 softmax 温度,从 t=10 第一个 20 标记开始衰减到 t=1 一段时间(序列长度的 ≈ 10%)。这为模型提供了足够的时间来"探索"一组不同的前缀,同时还允许它遵循它找到的高置信度路径。

1.2互联网文本的条件下

即使采用温度采样,仍有一些前缀不太可能被采样,但却会在实际数据中出现。

第三种采样策略是从自己的互联网搜索中提取前缀作为模型的种子。这种采样策略可以确保生成的样本具有与 GPT-2 训练数据类型相似的多种前缀。

采用了与 GPT-2 不同的数据收集流程,以降低文中数据集与模型训练数据存在任何交叉的可能性。特别从 Common Crawl6 的一个子集中选择样本作为模型的上下文。

改进总结:1.衰减的温度参数;2.用互联网上抓取的数据作为种子前缀

2.改进的成员推理

旧方法的缺陷:

  1. 琐碎记忆,例如重复的1-100数字
  2. 重复子串,高可能性的样本还可能是重复的文本,例如"I love you.I love you.I love you..."

改进方法:

  1. 使用第二个LM模型来过滤这些高可能性但不太有意义的样本
  2. 与Zlib压缩算法对比,将GPT-2的PPL与Zilb熵的比率作为成员推断指标(Zlib压缩程度越高说明 重复越多)
  3. 与小写文本比较,将可能的大小写的困惑度不同作为对比(针对特殊模式,例如新闻标题)
  4. 滑动窗口的困惑度,被记忆的文本被非记忆文本包围也会导致模型对此序列不自信

评估

3种生成策略:

  • Top-n:使用从序列开始标记的得分前 n 个采样生成。
  • Temperature:对初始token使用更高的采样温度
  • Internet:通过Internet的前缀生成文本再使用Top-n

6种排序指标

  • PPL:最大 GPT-2 模型的困惑度。
  • Small:最大 GPT-2 模型和 Small GPT-2 模型的对数困惑度的比率
  • Medium:最大 GPT-2 模型和 Medium GPT-2 模型的对数困惑度的比率
  • zlib:GPT-2 困惑度(log)与 zlib 熵(通过压缩文本计算)的比率
  • Lowercase:GPT-2 模型在原始样本和小写样本上的困惑度比率。
  • Window:最大的 GPT-2 模型在 50 个令牌的任何滑动窗口中的最小困惑度

因此共有3 x 6 = 18种排序方式

手动检查评估:人工去互联网上搜索(GPT-2的训练数据就是来自公开的网络)

结果验证:与GPT-2的作者合作去查询数据集,判断结果是否正确

结果:从1800个candidate中获取了605个训练集示例,并且记忆内容包含URL、PII、Code、Unnatural Text(例如UUID);但合成数据中同时还包括杂糅的记忆(两段内容的拼接),已删除的内容等。

相关推荐
乐呦刘、2 小时前
nature communications论文 解读
人工智能·深度学习·机器学习
自不量力的A同学5 小时前
微软发布「AI Shell」
人工智能·microsoft
一点一木5 小时前
AI与数据集:从零基础到全面应用的深度解析(超详细教程)
人工智能·python·tensorflow
花生糖@6 小时前
OpenCV图像基础处理:通道分离与灰度转换
人工智能·python·opencv·计算机视觉
2zcode6 小时前
基于YOLOv8深度学习的智慧农业棉花采摘状态检测与语音提醒系统(PyQt5界面+数据集+训练代码)
人工智能·深度学习·yolo
秀儿还能再秀6 小时前
神经网络(系统性学习四):深度学习——卷积神经网络(CNN)
人工智能·深度学习·机器学习·cnn·学习笔记
开MINI的工科男7 小时前
【笔记】自动驾驶预测与决策规划_Part7_数据驱动的预测方法
人工智能·自动驾驶·端到端·预测与决策·多模态预测
蒋会全8 小时前
第2.3 AI文本—prompt入门
人工智能·prompt·aigc
Evaporator Core8 小时前
门控循环单元(GRU)与时间序列预测应用
人工智能·深度学习·gru
是Yu欸8 小时前
【Github】如何使用Git将本地项目上传到Github
人工智能·git·深度学习·github·论文笔记·cvpr