转载学习:字节跳动安全研究团队公布大模型联邦精调最新研究进展
论文:https://arxiv.org/pdf/2312.15603
概述
字节跳动安全研究团队联合南京大学在⼤语⾔模型联邦精调领域发布了研究论文 A Split-and-Privatize Framework for Large Language Model Fine-Tuning 。该论文主要关注在模型即服务 (Models-as-a-Service, MaaS) 场景下,大语言模型 (Large Language Model, LLM) 精调服务中模型和数据的隐私问题。
论文提出了一种基于分割学习的“分割-隐私化” (Split-and-Privatize, SAP) 联邦精调框架,能够在保障模型和数据隐私的同时,有效提升模型在下游任务上的可用性,为大语言模型精调服务的实际应用落地做了更多探索努力。
研究背景
近年来,以BERT和GPT为代表的预训练语言模型 (Pre-trained Language Model, PLM) 展现出了强大的文本学习能力,并被广泛应用于金融、法律和医疗保健等多个领域。为了扩展预训练模型在更多领域应用,常见的方法是使用下游任务相关的数据集对模型进行精调。但是受计算资源和技术限制,大多数用户并没有能力独立完成精调任务。
当前,主流的MaaS服务商通常拥有充足的训练资源和技术储备,提供了丰富的预训练模型和强大的训练服务。因此,越来越多的用户开始使用MaaS服务商提供的能力,即云服务模型,利用自身的私有数据集,通过选择合适的预训练模型进行精调,得到符合其特定需求的大语言模型。
然而,这一模式在为用户提供便利的同时,也带来了隐私泄露的风险。一方面,某些预训练模型出于知识产权保护目的,无法向用户直接公开;另一方面,用户的训练数据可能包含个人身份信息、商业机密等信息,直接披露给服务商会导致严重的隐私泄露风险。
核心问题:用户在使用云服务厂商提供的在线模型微调服务时,需要将训练数据上传,会引发隐私泄露风险。
本方案目的:解决是在微调过程中保护模型信息和用户数据隐私
针对上述问题,字节跳动安全研究团队在深入调研隐私攻击手段和数据扰动算法的基础上,提出了一种基于分割学习的SAP联邦精调框架,为模型信息和用户数据隐私提供了良好的保护效果,并对模型可用性和隐私性之间的权衡进行了探讨。
技术方案
总体框架
为了在实现LLM定制的同时保护服务商的模型隐私和用户的数据隐私,论文提出了一种基于分割学习的SAP框架,下图给出了该框架的一种实现。
从整体架构上来看,预训练模型被分为服务商侧的顶层模型和用户侧的底层模型。在精调时,用户先用底层模型将本地私有数据转换为向量化文本表示,然后自适应地应用隐私保护机制对文本表示进行隐私化扰动,最后再将它们发送给服务商。服务商将接收到的向量化文本表示继续在顶层模型中前向传播,计算模型最终的输出。出于隐私考虑,样本标签也不能离开用户本地,因此服务商需将模型输出发送给用户,接收返回的输出层梯度,并将其用于反向传播更新模型中的可训练参数。SAP框架能够与多种参数高效的精调方法结合以提升精调效率,例如LoRA、BitFit以及Adapter Tuning等。
SAP核心部分包括模型分割、文本隐私化和贡献度衡量,以下分别介绍。
模型分割
在初始化阶段,服务商将预训练模型分割为底层模型和顶层模型,并将底层模型发送给用户。在这一步骤中,进行模型分割的层次是一个重要的选项。如果底层模型只包含嵌入 (embedding) 层,用户的计算负担相对较小,但服务商可以通过最近邻搜索轻易地从传输的表示中恢复输入文本。如果底层模型包含更多编码器 (encoder) 模块,那么从中恢复原始文本就变得更加困难,因为更深层的表示更为抽象和通用。例如在预训练模型RoBERTa-Large(24层)中,底部模型可配置为 嵌入层 + 1~8个编码块(占比<25%总参数量)
此外,由于模型的权重也是服务商的重要资产,可能要求尽可能少地披露权重。因此,预训练模型的分割位置需要结合实际应用场景综合考虑。
拆分策略建议:
- 算力有限时:优先选择冻结模式(如仅嵌入层),但需配合文本私有化(如dχ隐私)增强保护。
- 算力充足时:采用深层拆分(如6-8层编码块)的冻结模式,在几乎不损失性能(UA仅降1%)下提升隐私率至78%(表4),优于参数更新方案。
文本隐私化
给定底层模型,用户可以计算得到每个文本的向量化表示。然而,如果直接以明文形式发送向量化文本表示,服务商有较大可能利用反演攻击从中恢复出原始输入。为了加强数据隐私保护,用户侧有必要采用隐私化机制对文本表示进行扰动。SAP框架能够简单地与多种隐私保护机制相结合以实现更强的隐私保护,例如dχ-隐私(本地差分隐私的一种变体)和概率近似正确 (Probably Approximately Correct, PAC) 隐私。具体而言,对于每个输入样本,通过添加适当的随机噪声来生成扰动的文本表示。所使用的噪声概率密度函数满足指数衰减形式,即 p(n) ∝ exp(−η-nl),其中 η 是隐私参数,控制噪声强度;n 是噪声值;l 是噪声维度。
贡献词识别优化
引入文本隐私化机制在加强数据隐私保护的同时,也会导致一定的模型性能损失,因此存在效用与隐私之间的权衡。为了改善这种权衡,论文提出了一种贡献词识别优化(Contributing Token Identification,CTI)。该方法的主要原理是利用统计分析来识别每一类样本中对效用目标贡献度最大的token,并减小对这些极少数token的扰动,旨在提高可用性的同时保持相近的隐私保护水平。
方案评估
隐私度量
论文采用典型隐私窃取攻击的方法来评估SAP框架的数据隐私保护能力。为最大化攻击者的能力,文中考虑白盒设定,假设攻击者与服务商具有相同的视角,即能够访问用户传输的向量化文本表示以及底层模型的初始参数。所采用的攻击方法如下:
- 嵌入反演攻击 (Embedding Inversion Attack, EIA)。EIA是一种词元 (token) 级别的攻击,其目标是从扰动的向量化文本表示中恢复原始输入文本。具体而言,对于底层模型仅有嵌入层的情况,攻击者会在嵌入空间中搜索每个扰动向量的最近邻作为对原始词元的推测。对于底层模型包含更多层的情况,攻击者会采用一种更为复杂的基于优化的攻击方法。对于每个输入样本,该方法通过最小化推测文本的表示和观察到的表示之间的距离来迭代优化词元选择向量。
- 属性推理攻击 (Attribute Inference Attack, AIA)。由于文本表示仍然包含丰富的语义信息,攻击者可以通过AI从中推断用户的敏感属性。假设攻击者可以获得部分样本的隐私属性标签,那么隐私属性推理可以被视为一个下游任务,攻击者可以使用这些样本的向量化文本表示和相应的隐私标签来训练一个分类器进而推断其他样本的隐私属性。
论文中使用经验隐私作为评估SAP框架隐私保护能力的指标:令X 表示攻击成功率,经验隐私的定义为 1 − X。
对比实验
- SAP框架中隐私参数η的影响:作者研究了当底部模型为冻结嵌入层时,SAP框架中隐私参数η对隐私保护能力和性能的影响。结果表明,随着η的减小,SAP框架的隐私保护能力增强,但同时性能也会下降。例如,在FP数据集上,当η设为50时,SAP可以将隐私保护能力提高到38.85%,但性能损失为6.17%。
- SAP框架中CTI方法的效果:作者使用CTI方法来改善SAP框架中模型分割对性能的影响,并比较了不同参数下SAP框架的隐私保护能力和性能表现。结果显示,通过减少小于1%的贡献词的扰动,CTI方法可以在保持近似不变的隐私保护能力的同时显著提高性能。例如,在FP数据集上,当η设为50时,SAP-CTI算法可以达到38.29%的隐私保护能力,而仅损失3.67%的性能。
- 底部模型是否被冻结的影响:作者还研究了在SAP框架中联合训练底部模型和顶部模型对隐私保护能力和性能的影响。结果表明,当底部模型只包含一个嵌入层时,联合训练对性能影响较小,但会导致隐私保护能力显著降低。原因是,底部模型的参数变化很小,攻击者仍然可以使用初始参数进行最近邻搜索,从而增加攻击成功率。
- 模型分割位置的选择:最后,作者探讨了SAP框架中模型分割位置对隐私保护能力和性能的影响。结果显示,随着分割位置从底部模型中移除更多的编码器块,攻击者从客户发送的表示中推断输入文本的能力变得越来越困难。即使没有文本隐私化,当有8个编码器块时,SAP框架的隐私保护能力可以达到约80%。
主要结果
实验表明,SAP框架能够在保护模型隐私和数据隐私之间取得良好的平衡,同时最大限度地保证了模型的可用性。此外,SAP框架具有较高的灵活性,能够适应大语言模型精调服务中的多种需求场景。
- 对于用户计算资源相对有限的情况,可以采用底层模型仅有嵌入层的解决方案。在Roberta-Large模型和Stanford Sentiment Treebank (SST) 情感分析数据集上的实验结果表明,SAP框架以6%的模型性能损失换取了36%的经验隐私提升;
- 对于用户计算资源相对丰富的情况,可以采用底层模型包含多个encoder模块的解决方案。SST数据集上的实验结果表明,在底层模型有6个encoder模块的情况下(占整个模型的四分之一),SAP框架以1%的模型性能损失换取了62%的经验隐私提升。
总结
文章使用的是哪个模型?
- 模型名称:RoBERTa-Large(基于BERT架构的改进模型)
- 参数规模:总参数量为 3.55亿
- RoBERTa-Large包含24层Transformer编码块,实验中通过调整底部模型的编码块数量(如1-8层)验证不同拆分策略对隐私保护的影响。
如何保护用户数据隐私?
- 文本私有化:客户在本地对底部模型输出的文本表示(如词嵌入向量)添加噪声扰动,再传输给服务商。
- 分层隔离增强隐私:底部模型包含更多编码块(如6-8层)时,中间表示更抽象,攻击难度显著增加。
- 动态训练:非冻结模式下,底部模型参数在训练中更新,使中间表示动态变化,增加攻击者反推难度。
- 贡献词识别优化(CIT):减少对关键token的扰动,缓解私有化导致的性能损失。
如何保护模型信息隐私?
-
服务商将预训练语言模型(PLM)拆分为底部模型(部署在客户端)和顶部模型(保留在服务商服务器),仅底部模型(如嵌入层或少量编码块)被传输给客户,95%以上的核心模型参数始终保留在服务商端,避免模型架构和权重泄露。
-
动态训练方式:
- 底部模型参数不变:客户仅使用底部模型计算隐私向量表示后一次性发送,服务商独立微调顶部模型。隐私风险低,可能被攻击者利用多次观察反推输入。
- 底部模型参数更新:服务商返回顶部模型输出的梯度以更新底部模型。隐私风险高,动态变化的中间表示增加攻击难度,使其反推原始输入更困难。
框架能保护推理安全么?
-
客户在推理时需将输入文本通过本地底部模型计算中间表示,并施加与训练阶段相同的噪声扰动,再将扰动后的表示发送给服务商,服务商无法从扰动表示反推原始输入。
-
本方案优于离线调优(Offsite-tuning),覆盖了训练与推理全周期保护,而Offsite-tuning仅保护训练阶段。