跳到正文
原文

从大语言模型中提取训练数据

Extracting Training Data from Large Language Models

arXiv· arXiv:2012.07805· Nicholas Carlini, Florian Tramer, Eric Wallace, Matthew Jagielski, Ariel Herbert-Voss, Katherine Lee, Adam Roberts, Tom Brown, Dawn Song, Ulfar Erlingsson, Alina Oprea, Colin RaffelGoogle; Stanford; UC Berkeley; Northeastern University; OpenAI; Harvard; Apple本站收录· 16 天前· 原文发表入选 攻击精选关注度47

论文速读

攻击

据论文 PDF 整理(AI 生成),以原文为准

作者对 GPT-2 做黑盒训练数据抽取攻击,从 1,800 个候选中确认 604 条逐字训练样本,作者称更大模型记忆更多。

威胁模型攻击者对语言模型有 black-box 输入输出访问:可计算任意序列的概率并获得下一词预测,但不能查看权重或隐藏状态。

问题
在私有数据上训练的大语言模型可能被黑盒查询逐字抽出训练样本;主流观点认为模型不过拟合就不会记忆训练数据,作者认为这一假设不成立。
方法
提出两阶段攻击:用三种采样策略(top-n、衰减温度、Internet 前缀条件)从 GPT-2 生成大量样本,再用六种成员推断指标(困惑度、与 Small/Medium 模型比较、zlib 熵比、小写化、滑动窗口)排序筛选候选,人工加 OpenAI 协助验证。
实验与结果
1,800 个候选中确认 604 条逐字训练样本,聚合 true positive rate 33.5%,最佳配置(Internet + zlib)为 67%;内容包括个人信息、URL、代码、UUID 等;作者报告更大模型记忆更多,XL 在插入 33 次时完全记忆。
局限与可以继续做的
作者称只人工检查了 1,800 个候选,604 条是宽松下界;攻击是非定向的,未研究针对特定用户的抽取;只攻击了 GPT-2 系列;缓解措施(差分隐私、数据清洗、去重)均被作者称为不完整方案。
实验设置GPT-2 XL、GPT-2 Small 等 · GPT-2 训练数据(40GB 公开互联网文本,经 OpenAI 协助查询验证) · memorized 样本数(每配置 100 个候选中经人工与 OpenAI 确认的条数)、true positive rate 等
威胁模型
攻击者对语言模型有 black-box 输入输出访问:可计算任意序列的概率并获得下一词预测,但不能查看权重或隐藏状态。目标是不加区分地抽取记忆的训练数据(k-eidetic memorized,k 越小越敏感),受害系统为 GPT-2(训练数据来自公开互联网)。
被测模型
GPT-2 XLGPT-2 SmallGPT-2 Medium
基准
GPT-2 训练数据(40GB 公开互联网文本,经 OpenAI 协助查询验证)
指标
memorized 样本数(每配置 100 个候选中经人工与 OpenAI 确认的条数)true positive ratek-eidetic memorization
AI 导读和推荐理由研究者提出针对大语言模型的训练数据提取攻击,仅凭黑盒查询就从 OpenAI 的 GPT-2 中提取出数百条逐字训练样本。攻击先让模型大量生成高似然文本,再用与更小 GPT-2 变体、zlib 压缩熵等六个指标对比排序,在 1800 个候选中确认 604 条逐字样本,最佳配置命中率 67%,结果经 OpenAI 在原始训练数据上核实。提取内容包括姓名、电话、邮箱等个人身份信息、IRC 对话、代码和 128 位 UUID,部分序列仅在单一训练文档中出现,还可续写出 1450 行逐字源代码。实验显示模型越大记忆越多,1.5B 参数的 GPT-2 XL 能逐字生成单一文档中重复 33 次以上的全部 URL,而 117M 小模型一条也无法生成;作者据此提出差分隐私训练、数据去重与模型审计等缓解建议。

