面向 LLM 的差分隐私 本节摘要:DP-SGD 仍是标准——注入噪声的梯度更新提供形式化 (ε, δ) 保证。算力、内存、效用开销可观;参数高效的 DP 微调(LoRA + DP-SGD)是 2025 常见配置(ACM 2025)。两份证据存在张力:基于金丝雀(canary)的成员推断(Duan 等,2024)报告对语言模型成功有限;训练数据抽取(Carlini 等,2021;Nasr 等,2025)恢复了大量逐字记忆。调和(arXiv:2503.06808,2025 年 3 月):缝隙在于测的是什么——插入的金丝雀 vs「最可抽取」数据。新金丝雀设计实现了无需影子模型的基于损失的 MIA,并对真实数据上训练、带现实 DP 保证的 LLM 做了首个非平凡 DP 审计。
本节摘要:DP-SGD 仍是标准——注入噪声的梯度更新提供形式化 (ε, δ) 保证。算力、内存、效用开销可观;参数高效的 DP 微调(LoRA + DP-SGD)是 2025 常见配置(ACM 2025)。两份证据存在张力:基于金丝雀(canary)的成员推断(Duan 等,2024)报告对语言模型成功有限;训练数据抽取(Carlini 等,2021;Nasr 等,2025)恢复了大量逐字记忆。调和(arXiv:2503.06808,2025 年 3 月):缝隙在于测的是什么——插入的金丝雀 vs「最可抽取」数据。新金丝雀设计实现了无需影子模型的基于损失的 MIA,并对真实数据上训练、带现实 DP 保证的 LLM 做了首个非平凡 DP 审计。替代:PMixED——推理时通过 next-token 分布的专家混合做私有预测;DP 合成数据生成。新兴攻击:经 LLM 反馈的差分隐私反转——置信度分数泄漏。
对应原课程:Phase 18 · Lesson 22 ·
differential-privacy-for-llms(原英文phases/18-ethics-safety-alignment/22-differential-privacy-for-llms/docs/en.md)。前置:Phase 01 · 09,Phase 10 · 01。
阅读完本节,你应当能够:
LLM 会记忆。Carlini 等 2021 证明生产语言模型按需逐字复现训练文本。DP 是形式化防御:训练使输出可证明地对任何单个训练样本不敏感。2024-2025 证据显示 DP-SGD 必要,但部署的 ε 值可能不匹配威胁模型。
随机化算法 M 是 (ε, δ)-DP 的,若对任意两个相差一个样本的数据集与任意事件 S:P(M(D) ∈ S) <= e^ε * P(M(D') ∈ S) + δ。含义:输出分布足够接近(由 ε 参数化),使得任何单一个体的贡献无法被可靠推断,除概率 δ 外。
Abadi 等 2016。标准配方:(1) 采样小批量;(2) 计算每样本梯度;(3) 把每样本梯度裁剪到阈值 C;(4) 求和裁剪梯度,加标准差 σ*C 的高斯噪声;(5) 用噪声和更新参数。隐私代价由会计(Moments Accountant、Rényi DP accountant)跟踪。LLM 文献里报告的 ε 值因威胁模型、数据敏感度、效用目标而异,没有普遍「安全」的默认 ε——已发表示例约 ε ≈ 1-10,但仅作示例;更低 ε 通常需更多噪声、增加效用损失。
前沿模型的完整 DP-SGD 不可行。LoRA(Hu 等 2022)把梯度更新限制到小适配器,降低每样本梯度存储。LoRA + DP-SGD 是 2025 常见配置——DP 保证作用于适配器,基座模型固定。
两条证据线:
2025 年 3 月调和(arXiv:2503.06808):两者测不同东西。MIA 在插入的金丝雀上问「样本 e 在 D 里吗」;抽取问「我能恢复 D 的什么」。最可抽取样本才是隐私关心的;金丝雀低估了它,因为它们未被优化为可抽取。新金丝雀设计实现无需影子模型的基于损失的 MIA,并对真实数据上训练、带现实 DP 保证的 LLM 做了首个非平凡 DP 审计。
⚠️ 安全对齐的测量陷阱:用金丝雀 MIA 报告「DP 有效」会低估泄漏,因为金丝雀不是最可抽取的。可信的 DP 审计必须用「最可抽取」数据或新金丝雀设计,而非任意的插入样本。这是整章「评估有极限」主题在隐私维度的体现。
code/main.py 在玩具二分类数据集上模拟 DP-SGD。你可以扫噪声乘子 σ 与裁剪范数 C,跟踪 (ε, δ) 预算与准确率代价。「金丝雀攻击」插入唯一训练样本,测对数损失测试能否在 DP 前后检测到它。
def dp_sgd_step(model, batch, C, sigma): grads = [per_example_grad(model, x, y) for x, y in batch] clipped = [clip(g, C) for g in grads] # 每样本裁剪到范数 C noise = gaussian(shape=clipped[0].shape, std=sigma*C) summed = sum(clipped) + noise # 加噪求和 update(model, summed / len(batch)) epsilon = accountant.track(batch_size, sigma, C) # 累计隐私代价 return epsilon
两者以不同威胁模型为代价,绕开完整 DP 训练的效用代价。
2025 新兴攻击。用 DP 训练模型的置信度分数作为神谕,重新识别个体。即使输出不泄漏,置信度分布也可能泄漏。防御:不暴露置信度,或在暴露前截断/量化。这是 (ε, δ)-DP 训练之外的额外要求。
| 方法 | 时机 | 效用代价 | 威胁模型 |
|---|---|---|---|
| DP-SGD(完整) | 训练 | 高(前沿模型不可行) | 训练数据成员 |
| LoRA + DP-SGD | 训练(适配器) | 中(2025 标准) | 适配器训练数据 |
| PMixED | 推理 | 低 | 推理时成员 |
| DP 合成数据 | 训练 + 下游 | 中 | 合成数据下游 |
| 置信度截断 | 部署 | 低 | DP 反转攻击 |
设计要点:DP 不是「开/关」——它是 (ε, δ) 的连续权衡。可信的 DP 主张必须报告:(1) ε 与 δ 值及所用会计;(2) MIA 评估协议(用「最可抽取」数据,非任意金丝雀);(3) 是否评估置信度暴露向量(DP 反转)。三者缺一,主张不充分。
本节产出 outputs/skill-dp-audit.md:给它一份语言模型部署的 DP 主张,它审计——(ε, δ) 值、所用会计、MIA 评估协议、是否评估置信度暴露向量。
code/main.py 是独立玩具,二分类可换成真实模型微调,DP-SGD 配方 + 会计 + 金丝雀逻辑不变。
Easy:运行 code/main.py,在 σ ∈ {0.5, 1.0, 2.0} 扫描,报告 (ε, δ)-准确率权衡,识别效用塌缩点。
Medium:实现金丝雀插入与对数损失测试。测 σ=1.0 下 DP-SGD 前后的检测率。
Medium:读 Nasr 等 2025 关于训练数据抽取。为什么抽取成功在中等 ε 下不塌缩?这对「MIA 作评估」意味着什么?
Hard:设计一个完全在推理时运行的 PMixED(arXiv:2403.15638)部署。PMixED 处理而 DP-SGD 不处理的威胁模型是什么?
Hard:草拟「经 LLM 反馈的 DP 反转」攻击。设计一个限制置信度分数泄漏的对策,估算其部署代价。
下一节,我们看内容溯源的另一条技术线——水印:SynthID、Stable Signature、C2PA,以及为什么没有水印无条件鲁棒。