摘要

  • 背景问题

    • 在用户设备上训练模型(on-device training),以保护分布式的用户隐私数据,联邦学习,数据不出客户端。

    • 但是这种方式有很多缺点:

      1. 用户设备算力和存储不足以训练大模型;

      2. 训练过程需要大量通信(服务端与客户端之间的通信)和计算;

      3. 调试和部署难度大。

  • 提出的方法

    • PrE-Text 能生成差分隐私保护的 合成文本数据

    • 这些数据可以替代真实用户数据来训练模型,从而避免直接在设备上训练。

引言

1. 研究背景

  • 在很多应用中(如手机键盘自动补全、大语言模型的指令跟随),如果能用私有用户数据来训练模型,性能会显著提升。

  • 但用户数据敏感,需要用算法保证隐私。

  • 联邦学习 (Federated Learning, FL) + 差分隐私 (DP) (合称 DP-FL)是常见方案:在用户设备上训练模型,再将梯度或模型更新上传到服务器聚合。

2. 现有问题(on-device / DP-FL 的缺陷)

  1. 用户设备算力和存储有限,难以训练 大语言模型 (LLMs),毕竟现在LLM的性能很好。

  2. 客户端训练需要高通信和高计算成本。

  3. 难以部署和调试,需要大量基础设施投入。

3. 新思路:差分隐私合成数据 (DP Synthetic Data)

  • 新范式:让中央服务器利用私有客户端数据生成 差分隐私合成文本数据,然后在服务器端微调预训练语言模型。

  • 好处:

    • 不受设备算力限制,可直接在大模型上用;

    • 调试方便,训练过程可观察;

    • 不需要复杂的端上训练基础设施;

    • 合成数据可反复使用而 不增加额外隐私开销(DP 的后处理性质)。

4. 现有方法的不足

  • 现有的 DP 合成文本数据的质量太差,不能用来有效训练 LLM。

  • 有工作(Lin et al., 2023)提出 Private Evolution (PE),在图像领域能生成高质量的 DP 合成图像,但没解决文本问题。

5. 本文贡献:PrE-Text 方法

  1. 提出算法 PrE-Text

    • 改造 PE,使之能用于文本生成。

    • mask-filling 模型(如 BERT、BART)替代图像领域的扩散模型。

    • 生成初步 DP 文本后,用大型语言模型(在公共数据上训练的)进行后处理扩增,从而得到更多高质量合成数据(依旧不增加隐私成本)。

  2. 实验验证

    • 小模型(可部署在设备端):在隐私预算 ϵ=1.29 和 ϵ=7.58 下,PrE-Text 合成数据训练的小模型性能 大于 on-device 训练的模型,同时通信成本降低约 100倍,计算降低 6倍,训练轮次减少 9倍。

    • 大模型(只能在服务器端运行的 LLM):在 PrE-Text 合成数据上微调后,比不微调的预训练 LLM 性能更好。

    • 发现:可以在 联邦场景下 用私有数据 微调大语言模型,而不需要把模型放到用户设备上。

前提知识

数学基础

  1. 邻近数据集 (Neighboring datasets)

    • 在联邦学习场景中,如果两个数据集只在 一个用户的数据 上不同(比如 X 比 X′ 多了一个用户,或少了一个用户),就称它们为“邻近数据集”。

    • 这里采用的是 用户级差分隐私 (user-level DP) 的定义,而不是样本级。

  2. 差分隐私 (Differential Privacy, DP)

    • 定义了一个随机算法 A 的 (ϵ, δ)-DP 条件:在任意邻近数据集 X 和 X′ 上,输出落在某个集合 E 的概率不会相差太大(差异受 ϵ 和 δ 控制)。

    • 这是保证隐私的核心数学定义。

  3. 高斯机制 (Gaussian Mechanism)

    • 本文采用高斯机制来实现 DP:在要发布的统计量上加入合适规模的高斯噪声。

    • 噪声大小与 查询的敏感度 有关。

  4. L2 敏感度 (L2 sensitivity)

    • 定义了函数 g 的 L2 敏感度,即在任意两个邻近数据集上,g(X) 和 g(X′) 的输出差的最大 L2 范数。

    • 敏感度决定了要加多少噪声才能满足 DP。

问题定义

1. 客户端设置(Private clients setup)

  • 总共有 N 个用户设备(客户端),每个客户端 i 拥有一个语言数据集 Di​,里面包含若干语言样本。

  • 将客户端划分为两类:

    • 训练客户端 Ctrain:数据可以用于训练模型或生成合成数据。

    • 测试客户端 Ctest​:数据完全不可见,仅用于最终评估模型性能。

  • 假设每个客户端数据集 Di 都是从某个分布 D^ 独立抽取的。

