文 / Nicholas Carlini,Google Research 研究科学家

基于机器学习的语言模型经过训练后,能够预测一句话中的下一个单词,随着能力越来越强大,这样的语言模型也变得更加普遍和实用,推动问答系统和翻译等多个应用领域取得突破性的进展。但语言模型在不断发展的同时,难以预料的新风险也随之而来,研究社区因此必须积极主动地想出新方法来缓解潜在问题。

  • 问答系统
    https://arxiv.org/abs/1906.08237

  • 翻译
    https://ai.googleblog.com/2020/06/recent-advances-in-google-translate.html

其中一种新风险是模型可能会泄露其训练数据中的细节。尽管这可能是所有大型语言模型都存在的隐患,但如果使用私人数据训练的模型公开可用,可能还会造成其他问题。因为这些数据集的体量很大(数千亿字节)并且提取自各种来源。即便使用公开数据对模型进行训练,有时仍然可能包含敏感数据,如个人身份识别信息 (PII) :姓名、电话号码、地址等。这就会造成一种可能性,即是用此类数据训练的模型会在其输出中可能会透露一些私人信息。因此,我们有必要识别并尽可能减少此类泄漏的风险,并制定策略以解决未来可能面对的同类潜在问题。

如果使用“East Stroudsburg Stroudsburg...”这样的前缀给 GPT-2 语言模型提词,它会自动填充一长段文本,这段文本包含 GPT-2 训练数据中所囊括的特定人员的全名、电话号码、电子邮件地址和实际地址

  • GPT-2
    https://openai.com/blog/better-language-models/

在与 OpenAI、Apple、斯坦福大学、加州大学伯克利分校以及美国东北大学合作进行的“从大型语言模型中提取训练数据 (Extracting Training Data from Large Language Models)” 研究中,我们证明,只需要能够查询预先训练过的语言模型,就可以从模型已记忆的训练数据中提取特定片段。由此可见, 训练数据提取攻击 (Training Data Extraction Attack) 已构成对 SOTA 大型语言模型的实际威胁。这项研究传达出关键的预警信号,让研究人员知晓这类风险,以确保他们可以采取措施来弥补漏洞。

  • 从大型语言模型中提取训练数据
    http://arxiv.org/abs/2012.07805

语言模型攻击研究的道德问题

如果一个模型公开可用,但用于训练该模型的数据集并未公开,此类模型最有可能受到训练数据提取攻击的危害。然而,如果我们对这类数据集进行研究可能会带来可怕的后果,因此我们对 GPT-2 进行了训练数据提取攻击的概念验证。

GPT-2 是由 OpenAI 开发的公开可用的大型语言模型,仅使用公开数据进行训练。虽然这项研究专门针对 GPT-2,但我们可以通过研究结果了解到大型语言模型一般可能存在哪些隐私威胁。

正如与隐私和安全相关的其他研究一样,在实际实施攻击之前,考虑此类攻击的道德问题非常重要。为了尽可能降低这项研究的潜在风险,我们研究的训练数据提取攻击方案是利用公开可用的数据开发而成。而且,GPT-2 模型本身于 2019 年 OpenAI 公开,用于训练 GPT-2 的数据来源于公共网络,遵循 GPT-2 论文中所载数据收集流程的任何人都可以下载该训练数据。

  • GPT-2 论文
    https://d4mucfpksywv.cloudfront.net/better-language-models/language-models.pdf

此外,根据计算机安全披露相关规范,我们联系了其 PII 被提取的人士,并在出版物中引用此类数据之前获得了他们的许可。另外,在这项研究的所有相关文章中,我们隐去了任何可识别个人身份的个人识别信息。在分析 GPT-2 时,我们还与 OpenAI 展开了密切合作。

训练数据提取攻击

语言模型使生成大量输出数据变得非常容易,这是其设计用途之一。通过向模型录入随机短语,模型可以生成无数个延续 (Continuations),也就是让句子更可能变得完整而可能采用的短语。大多数情况下,这些延续是合理文本组成的无害字符串。例如,当我们要求语言模型预测字符串“Mary had a little…”的延续时,语言模型对于下一个词条是单词“lamb”有很高的信心。但是,如果在某个训练文件中字符串“Mary had a little wombat”碰巧多次重复出现,则模型会预测下一个词条是“wombat”。