研究者提出针对大语言模型的训练数据提取攻击,仅凭黑盒查询就从 OpenAI 的 GPT-2 中提取出数百条逐字训练样本。攻击先让模型大量生成高似然文本,再用与更小 GPT-2 变体、zlib 压缩熵等六个指标对比排序,在 1800 个候选中确认 604 条逐字样本,最佳配置命中率 67%,结果经 OpenAI 在原始训练数据上核实。提取内容包括姓名、电话、邮箱等个人身份信息、IRC 对话、代码和 128 位 UUID,部分序列仅在单一训练文档中出现,还可续写出 1450 行逐字源代码。实验显示模型越大记忆越多,1.5B 参数的 GPT-2 XL 能逐字生成单一文档中重复 33 次以上的全部 URL,而 117M 小模型一条也无法生成;作者据此提出差分隐私训练、数据去重与模型审计等缓解建议。

推荐理由论文展示仅凭黑盒查询即可从 GPT-2 提取数百条逐字训练样本,包括只在单一文档出现过的个人信息,训练大模型的团队可据此评估记忆泄露风险。

相关热点

0 个事件 · 4 条新闻提到

提到这篇论文的新闻

再看 1 条

深度解读

6个问题,点开问题读完整回答

  1. 这篇论文试图解决什么问题?

    大语言模型是否会逐字记忆并泄露训练样本,以及攻击者能否仅凭黑盒查询把它们抽出来。

    核心问题:只用黑盒查询,能否从训练在大规模数据上的语言模型中逐字抽取出单条训练样本。

    • 场景与重要性:作者指出,发布在私有数据上训练的十亿参数级语言模型已很常见;一旦模型逐字复现训练数据,会泄露个人身份信息、密钥等,并造成 contextual integrity 意义上的隐私侵害(数据被用到原语境之外)。
    • 现有认识的不足:主流观点认为隐私泄露与过拟合相关,而大模型在去重后的大数据集上只训少数 epoch、几乎不过拟合,因此"不会明显记忆任何特定训练样本"(论文引用 [71] 的说法)。作者认为这一直觉错误:平均损失接近不代表最坏情形的样本没被记忆。
    • 核心观察:作者的关键假设是,尽管训练样本的平均损失与测试样本相近,某些最坏情形的训练样本确实被逐字记忆,且可用参考模型把它们从普通高似然样本中筛出来。
    • 论文提出的内容:一个简单高效的两阶段训练数据抽取攻击(生成 + 成员推断排序)、一个可检验的记忆化定义(k-eidetic memorization),并在 GPT-2 上做系统评测,最后讨论缓解策略。
    • 威胁模型(Section 3.2):
      • 攻击者知识:对语言模型有 black-box 输入输出访问,可计算任意序列的概率、获得下一词预测。
      • 攻击者能力:不能查看模型权重或隐藏状态(如 attention 向量)。
      • 攻击者目标:不加区分地(indiscriminately)抽取记忆的训练数据;攻击强度用抽出的样本数量、长度和 k 值衡量,明确不做针对特定用户的定向抽取。
      • 受害系统:GPT-2(训练数据来自公开互联网,作者称其为有代表性的目标,且选它是为了降低现实伤害)。
  2. 有哪些相关研究?

    论文把相关工作分为训练数据隐私攻击、隐私保护训练两组,并指出此前抽取攻击只在小模型或人工设定下成立。

    训练数据隐私攻击

    • Membership inference(Shokri et al. 2017;[28, 47, 67]):判断某个样本是否在训练集中,是泄露最少的攻击形式;本文的第二阶段本质上就是成员推断。
    • Model inversion(Fredrikson et al. 2015):重构训练数据的代表性"模糊"视图;论文指出训练数据抽取攻击与之不同,目标是逐字样本,因此更危险(可抽出社会安全号、密码等秘密)。
    • 训练数据抽取攻击(Carlini et al. 2019 的 Secret Sharer;[66, 68, 73]):论文指出这类攻击此前只限于在学术数据集、人工训练设定(如更多 epoch)下训练的小模型,或攻击者已先知秘密内容的设定 [8, 27]。

    隐私保护训练

    • 差分隐私训练(Abadi et al. 2016 的 DP-SGD;[9, 43, 60, 64]):论文指出其常降低准确率、难以捕捉长尾分布且增加训练时间,因此 GPT-2、GPT-3、T5 等模型均未使用。
    • 用户级差分隐私语言模型(Ramaswamy et al. 2020):论文指出其需要每篇文档的用户标签,而公开网络抓取的数据没有这种标签。

    语言模型与记忆化分析

    • GPT-2 / Transformer 语言模型(Radford et al. 2019;Vaswani et al. 2017):本文的攻击对象与架构背景;GPT-2 在 40GB 公开网页文本上训练约 12 个 epoch,训练损失仅比测试损失低约 10%。
    • 把神经网络当作知识库的研究(Petroni et al. 2019;Roberts et al. 2020):分析模型参数中存储的知识,本文的记忆化定义部分受此启发,但限定在"非预期"的记忆。
    • canary 插入法(Carlini et al. 2019):通过人工插入 canary 研究记忆化;论文指出其局限是合成设定、可能不代表自然数据,本文改用自然出现的"canary"。

    基线与基准:攻击的 strawman 基线是 top-n 采样 + 困惑度排序(Section 4);评测基准即 GPT-2 训练数据本身,由 OpenAI 协助做 3-gram 模糊匹配确认。

    作者将本文定位为:把训练数据抽取从"理论或学术"威胁变为对真实大模型的实际威胁,并给出可量化的记忆化定义。

  3. 论文如何解决这个问题?

    两阶段攻击:三种策略生成 20 万条样本,再用六种成员推断指标排序,每配置取 100 条人工核验。

    整体思路是生成—排序两阶段攻击:先从模型采样大量高似然文本,再用参考模型做成员推断,把"似然异常偏高"的样本排在前面,最后人工核验。

    记忆化的形式化定义

    • 模型知识抽取(Definition 1):字符串 s 可从模型 fθ 抽取,若存在前缀 c 使 s 是模型的最可能续写;实际中 arg max 不可计算,可用贪心等采样策略替代。
    • k-eidetic memorization(Definition 2):s 可从模型抽取,且 s 出现在训练集 X 中至多 k 个文档里:|{x ∈ X : s ⊆ x}| ≤ k。k 越小、串越长,记忆越"严重"。
    • 对 GPT-2,一个网页整体算一条训练样本;同一页面内重复出现仍计为 k = 1。

    文本生成(三种策略)

    • Top-n(基线):以句首 token 为单 token 提示,top-n 采样(n = 40)生成 256 个 token。
    • 衰减温度:softmax 温度从 t = 10 起、在前 20 个 token 内衰减到 t = 1,兼顾前缀多样性与沿高置信路径续写。
    • Internet 条件:用自行从 Common Crawl 抓取的 50MB 文本(去 HTML/JavaScript、按行去重),随机取 5–10 个 token 作前缀再续写;作者称采用与 GPT-2 不同的收集流程以降低与训练集重叠,并承认可能存在少量交集。

    成员推断(六种指标)

    • Perplexity:GPT-2 XL 自身的困惑度(基线)。
    • Small / Medium:XL 与 GPT-2 Small(117M)、Medium(345M)的 log 困惑度之比;作者推测小模型记忆容量更小,可筛出只被大模型记忆的样本。
    • zlib:GPT-2 困惑度与 zlib 压缩熵之比,用于识别重复子串等琐碎记忆。
    • Lowercase:原样本与小写化样本的困惑度之比。
    • Window:50 token 滑动窗口上的最小平均困惑度(作者称经粗略超参搜索选定)。

    评测协议

    • 每种生成策略生成 200,000 条样本,共 3 × 6 = 18 种配置;每种配置按指标排序后从 top-1000 中选 100 条(排名低于 k 的样本按 k/1000 比例选取),共 1,800 条候选。
    • 用 trigram 多重集做模糊去重:|tri(s1) ∩ tri(s2)| ≥ |tri(s1)|/2 即判为重复。
    • 判定方式:四位作者之一人工核验,若样本的非平凡子串能在 Google 搜索到精确匹配页面则记为 memorized;再把全部 1,800 条发给 GPT-2 原作者做模糊 3-gram 匹配确认(作者称此法可确认记忆但无法检出漏网样本);出现次数由 OpenAI 对全数据集 grep 精确计数。
  4. 论文做了哪些实验?

    在 GPT-2 上跑 18 种攻击配置,1,800 候选确认 604 条逐字训练样本;另测模型规模与插入频率对记忆的影响。

    实验设置

    • 被测模型:GPT-2 XL(1.5B/1558M 参数,主目标)、GPT-2 Small(117M/124M)、GPT-2 Medium(345M/334M);Small 和 Medium 同时用作成员推断的参考模型(此时目标模型即 XL 本身)。
    • 数据:每种生成策略 200,000 条样本(每条 256 token),共 600,000 条;18 种配置各取 100 条候选,共 1,800 条人工核验。
    • 基线:top-n 采样 + 困惑度排序的 strawman 攻击(Section 4)。
    • 指标:每配置 100 条候选中确认为 memorized 的条数(true positive rate);记忆强度用 k-eidetic memorization 的 k 值衡量。
    • 判定方式:人工 Internet 搜索 + OpenAI 对原训练数据做模糊 3-gram 匹配双重确认;精确出现次数由 OpenAI grep 得到。
    • 重复次数:论文未报告对同一配置的重复实验。

    主结果

    18 种配置每配置 100 条候选中确认为逐字训练样本的条数(据 Table 2):

    表格较宽,可左右滑动

    推断策略Top-nTemperatureInternet
    Perplexity9339
    Small414258
    Medium383345
    zlib594667
    Window332858
    Lowercase532260
    Total Unique191140273
    • 全部配置合计确认 604 条唯一记忆样本,聚合 true positive rate 33.5%(Section 6.2)。
    • 作者称 Internet 条件生成最有效;直接用困惑度做成员推断效果差(top-n 和 temperature 下仅 9% 和 3%),比较类指标更好。
    • Figure 3 显示多数样本沿对角线分布(一个模型下似然高则另一个也高),左上角的离群点(GPT-2 困惑度低而 zlib 熵高)更可能是记忆样本。

    记忆内容的类别与敏感性

    • 类别统计(Table 1,604 条,可属多类):新闻 109、日志/错误报告 79、许可证/条款 54、命名条目列表 54、论坛/Wiki 53、可解析 URL 50、具名个人 46、推广内容 45、高熵串(UUID、base64)35、联系信息 32、代码 31、配置文件 30、宗教文本 25 等。
    • 个人信息:46 条含个人姓名(不含新闻中的公众人物);32 条含联系信息,其中 16 条是企业、16 条是私人个体的联系方式;另提取到仅出现在一个训练文档中的 IRC 对话用户名。
    • k = 1 高熵样本(Table 3):9 个例子均为只出现在一个训练文档中的随机串,长度 10–87 字符,文档内出现 10–311 次;作者称最好情况下抽出 87 字符、全训练集共出现 10 次的序列。
    • 更长序列(Section 6.4):用 beam-search 式解码扩展已记忆样本,可抽出 1450 行逐字源代码及完整的 MIT、Creative Commons、Project Gutenberg 许可证。

    模型规模与插入频率(Section 7)

    • 设置:以单一 pastebin 文档中重复次数不同的 Reddit URL 为自然 canary,用两种难度的方式提取(直接 top-n 采样 10,000 条;或额外给出 URL 前 6 字符并用 beam search),在 XL、Medium、Small 三个变体上测试。
    • 结果(Table 4):较难设定下,XL 抽出所有插入 33 次及以上的 URL,Medium 抽出一半,Small 一个也抽不出;更易设定下 Medium 多抽出 4 条,Small 只抽出插入 359 次的那一条。
    • 作者解读:更大的模型记忆更多训练数据;对最大的模型,插入 33 次即发生完全记忆。作者另称在一个设定中 1.5B 模型记忆的内容超过 124M 模型的 18 倍。

    其他消融与分析

    • 上下文依赖(Section 6.5):Internet 条件找到的 273 条样本,用最初生成它们的前缀均无法稳定复现;但给出记忆内容之前的全部上文后几乎全部可高概率复现。
    • π 示例:提示"3.14159"贪心解码给出前 25 位;beam-search 式方法抽出 500 位;提示"pi is 3.14159"贪心给出 799 位;再加"e begins 2.7182818"上下文则给出 824 位。
    • 各策略找到的类别差异(Table 6、7):zlib 多找到非稀有文本(仅 1 条高熵样本),Small/Medium 策略分别找到 13 和 10 条高熵样本。
    • 去重比例(Figure 4 标题):top-n 样本 2.6% 重复、Internet 7.1%、Temperature 0.6%。
    • 负面结果:作者称基线攻击找到的记忆内容几乎都可能在训练集中出现多次(大 k);部分可解析 URL 找不到来源,未计入记忆样本。
  5. 有什么可以进一步探索的点?

    作者列出前缀选择、定向攻击、微调继承记忆等方向;实验只覆盖 GPT-2 系列与非定向抽取。

    作者指出的局限与后续方向

    • 抽取量是宽松下界(Section 9):只人工检查了 1,800 个候选,若从更多候选出发可能找到更多记忆内容;开发更好的抽取技术(包括针对特定内容的定向攻击)是未来方向。
    • 前缀选择可改进(Section 9):目前只是尝试高质量前缀并希望触发记忆,更好的前缀选择策略可能发现更多记忆数据。
    • 为何部分样本损失异常低(Section 9):平均训练损失仅略低于验证损失,但仍有样本损失异常低,理解原因是重要的未来问题。
    • 微调与记忆的关系(Section 8):微调可能让模型"忘记"预训练记忆,也可能引入新的隐私泄露;探索记忆如何被微调模型继承是未来方向。
    • 缓解措施均不完整(Section 8、9):差分隐私在网页数据上如何有原则地应用尚不清楚;数据清洗是不完美的第一道防线;需要能在数十亿参数规模下不牺牲准确率或训练时间的新隐私训练方法。
    • 审计(Section 8):作者提出用本文方法及现有攻击审计语言模型的实际隐私水平,作为未来方向。

    实验覆盖范围

    • 被测模型为 GPT-2 XL、Medium、Small 共 3 个变体,均来自同一模型家族和同一训练数据。
    • 攻击为非定向抽取;论文明确不做针对特定用户的定向攻击(Section 3.2)。
    • 每种生成策略生成 200,000 条样本,人工核验的候选共 1,800 条(每配置 100 条);论文未报告同一配置的重复实验次数。
    • 记忆判定由四位作者之一人工完成并经 OpenAI 对原训练数据确认;论文未报告人工判定的一致性比例。
    • 规模与频率实验(Section 7)只使用单一 pastebin 文档中的 Reddit URL 作为自然 canary。
  6. 总结一下论文的主要内容

    作者提出黑盒训练数据抽取攻击,从 GPT-2 中确认 604 条逐字训练样本,并给出记忆化定义与缓解讨论。

    一篇关于语言模型训练数据隐私的攻击论文,针对"大模型不过拟合就不会记忆训练数据"的主流假设。

    • 问题:在私有数据上训练的大语言模型可能被黑盒查询逐字抽出训练样本,造成数据泄露与 contextual integrity 侵害;此前抽取攻击只在小模型或人工设定下演示过。
    • 方法:提出 k-eidetic memorization 定义(串可抽取且出现在至多 k 个训练文档中),并设计两阶段攻击——用 top-n、衰减温度、Internet 前缀三种策略各生成 200,000 条样本,再用六种成员推断指标(困惑度、与 Small/Medium 比较、zlib 熵比、小写化、滑动窗口)排序,每配置取 100 条候选,人工搜索加 OpenAI 对原训练数据的 3-gram 匹配双重确认。
    • 主结果:1,800 条候选中确认 604 条唯一逐字训练样本,聚合 true positive rate 33.5%;最佳配置(Internet 生成 + zlib 推断)为 67%(Table 2)。
    • 内容敏感性:提取物包括 46 条具名个人、32 条联系信息(其中 16 条属私人个体)、50 条可解析 URL、31 段代码,以及 9 个只出现在一个训练文档中的 k = 1 高熵随机串(Table 3)。
    • 规模效应:作者报告更大模型记忆更多——自然 canary 实验中 XL 抽出所有插入 33 次及以上的 URL,Small 在较难设定下一条也抽不出(Table 4);作者另称一个设定中 1.5B 模型记忆量超过 124M 模型的 18 倍。
    • 作者结论:训练数据抽取是实际威胁,记忆化不需要过拟合;差分隐私、数据清洗、去重、下游过滤和审计等缓解方向各有弱点、均不完整,作者认为需要在不牺牲准确率与训练时间的前提下发展新的隐私训练方法。
阅读原文arxiv.org