2. 模型类型划分

  • on-device models(设备端模型):能放在用户设备上运行的小模型,即客户端模型。

  • on-server models(服务器端模型):太大,无法放在客户端设备上的大模型(比如 LLMs),只能部署在服务端。

3. 服务端设置(Server setup)

  • 服务器有 预训练好的 LLMs(例如 LLaMA 系列),这些模型只在 公开数据 上训练过。

  • 服务器的目标是利用客户端数据(在隐私保护下)来提升这些模型。

4. 任务

  • 聚焦于 语言建模任务(next-token prediction):给定前面一段文本,预测下一个 token。

  • 最终目标:得到一个在 测试客户端 Ctest 上表现良好 的语言模型。

5. 隐私假设

  • 假设服务器是 honest-but-curious(诚实但好奇)

    • 它会按照协议操作,但会尝试推断用户隐私,然后可能会记住这些隐私信息。

  • 使用 安全聚合 (secure aggregation):服务器看不到单个客户端的上传,只能看到加总后的结果。

  • 客户端在上传前会加上 差分隐私噪声,避免服务器通过聚合结果反推出单个用户数据。

  • 目标是学习一个 满足 (ϵ, δ)-差分隐私(用户级 DP) 的语言模型。

算法

核心思想

  • 公共大模型本身有一定概率生成和私有数据相似的样本。

  • 因此,可以通过一个 多轮的私有引导过程,逐步把生成模型“推向”用户私有数据分布,从而生成 DP 合成数据。

  • 相比原始 PE(主要用于图像),PrE-Text 的改进包括:

    1. 适配文本领域(用 mask-filling 替代 diffusion);

    2. 利用整个进化过程的所有迭代结果,而不只是最后一轮;

    3. 增加后处理扩展(post-processing),用 LLM 扩充 DP 种子数据。

算法流程

  1. 初始样本生成 (Population)

    • 从公开数据或公共生成模型中采样,得到初始合成样本集 S1。

    • 保证这些样本不含用户隐私。

  2. 客户端投票 (Clients vote)

    • 在第 t 轮,将合成样本 St​ 发给所有客户端。

    • 每个客户端比较这些样本与自己私有数据的相似度(基于 embedding 距离),并生成直方图投票。

    • Lookahead 技巧:对每个样本生成 K 个变体,再计算平均 embedding,提高相似度评估的鲁棒性。

    • 隐私保护步骤
      a) 向直方图添加 DP 噪声;
      b) 用安全聚合合并所有客户端直方图;
      c) 通过阈值过滤掉主要是噪声的样本(丢弃样本)。

  3. 样本选择 (Surviving samples)

    • 根据聚合投票结果,采样出新的合成样本集 St+1′。

    • 高得票的样本被更大概率保留。

  4. 生成变体 (Variation)

    • 对 St+1′ 的样本进行多次 mask-filling

      • 随机遮蔽部分 token;

      • 用 RoBERTa-large 补全;

      • 重复 W 步,得到新的变体样本集 St+1。

  5. 更高效地利用迭代 (Use iterates efficiently)

    • 不仅使用最后一轮的 St​,而是保留每一轮的 St′。

    • 将所有轮次的 St′ 合并,作为最终的 DP 种子集。

  6. 后处理扩展 (Expand with LLMs)

    • 发现 DP 种子数据质量不足以直接微调 LLM,于是加入扩展步骤:

      • 选取 DP 种子集中的 3 个样本作为参考;

      • 用 LLaMA-2-7B 生成风格相似的新样本;

      • 这样得到更大、更高质量的合成语料。

    • 由于差分隐私具有 后处理性质,这一步不会增加隐私泄露风险

什么是直方图

举个例子:假设服务器生成了 5 条候选句子:

  • s1: "I love pizza"

  • s2: "The stock market fell"

  • s3: "Good morning"

  • s4: "Let’s play football"

  • s5: "Quantum computing is hard"

而我的私有数据主要是日常聊天,比如 "Good night", "Good morning", "See you"。

那么我客户端的直方图可能是:

  • s1  = 0(我的数据里没人说过类似的)

  • s2 =  0

  • s3 = 10(和我数据里 "Good morning" 很像)

  • s4 = 2(有点像聊天习惯)

  • s5 = 0

