跳到主要内容

AI 系统中的差分隐私:'我们添加了噪声'究竟意味着什么

· 阅读需 13 分钟
Tian Pan
Software Engineer

大多数将"差分隐私"视为合规复选框的团队实际上并没有得到保护。他们在流水线的某个环节添加了噪声——也许是在微调时添加到梯度上,也许是在检索时添加到查询嵌入上——然后得出结论认为问题已经解决。合规文档写着"已启用 DP",工程团队继续前进。

他们没有做的是:定义 epsilon 预算、核算系统将服务的每一次查询所消耗的预算,或者验证其隐私损失是否受到有效约束。在实践中,"我们添加了噪声"与"我们拥有有意义的隐私保证"之间的差距,正是大多数现实世界 AI 隐私事件发生的地方。

本文就是关于这个差距的:差分隐私对 LLM 实际承诺了什么,这些承诺在哪里失效,以及团队做出的工程决策——通常是隐性的——如何决定他们的 DP 部署是真正的保护还是表面文章。

DP 实际提供的保证(以及它不提供的保证)

差分隐私给你一个数学上的界:对于任何两个仅相差一条记录的训练数据集,观察者能够判断出你使用了哪个数据集的概率变化不超过 e^ε 倍,再加上一个小的失败概率 δ。Epsilon 是隐私损失预算。Epsilon 越小,隐私保护越强。Delta 是该界发生灾难性失败的概率——通常设置远小于 1/n,其中 n 是数据集大小。

这个界是关于可区分性的声明,而不是关于模型可以输出什么的声明。攻击者无法可靠地确定某个特定个体是否在你的训练数据中。这就是保证。DP 不承诺模型永远不会逐字输出训练数据。它不能防范侧信道攻击、提示注入或训练前收集的数据。它不保护你在推理时检索的文档中的数据,只保护训练期间嵌入权重中的数据。

最常见的失败模式是将训练时的保证视为覆盖推理时的行为。用 DP-SGD 训练的模型仍然运行在接收用户查询的服务器上。这些查询不受训练时 DP 的保护。你通过 RAG 添加的检索语料库也不受保护。一个团队可以如实地说他们的 LLM 是用差分隐私训练的,而他们的生产系统在每次请求时都会泄露敏感数据——因为他们保护了错误的表面。

模型实际上记忆了什么——以及如何衡量它

在推断 DP 保护什么之前,你需要了解模型在没有 DP 的情况下会记忆什么。

从 2021 年开始并延续到 2024 年的研究表明,LLM 会大规模逐字记忆训练数据。攻击方法很简单:用来自可能训练文档的前缀提示模型,然后检查补全是否与实际文档匹配。大规模来看,这从生产模型中提取了数千兆字节的训练数据——包括电子邮件、代码和个人信息。最近,一种"分歧攻击"打乱了对齐训练的行为,导致模型以正常操作约 150 倍的速率输出记忆的训练数据。

成员推断攻击(MIAs)使这个问题可以量化。攻击问的是:给定一个文本样本,攻击者能确定它是否在训练集中吗?没有 DP 时,完全微调在成员推断上达到约 97.8% AUC——意味着攻击者几乎可以确定某条记录是否被使用过。应用了任意量的 DP 后,该数字降至约 58% AUC。随机猜测是 50%。所以 DP 训练确实提供了实质性保护:你从"攻击者几乎确定"变为"攻击者有微弱优势"。但你不会降到零。

实用的测量工具是子序列困惑度动态。现代成员推断不仅仅查看模型在候选记录上的损失——它还查看损失如何跨子序列变化。参与训练的文档往往显示出具有特征性的困惑度尖峰和下降模式,而未参与训练的文档不会表现出这种模式。

如果你在敏感数据上部署微调后的模型,你应该在生产前对其运行成员推断攻击。这不是高深的安全研究——这是一项应该纳入你的模型评估流水线的基本验证。

Epsilon 预算:每个人都避免明确做出的决定

Epsilon 是团队保持沉默的地方。团队会实现 DP-SGD、调整噪声倍增器、运行训练任务,然后发布模型——而从未写下他们实现了什么 epsilon 或者他们的目标 epsilon 是什么。这不是疏忽;这是一个将 DP 视为合规信号而非工程约束的隐性决定。

以下是这些值在实践中实际意味着什么:

  • ε = 0.1–1:强隐私,对于复杂 NLP 任务几乎无法使用。在严格解释的情况下,医疗/HIPAA 场景需要此级别。
  • ε = 3–8:有意义的保护。在大多数 NLP 基准上,性能比非私有基准下降 5–10%。这是 Google 的生产 Gboard 训练(每轮 ε = 8.9)和 Apple 本地 DP 部署(ε = 4–8)所在的范围。
  • ε = 10:实践上限。低于此值时,保证是有意义的。超过此值时,e^ε 超过 22,000——对抗性优势因子太大,界在很大程度上是象征性的。
  • ε > 50:无有意义的隐私保护。你添加了噪声,但看到输出的攻击者被检测到成员身份的可能性要高 5 万亿倍。当团队优化精度而非隐私时,朴素实现通常会落在这个范围。

不那么明显的问题是组合性。隐私预算不是免费的——它会随着你的系统回答的每一个查询而消耗。如果你将 ε = 5 设置为你的"训练时隐私预算",然后忽略推理查询也消耗预算这一事实,你将在生产中耗尽实际的累积隐私预算。一个工程团队发现他们在上线三天内就消耗了整个隐私预算。此后的每一个查询都实际上是非私有的,而系统没有给出任何警告。

生产部署需要隐私里程计:持续跟踪所有查询的累积 epsilon 消耗,一旦预算耗尽就实施严格的限制或拒绝请求。大多数 AI 平台默认不存在这种基础设施。你要么自己构建它,要么它就不存在。

DP-RAG:尚无好答案的检索-隐私权衡

加载中…
Let's stay in touch and Follow me for more thoughts and updates