训练数据提取攻击的目标则是筛选语言模型的数百万个输出序列,并预测模型会记忆哪些文本。为实现该目标,我们利用了模型往往对其直接从训练数据获取的结果更有信心这一事实。利用成员推断攻击 (Membership Inference Attacks),我们能够查看模型对于特定序列的置信度,从而预测训练数据中是否使用了某个结果。

  • 成员推断攻击
    https://www.cs.cornell.edu/~shmat/shmat_oak17.pdf

这项研究主要的技术贡献在于开发出一种准确度较高的成员推断方法,以及以鼓励输出记忆内容的方式从模型抽样的技术。我们测试了多种不同的抽样策略,其中最成功的策略能够以各种各样的输入短语为条件生成文本。然后我们对比了两种不同语言模型的输出。如果其中一个模型对某个序列有较高的置信度,但另一个准确性相同的模型对该序列的置信度较低,这有可能是因为第一个模型记忆了相关数据。

实验结果

在来自 GPT-2 语言模型的 1800 条候选序列中,我们提取到了超过 600 条来自公开训练数据的被记忆序列,由于需要人工验证,总数量受到了限制。被记忆的示例序列涵盖各种内容,包括新闻标题、日志消息、JavaScript 代码、PII 等等。其中许多示例序列在训练数据集中很少出现,但仍然被模型记忆了。例如,我们提取的许多 PII 样本只存在于数据集中的单个文档中。但是,在大多数情况下,原始文档会包含多个 PII 实例,因此,模型仍会将其视为高似然度文本进行学习。

最后,我们还发现,语言模型越大,就越容易记忆训练数据。例如,在一次试验中,我们发现拥有 15 亿参数的 GPT-2 XL 号模型比拥有 1.24 亿参数的 GPT-2 小号模型记忆的信息多 10 倍。鉴于研究社区训练的模型规模比这大 10 倍乃至 100 倍,这意味着,随着时间的推移,语言模型会变得越来越大,需要更多的工作来监控和缓解该问题。

经验教训

尽管我们仅针对 GPT-2 演示了这些攻击,但其结果揭示了所有大型生成式语言模型都具有这种潜在缺陷。这些攻击有可能出现,就意味着会对未来使用这类模型的机器学习研究产生重要影响。

幸运的是,有多种方法可以缓解这个问题。最直接的解决方案是确保不会使用任何可能有问题的数据来训练模型。但这个解决方案实践起来会有难度。

最道德的方法是使用差分隐私  (Differential privacy),即使用数据集进行训练的同时不透露单个训练示例的任何细节,从而确保对机器模型的训练兼顾隐私。在 TensorFlow 中,可以使用现有优化器的简易替换工具 tensorflow/privacy 模块(或 PyTorch 或 JAX 中的类似工具)来实现差分隐私。但这种方法仍然存在局限性,也不会阻止模型记忆重复频率足够高的内容。如果无法防止模型记忆内容,我们建议至少要衡量模型记忆了多少,以便采取适当的应对措施。

  • tensorflow/privacy
    https://github.com/tensorflow/privacy

  • 衡量
    https://research.google/pubs/pub46702/

语言模型不断展现出强大的实用性和灵活性——然而,就像所有创新成果一样,它们也可能带来风险。以负责任的方式开发语言模型就意味着要主动识别这些风险,并制定可以消除风险的方法。我们希望,我们为揭示大型语言模型目前存在的弱点所付出的努力,可以引起更广泛的机器学习社区对该挑战的重视,并激励研究人员继续开发有效技术来减少模型记忆的内容。

致谢

共同参与这项研究的人员包括 Florian Tramer、Eric Wallace、Matthew Jagielski、Ariel Herbert-Voss、Katherine Lee、Adam Roberts、Tom Brown、Dawn Song、Ulfar Erlingsson、Alina Oprea 和 Colin Raffel。

更多 AI 相关阅读:

  • 推出 Pr-VIPE:识别图像和视频中的姿态相似度

  • 基于端到端可迁移深度强化学习的图优化

  • 智能滚动:让转录后的文本编辑、共享和搜索更容易

  • Vision Transformer:用于大规模图像识别的 Transformer

  • Coral:让终端人工智能更加触手可及