所以我的直方图就是:

hi=[0,0,10,2,0]h

为什么要加噪声?

这个直方图其实已经包含隐私:

  • 如果我投了很多票给 "Good morning",就说明我私有数据里经常出现类似的句子。

  • 如果服务器直接看到这个直方图,就可能推断我的聊天习惯。

解决办法

  • 在上传前,每个客户端在直方图上加 高斯噪声,比如:

  • 然后通过 安全聚合 把所有客户端的直方图加起来,服务器只看到“全体用户合计的模糊投票结果”,而不会知道某个用户投了多少票。

举个例子理解:

可以把 PrE-Text 想象成一个“进化选拔赛”:

  1. 我们想生成一些“假数据”(合成文本),它们要长得尽可能像用户的真实数据,但不能泄露隐私。

  2. 这个过程就像一场选拔赛:

    • 先随便找一些“候选人”(初始文本,来源于公开数据或模型随机生成)。

    • 把这些候选人交给所有用户“秘密投票”:哪个看起来最像他们自己的数据。

    • 投票加上隐私噪声 → 聚合到服务器 → 得出“优胜候选人”。

    • 优胜候选人再“变异”生成新的一批候选人。

    • 重复多轮,逐渐得到越来越像真实数据的“假数据”,但始终保证差分隐私。

第 1 步:初始化(Population)

  • 先准备一批 初始文本(比如随机生成的句子,或从公共数据抓的句子)。

  • 这些文本完全不包含私有数据。

第 2 步:用户投票(Voting)

  • 把这些文本发送给所有用户。

  • 每个用户检查这些文本里,哪些句子最像自己手机里的私有数据(但用户不会把数据交出去)。

  • 用户把“相似度”记成一个直方图:哪个生成的句子更像,就投票更多。

保护隐私的方法

  • 用户的直方图要加 差分隐私噪声(避免服务器直接猜到用户数据)。

  • 然后所有用户的直方图用 安全聚合加起来,服务器只能看到合计投票数,而不是谁投了什么。

第 3 步:筛选样本(Selection)

  • 服务器根据聚合直方图,挑选“得票高”的句子,作为“幸存者”。

  • 这些幸存句子就是目前最像私有数据的候选人。

第 4 步:生成变体(Variation)

  • 对这些幸存句子进行 “变异”

    • 随机遮住一部分词(MASK)。

    • 用一个预训练好的填空模型(RoBERTa)来补全。

    • 反复多次,就得到一堆稍有变化的新句子。

  • 这样可以产生新的候选人,进入下一轮比赛。

第 5 步:多轮进化(Iterates)

  • 不只是最后一轮的候选人有用,每一轮产生的候选人都有价值。

  • 所以我们把每一轮的结果都保存下来,合并成一个 DP 种子集

第 6 步:后处理扩展(Expand with LLM)

最后会得到

  • 种子集里的句子质量还不够高,不能直接训练大模型。

  • 所以我们用一个强大的 开源 LLM(比如 LLaMA-2-7B) 来扩展:

    • 给 LLM 三个 DP 种子句子,让它“写一段风格相似的句子”。

    • 这样 LLM 可以生成数量更大、质量更高的合成数据集。

  • 由于差分隐私有 后处理不损害隐私的性质,这一步不会增加隐私风险。

  • 一个高质量的 差分隐私合成文本数据集

  • 这个数据可以用来:

    • 训练小模型(部署在手机上);

    • 微调大模型(运行在服务器端)。

  • 整个过程中用户隐私始终得到保护。

实验

设置

1. 使用的模型

  • RoBERTa-large  用来做 mask-filling(生成变体)。

  • all-MiniLM-L6-v2   用来算文本 embedding(距离计算)。

  • DistilGPT2   用来评估方法(实验主力小模型,也就是说服务端不仅有用于生成合成数据的大模型,也有专门用于任务的大模型)。

  • LLaMA-2-7B   用来做 DP 种子扩展(生成更多的高质量合成数据)。

2. 数据集

  • 基础数据:c4-English (c4-en)。

  • 从里面构造了三个子集作为 私有分布式数据

    • JOBS(招聘类文本)

    • FORUMS(论坛)

    • MICROBLOG(微博/短文本)

  • 另一个私有数据集:CODE(编程问答)。

  • 私有数据分给 1250 个客户端,并留出一部分做测试集。

  • 初始合成样本来自 c4-en 的另一部分(确保和私有数据不重叠)。

  • 还特别说明:避免数据污染(contamination) 很难,因为很多 LLM 训练数据没透明记录,这在 LLM 研究里是个未解决难题。

