SAFEFL: MPC-friendly Framework for Private and Robust Federated Learning论文阅读笔记

SAFEFL: MPC-friendly Framework for Private and Robust Federated Learning适用于私有和鲁棒联邦学习的 MPC 友好框架

SAFEFL,这是一个利用安全多方计算 (MPC) 来评估联邦学习 (FL) 技术在防止隐私推断和中毒攻击方面的有效性和性能的框架。

概述

传统机器学习(ML):集中收集数据->隐私保护问题
privacy-preserving ML (PPML)采用的隐私保护技术:安全多方计算,同态加密(运算成本高)

联邦学习(FL):用户本地训练模型,中心聚合器组合结果来更新模型

易受2种攻击:1)隐私推断攻击 2)中毒攻击

  1. 隐私推断攻击

破坏模型聚合器的对手试图从更新的本地模型/梯度中推断有关用户隐私数据的敏感信息。

对策:安全聚合(SA)技术。用户将加密的本地更新发送到聚合器,聚合器只能访问组合的更新而不是单独的更新。

  1. 中毒攻击

腐败用户创建欺诈模型并将其发送到聚合器以操纵训练过程。
1)降低模型的准确性,使其无效。2)包含一个后门,当输入中存在特定触发器时,该后门会改变其预测。

对策:鲁棒的聚合方案。目标是从聚合中丢弃可能损坏的本地模型或使用各种评分措施将其影响最小化。

现有问题:不能同时应对这两种攻击

矛盾性:鲁棒聚合方案与安全聚合之间的冲突,鲁棒聚合方案需要对每个更新进行单独分析,安全聚合仅揭示聚合联合模型而不允许单独分析。

成本高:计算要求较高,与无隐私变体相比会产生显着的运行时开销,并且假设腐败模型较弱。

SAFEFL – 基于 MPC(multi-party computation) 的框架。

-用于评估鲁棒聚合技术对抗中毒攻击的有效性,同时还检查引入模型隐私的开销(通信和运行时)。

采用分布式聚合器<-MPC实现分布式聚合器<-MP-SPDZ框架实现MPC

-中央聚合器。受攻击后影响大,即使安全聚合到位,FL 隐私也可能受到损害。

-分布式聚合器。用户在两个或多个服务器上安全地分发本地更新,这些服务器使用交互协议私下计算聚合函数。

矛盾性:i)MP-SPDZ :连续安全计算 ii)FL :安全聚合与本地用户训练交织在一起

解决:
-通信器接口,通过扩展 MP-SPDZ 中提供的ExternalIO 库,连接广泛使用的开源机器学习框架 PyTorch和 MP-SPDZ
-此功能使我们能够轻松评估鲁棒聚合协议在不同 MPC 设置中的有效性和性能,从而促进更高效协议的开发。

开源代码(github上的)

https://encrypto.de/code/SAFEFL (论文给出的地址但访问不了)

SAFEFL 由两个模块组成:模型训练和聚合,以及连接它们的通信器接口

SAFEFL_Framework

FLTrust代码

X. Cao, M. Fang, J. Liu, and N. Z. Gong, “FLTrust: Byzantine-robust Federated Learning via Trust Bootstrapping,” in NDSS, 2021, https://people.duke.edu/∼zg70/code/fltrust.zip.

该代码包括基本的 FL 设置及其在 Apache MXNet 中实现的稳健聚合方法,以及 Trim 中毒攻击的实现 。

拜占庭byzantine.py

定义了两种不同的联邦学习中的模型中毒攻击策略,no_byz 是一个不做任何修改的策略,而 trim_attack 是一个针对trimmed-mean聚合方法的对抗性攻击策略。

no_byz 函数表示没有拜占庭错误的情况,即所有客户端都是诚实的。而 trim_attack 函数则模拟了一种拜占庭错误,其中前 f 个客户端是恶意的,他们通过发送特定的对抗性更新来尝试破坏整个模型的聚合过程。

fltrust代码nd_aggregation.py

定义了一个名为 fltrust 的函数,用于在联邦学习环境中处理拜占庭错误。

FLTrust 函数通过计算客户端梯度与服务器更新之间的余弦相似度,并使用这些相似度作为权重来调整客户端的梯度,从而提高了联邦学习系统对拜占庭错误的鲁棒性。通过这种方式,函数试图减少恶意客户端对全局模型更新的影响。

test_byz_p.py

代码是一个使用MXNet实现的联邦学习框架的入口点。它定义了如何初始化模型、数据集、训练过程和拜占庭容错机制。

Model Training Module 模型训练模块-- PyTorch

基于 PyTorch 的模块负责代表用户执行本地模型训练。使用 FLTrust 的公开代码作为起点。

