联邦学习开源框架
PySyft
- 单位:OpenMind
- github:https://github.com/OpenMined/PySyft
- 论文:https://arxiv.org/abs/1811.04017
概述:PySyft 在主要深度学习框架(如 PyTorch 和 TensorFlow)中使用联邦学习、差分隐私和加密计算(如多方计算 (MPC) 和同态加密 (HE))将私有数据与模型训练分离。
FATE
概述:FATE (Federated AI Technology Enabler) 是微众银行AI部门发起的开源项目,为联邦学习生态系统提供了可靠的安全计算框架。FATE项目使用多方安全计算 (MPC) 以及同态加密 (HE) 技术构建底层安全计算协议,以此支持不同种类的机器学习的安全计算,包括逻辑回归、基于树的算法、深度学习和迁移学习等。
功能:全面,同时覆盖横向、纵向、迁移联邦学习,包含联邦学习的整体流程;实现了样本安全匹配,样本切分(1.5版本),特征处理和筛选、LR/XGB/DNN等常用算法,模型评估与评分卡,模型预测(serving),联邦推荐等。
易用:一般;虽然文档很丰富,但是难抵配置多;cluster模式下配置很多,各种端口,;又因为期望兼容多种后端存储和计算,导致依赖较多,系统整体比较重,前期部署较困难;而且python、java、scala等多种语言混合在同一项目,上手相对不容易,排查问题更是头疼。不过,使用docker化部署会比本地化部署会更容易些。
TFF
- 单位:Google, Tensorflow官方
- website:https://www.tensorflow.org/federated/tff_for_research
- github:https://github.com/tensorflow/federated
FedML
- 单位:USC
- homepage:http://fedml.ai/
- github:https://github.com/FedML-AI/FedML
- paper:https://arxiv.org/abs/2007.13518
联邦学习是机器学习领域中一个快速发展的研究领域。尽管已经进行了大量的研究工作,但现有的库无法充分支持多样化的算法开发(例如,多样化的拓扑和灵活的消息交换),并且实验中不一致的数据集和模型使用使得公平比较变得困难。在这项工作中,我们引入了 FedML,这是一个开放的研究库和基准,可促进新的联邦学习算法的开发和公平的性能比较。 FedML 支持三种计算范式(分布式训练、移动端训练和单机模拟),供用户在不同系统环境下进行实验。 FedML 还通过灵活和通用的 API 设计和参考基线实现促进了多样化的算法研究。非 I.I.D 设置的策划和综合基准数据集旨在进行公平比较。我们相信 FedML 可以为联邦学习研究社区提供一种高效且可重复的方法来开发和评估算法。我们在 https://FedML.ai 维护源代码、文档和用户社区。
架构:
Flower
- 单位:剑桥大学
- github: https://github.com/adap/flower
- paper:[https://arxiv.org/abs/2007.14390
架构:
Rosetta
- 单位:LatticeX Foundation
- github:https://github.com/LatticeX-Foundation/Rosetta
概述:Rosetta 是一个基于TensorFlow开发的隐私计算框架,它将陆续集成密码学、联邦学习和可信执行环境等主流的隐私计算技术。Rosetta 旨在为人工智能快速提供隐私保护技术解决方案,不需要用户掌握任何密码学、联邦学习和硬件安全执行环境领域的专业知识。Rosetta 在用户接口层复用了 TensorFlow 的对外 API 从而使得用户可以以最低的改造成本将隐私保护功能集成到现有的 TensorFlow 程序中。
架构:
PaddleFL
- 单位:百度
- github:https://github.com/PaddlePaddle/PaddleFL
概述:PaddleFL是一个基于PaddlePaddle的开源联邦学习框架。研究人员可以很轻松地用PaddleFL复制和比较不同的联邦学习算法。开发人员也可以从paddleFL中获益,因为用PaddleFL在大规模分布式集群中部署联邦学习系统很容易。PaddleFL提供很多联邦学习策略及其在计算机视觉、自然语言处理、推荐算法等领域的应用。此外,PaddleFL还将提供传统机器学习训练策略的应用,例如多任务学习、联邦学习环境下的迁移学习。
架构:
FedLearner
- 单位:字节跳动
- github:https://github.com/bytedance/fedlearner
概述:Fedlearner 是协作式机器学习框架,可以对机构之间分布的数据进行联合建模。
作为分布式的机器学习范式,联邦学习能够有效解决数据孤岛问题,让参与方在不共享数据的基础上联合建模,挖掘数据价值。
据介绍,字节跳动联邦学习平台 Fedlearner 已经在电商、金融、教育等行业多个落地场景实际应用。字节跳动联邦学习技术负责人吴迪在接受 InfoQ 专访时表示,联邦学习面临的困难更多是如何为客户争取可感知的最大商业价值,不同行业的伙伴,其产品特点和价值诉求各不相同。
得益于字节跳动在推荐和广告领域长期积累的机器学习建模技术,字节跳动联邦学习找到了帮助企业客户取得可感知商业价值的方向,即基于字节跳动的个性化推荐算法、模型优势,探索、寻找落地场景。例如在电商广告场景的落地案例中,Fedlearner 已经帮助合作方取得了 10% 以上的投放效率增长,跑量消耗提升 15%+,电商平台 ROI 提升 20%+。
架构:
Reference
- 框架的一些评价参考,发表于 2021-03-21 20:03:https://zhuanlan.zhihu.com/p/358784318
- 一个很完整的收集了众多开源框架信息的 github:https://github.com/youngfish42/Awesome-Federated-Learning-on-Graph-and-Tabular-Data
- 联邦学习框架解读,主要是简单使用:https://zhuanlan.zhihu.com/p/540853969
- 关于联邦学习的讨论:https://www.zhihu.com/question/347536239/answer/1917273633
- 收集了众多联邦学习的论文:https://github.com/lokinko/Federated-Learning