3. 实验任务

  • 任务:语言建模(LM task)

  • 指标:cross-entropy loss 和 accuracy

  • 场景

    • 小模型(部署在设备上)

    • 大模型(部署在服务器上)

4. 对比基线方法

分四类:

  1. ε = 0 的基线(不使用私有数据,只用公开数据)

    • c4-only:DistilGPT2 在 c4-en 的公开子集上微调。

    • Expand-only:在 c4-only 的基础上,再用 Expand 扩展成 200 万样本微调。

  2. ε = ∞ 的基线(完全忽略隐私约束,上界性能)

    • Expand-private:在公开数据 (c4-only) + 私有数据(扩展到 200 万样本)上微调。

  3. On-device 训练基线(传统的私有联邦学习方法)

    • DP-FedAvg

    • DP-FTRL(TreeRestart 变体)
       这两个是目前最常用的设备端差分隐私优化方法。

  4. 文本级差分隐私方法(Text-to-text privatization)

    • DP-Prompt (Utpala et al., 2023)

    • 思路:客户端自己运行 LLM,把原始文本做 DP 处理(比如私有改写),直接发给服务器。

    • 缺点:文本没法做安全聚合,所以需要加更大噪声,效果差。

实验一

1. 实验场景

  • 场景:用户不直接把数据发给服务器,而是保留一个小模型在设备端推理。

  • 小模型:DistilGPT2(82M 参数)。

  • PrE-Text 流程

    1. 生成 200 万条合成数据

    2. 先在公开数据(c4-only)上微调 DistilGPT2。

    3. 再用 PrE-Text 生成的合成数据上继续微调。

  • 对比对象:前面实验部分提到的所有 baselines(c4-only / Expand-only / Expand-private / DP-FedAvg / DP-FTRL / DP-Prompt)。

2. 实验结果

  • PrE-Text 在 ε = 1.29 和 ε = 7.58 的隐私预算下,都优于其他隐私方法。

  • 合理性检查:

    • ε = 0 的基线(不用私有数据)好。

    • ε = ∞ 的上界(无隐私约束)差。

  • 结论:

    • 在实际可用的隐私水平下,PrE-Text 优于传统的 on-device DP 训练方法

    • 随着合成数据生成方法的改进,PrE-Text 可能会变得更强。

3. 效率对比(PrE-Text vs. DP-FL)

主要分 通信成本计算成本 两方面:

(1) 通信成本

  • DP-FL(传统方法)

    • 每轮客户端要下载 + 上传一个 DistilGPT2 模型(82M 参数 差不多 82M 浮点数)。

  • PrE-Text

    • 每轮下载:最多 2048 个 embedding 向量(384维)差不多 80 万浮点数。

    • 每轮上传:最多 2048 个浮点数(直方图)。

  • 对比结果

    • 下载开销:PrE-Text 至少 100倍 更省

    • 上传开销:PrE-Text 41,000倍 更省

    • 而且 PrE-Text 迭代轮数少 9倍

    • 综合起来,通信成本至少降低 100倍

(2) 客户端计算成本

  • DP-FL

    • 训练 DistilGPT2,每个样本需要  3 秒(CPU-only)。

  • PrE-Text

    • 客户端只做 embedding 推理(最近邻计算),每个样本 小于 0.5 秒。

  • 对比结果

    • 每轮计算成本 PrE-Text 至少快 6倍

    • 再加上迭代轮数少 9倍,总体效率更高。

  • 注意:这虽然增加了服务器端计算量,但通常 服务器算力更充足,比占用用户设备更可接受。

实验二

1. 研究场景

  • 考虑 模型太大无法放在用户设备上 的情况(例如 LLaMA-2-7B),只能在服务器端训练和推理。

  • 用户数据仍是私有的,不能直接上传,因此需要先生成 差分隐私合成数据(DP synthetic data),再用它来微调服务器端 LLM。

2. 实验设置

  • 使用 LLaMA-2-7B 作为下游模型(替代之前的 DistilGPT2)。

  • 生成 5 万条合成数据(不是 200万,原因是大模型微调计算开销太大)。

  • 微调方法:

    • 使用 LoRA(低秩适配),rank=4,α=8

    • 优化器:AdamW

    • 学习率:0.0002

    • batch size = 512

    • 微调 1 个 epoch

  • 对比基线:

    1. 零样本 LLaMA-2-7B(不微调,只在私有测试集上评估)。

    2. Expand-private (ε = ∞):在没有隐私约束的情况下,用私有数据扩展 5 万条样本,然后微调。

    • 不考虑 on-device baselines(因为设备装不下)。

    • 不比较 DP-Prompt(之前实验效果太差,甚至不如 ε=0 baseline)。