大型语言模型中的隐私考量相关推荐

  1. 交通变革中的ChatGPT:当智能交通遇见大型语言模型

    ✦ 最近爆火的ChatGPT 是由 OpenAI 开发的一种大型语言模型 (LLM) ,拥有超过1750亿个参数,特别是在自然语言处理(NLP)方面有着令人印象深刻的能力.ChatGPT的出现引爆各行 ...

  2. 谷歌、OpenAI等警告:BERT、GPT-3等大型语言模型都有一个重大缺陷,很危险...

    2020-12-17 00:14:54 作者 | 青暮 语言模型已经变得越来越强大,可胜任的任务也越来越多,这些仅仅以预测句子中下一个单词进行训练的模型,已经在诸如问答.翻译等应用程序中取得了突破性的 ...

  3. 【AI 人工智能】大型语言模型的实现技术原理与应用

    文章目录 大型语言模型的实现技术原理与应用 大模型发展历史 1.大模型的起源 2.代表性大模型 3.大模型背后的关键技术 4.大模型的影响 5.展望未来 技术原理及概念 一.概述 二.大型预训练语言模 ...

  4. GPT总设计师:大型语言模型的未来

    来源 | Stanford eCorner OneFlow编译 翻译 | 杨婷.宛子琳.贾川 回头来看,ChatGPT的横空出世验证了Ilya Sutskever此前预想的AI发展方向. 在OpenA ...

  5. 中文医学大模型“本草”(原名华驼):医学知识增强在中文大型语言模型指令微调上的初步探索...

    来自:哈工大SCIR 深度学习自然语言处理 分享 进NLP群->加入NLP交流群 1.背景 当前大规模语言模型(Large Language Model)在通用域自然语言处理任务上已获得巨大的成 ...

  6. 一文看懂多模态大型语言模型GPT-4

    文章目录 前言 什么是GPT-4 GPT-4 VS GPT-3.5 GPT-4与其他模型对比 GPT-4视觉输入 GPT-4局限性 写在最后 前言 近日,OpenAI发布了最新版的生成预训练模型GPT ...

  7. 从ChatGPT到ChatCAD:基于大型语言模型的医学图像交互式计算机辅助诊断

    基本信息 1. 标题:ChatCAD: Interactive Computer-Aided Diagnosis on Medical Image using Large Language Model ...

  8. 大型语言模型的推理演算

    作者|kipply 翻译|杨婷.徐佳渝.贾川‍‍ 本文详细阐述了大型语言模型推理性能的几个基本原理,不含任何实验数据或复杂的数学公式,旨在加深读者对相关原理的理解.此外,作者还提出了一种极其简单的推理 ...

  9. LTM提示使大语言模型中的复杂推理成为可能

    发表于2023年ICLR: 论文链接:https://arxiv.org/pdf/2205.10625.pdf 文章目录 一.摘要 二.介绍 三.Least-To-Most prompting 四.结 ...

最新文章

  1. CSDN博客转载攻略
  2. 27. Leetcode 92. 反转链表 II (链表-反转链表)
  3. 实现延时任务的 4 种实现方案!
  4. Sublime Text 2搭建Go开发环境,代码提示+补全+调试
  5. 防止抓取html代码,网页中用html代码注释的内容会被抓取吗
  6. “开发者的面试完全是无稽之谈”
  7. 吴裕雄 python 机器学习——人工神经网络与原始感知机模型
  8. jQuery学习_具备吸附功能的拖曳框
  9. Centos 7 zabbix 实战应用
  10. 【图像分割】基于matlab 2D水平集三维医学图像分割【含Matlab源码 584期】
  11. php中in array函数_PHP函数in_array()使用详解
  12. Expo大作战(四十一)【完】--expo sdk 之 Assets,BarCodeScanner,AppLoading
  13. Zend与PHP之间到底是什么关系
  14. 360网址导航的搜索引擎默认怎么改为百度
  15. android然后让list刷新到底部,Android笔记之:App列表之下拉刷新的使用
  16. 点击网页弹出窗口的js代码
  17. excel删除无尽空白行_Excel2019如何批量删除表格中的空白行?
  18. python中 glob.glob
  19. H5 MediaDevices方法,调用摄像头、屏幕录像功能
  20. C++考研复试面试题

热门文章

  1. R语言求拟合函数图形的交点坐标
  2. nginx简单配置代理服务器
  3. 软件版本中的Alpha,Beta,Gamma,RC等
  4. 我也说说Nginx解决前端跨域问题,正确的Nginx跨域配置(后端Nginx CORS跨域配置、CORS设置,后端允许跨域请求)
  5. 解决tensorflow.python.framework.errors_impl.NotFoundError错误
  6. iOS重签名 砸壳,微信多开
  7. LeetCode 741. 摘樱桃___贪心算法篇__失败
  8. android 获得手机运营商
  9. 单片机并口开发经验记录
  10. 一篇关于JSPatch, 线上直接改BUG的利器,OC语法转换时遇到的坑