使用模型训练模块对 SAFEFL 中的模型进行本地训练后,下一步是使用 MPC 技术在分布式聚合器设置中执行私有且稳健的聚合。可以使用 MP-SPDZ 框架上运行的聚合模块来执行此聚合。

Aggregation Module 聚合模块 – MP-SPDZ(连续安全计算)

该模块利用 MP-SPDZ 中实现的 MPC 协议执行分布式安全聚合。

我们选择 FLTrust 作为 SAFEFL 中采用的私有且稳健的聚合方案的最佳候选者。这是因为它是 DnC、FLAME 和 FLTrust 三种方案中对 MPC 最友好的。最佳鲁棒聚合方案。

对于 FLTrust,我们允许 PyTorch 中的可信用户(可以是用户或 MPC 服务器)在根数据集上训练服务器模型。 MPSPDZ 用于计算信任分数并聚合最终模型。

我们还实现了 FedAvg 聚合方案,作为估计添加稳健聚合的成本开销的基准。我们从 FedAvg 中删除了用户数据大小的权重,以提高其效率并减少数值错误。

Communicator Interface 通信器接口

由于MP-SPDZ中使用的协议是为连续安全计算而设计的,因此它们必须在虚拟机上编译和执行。另一方面,FL 中的训练需要在本地训练之间交叉调用安全聚合。

我们在 SAFEFL 中创建了一个通信器接口,支持 PyTorch 和 MP-SPDZ 库之间的双向通信

我们利用此通信器将本地训练模型的秘密共享从 PyTorch 安全地传输到 MPSPDZ 中的 MPC 服务器,这些服务器使用指定的 MPC 协议计算聚合,并将聚合模型返回到 PyTorch 以进行下一次训练迭代。

我们的起点是 MP-SPDZ 提供的 Banker Bonus 示例,它解决了最多 8 个用户的 Yao 百万富翁问题 。
在此示例中,MPC 服务器在指定端口上侦听用户并接受来自用户侧接口的连接。当所有用户都连接时,计算开始,计算完成后关闭连接。
此外,连接通过 SSL 进行保护,并且在启动时生成所需的密钥和证书。

在 SAFEFL 中,我们扩展了 MP-SPDZ 用户界面以发送任意数量的数据,并将用户集成到 PyTorch 中,以将秘密共享的本地模型发送到 MPC 服务器并检索聚合模型。为简单起见,我们让 PyTorch 作为单个用户运行,使用 MPC 服务器分发所有本地模型。然而,这可以简单地扩展,以便每个用户单独连接。

进行的实验测试评估

基准测试环境。所有实验均在 16 核机器上运行,1 配备 2.8 GHz Intel Core i9-7960X 处理器和 128GB RAM,运行 Linux。我们通过带宽 10Gbps 和往返时间 (RTT) 1ms 的 LAN 设置进行评估

通过SAFEFL实施了广泛的FL 中毒攻击,并对各种稳健的聚合方案和报告准确性进行了全面评估。

FL中毒攻击:实现了 7 种中毒攻击和 14 种不同的聚合方案

准确性评估:评估由 30 个用户组成(与 HAR 数据集一致),模型训练进行了 2,000 次迭代,假设恶意损坏率为 20%。我们选择的攻击涵盖了 FL 中的数据中毒和模型中毒攻击。

准确性评估结果:以下三种稳健的聚合方案——DnC 、FLAME 和 FLTrust 的准确率始终比简单的 FedAvg 在没有攻击的情况下所能达到的准确率低至多 0.05 ,即 0.97。

使用针对各种设置定制的多个MPC 协议来评估FLTrust 中稳健聚合方案的私有实现的计算和通信开销。

使用MPSPDZ聚合模块评估 FLTrust 和 FedAvg 的私有变体的通信和运行时成本。
使用四种不同的 MPC 协议在 64 位环上运行,以满足不同的设置。
使用 MP-SPDZ 在各种 MPC 设置中进行 50 次迭代的 FLTrust 和 FedAvg 隐私保护实现的通信(以 GB 为单位的通信)和计算(以小时为单位的时间)成本。

结果:对应于底层 MPC 协议的复杂性,诚实的多数优于不诚实的多数,恶意安全比半诚实安全更昂贵。当在具有恶意安全性的更强的不诚实多数设置中从 FedAvg 迁移到 FLTrust 时,我们观察到通信量提高了约 16 倍,运行时间提高了约 3.6 倍。 虽然在恶意诚实多数设置中的通信也观察到类似的趋势,但运行时的开销减少到约 1.5 倍。

观察结果表明,应做出更多努力来弥合沟通差距,以使私人和稳健的聚合计划更加可行。

SAFEFL框架相关工作

论文还介绍了安全多方计算(MPC),联邦学习(FL)中的中毒攻击例子(4种),联邦学习(FL)中的鲁棒聚合方案(13种)

未来工作:增强兼容性,适用于更多的MPC框架

  • 31
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值