3. 实验结果

  • PrE-Text 合成数据微调的 LLaMA-2-7B 优于零样本 LLaMA-2-7B

  • 说明:PrE-Text 提供了一种 在联邦学习场景下,隐私合规地微调大规模 LLM 的新方法。

  • 贡献:这是 首次展示 如何在隐私约束下,对无法放在设备上的大模型(LLM)进行联邦场景下的微调。

  • 意义:

    • 目前大模型厂商已经逐渐 耗尽公开训练数据

    • PrE-Text 提供了一条新路径:合成隐私数据 到 微调大模型 到 合理利用私有用户数据

实验三

1. 实验目的

  • 研究 合成数据量多少 对 PrE-Text 最终模型性能的影响。

  • 使用的设置:

    • 下游模型:DistilGPT2

    • 隐私预算:ε = 7.58

    • 数据集:4 个私有数据集(JOBS、FORUMS、MICROBLOG、CODE)

    • 合成数据规模:从 5万到200万 不等

    • 其他实验设置与前面 on-device 实验相同,只是 batch size 按比例缩放。

2. 实验结果

  • 总体趋势:

    • 模型质量 大致随合成数据量增加而 log 线性提升(对数线性关系),和之前研究 (Honovich et al., 2022) 一致。

  • 特殊情况:

    • CODE 数据集 上,性能在 100万样本左右开始 边际收益递减,在 200万样本时甚至下降

  • 结论:

    • 最佳的合成数据量 依赖于具体数据集,并不是越多越好。

相关工作

1. DP Federated Learning (差分隐私联邦学习)

  • 基本思路:模型参数发到用户本地  再 用户在私有数据上训练  再 上传差分隐私化的更新 再  服务器聚合。

  • 优化方向

    • 随机打乱(shuffle)来增强隐私 (Bonawitz et al., 2016; Girgis et al., 2021)。

    • 先在公开数据上预训练 (Xu et al., 2023c),或者选择最合适的公开数据来预训练 (Hou et al., 2023)。

    • 改进 DP-FL 本身(如不依赖随机抽样)。

  • 挑战:大模型训练越来越受关注,但大部分方法(如让用户训练模型子模块,或者仅调小部分参数)依然要求客户端 存储和推理大模型,这对设备负担很大。

  • 相关尝试:有研究尝试用基础模型生成合成数据来辅助训练小模型,但没考虑隐私问题。

2. Synthetic Data (合成数据)

  • 趋势:越来越多研究用合成数据训练语言模型。

    • 常见做法是设计 prompt 让 ChatGPT 生成数据,再用这些数据微调开源模型(如 LLaMA),来模拟 ChatGPT 的能力。

    • 但这些工作 只关注性能提升,没有隐私保证。

  • 在图像领域:常用 dataset distillation(数据集蒸馏) 方法,也被改进用于联邦场景。

3. DP Synthetic Data (差分隐私合成数据)

  • 图像领域:主流方法是用 GAN 或扩散模型 + DP-SGD 来生成 DP 数据。

  • 文本领域

    • Tang et al. (2023) 用 ChatGPT 生成 DP 文本,但需要把私有数据上传到服务器,不符合更严格的威胁模型。

    • Xie et al. (2024) 提出了 private evolution 方法生成 DP 文本,目标是提升数据质量,而本文则关注 DP 合成数据与 on-device 训练的关系

    • 也有研究探索 central-DP(模型开发者直接持有私有数据)下的 LLM 微调。

  • 最新进展

    • 一些工作探索在 central DP 场景下用 DP 合成数据微调 LLM (Yue et al., Kurakin et al., Yu et al., Ding et al.)。

    • federated setting 场景下,Wang et al. (2023a) 和 Wu et al. (2024) 提出:先用 LLM 生成合成数据,再做相关性筛选,然后仍通过 DP-FL 微调。

    • 他们提升了预测准确率,但仍然依赖 DP-FL 步骤

  • 区别与贡献

    • 这些方法通常是 DP-FL + 合成数据过滤

    • 本文的方法是 直接用 DP 合成数据替代 DP-FL,从而大幅降低客户端负担。

    • 两类方法是 互补的,可以结合

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