前言
FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,在github上拥有近4000stars,可谓是相当有名气的,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学者提供了很好的环境,否则利用python从零开发,那将会是一件非常痛苦的事情。本篇博客内容涉及《联邦学习实战》第七章内容,本章主要是介绍当前流行的联邦学习平台,下面就让我们开始吧。
1. FATE
1.1 FATE平台架构概述
FATE是微众银行开发的联邦学习平台,是全球首个工业级的联邦学习开源框架,该平台为联邦学习提供了完整的生态和社区支持,为联邦学习初学者提供了很好的环境。
FATE的官方文档提供了FATE的架构图,可以看到FATE的架构自上而下分为了四层,最上面一层是FATE提供的服务,包括FATE云服务,FATE面板,FATE任务调度管理,生命周期管理等,往下一层是FATE的机器学习核心组件,包括横向联邦学习、纵向联邦学习等,再往下一层是应用在FATE中的安全协议(隐私保护算法),包括同态加密,FedAvg,RSA等,最后一层是底层框架,又可以分为平行的三层,包括计算框架(TensorFlow,Pytorch,Spark),消息队列协议,以及存储框架。
FATE的主要功能如下:
- 提供基于数据隐私保护的分布式安全计算框架;
- 为机器学习、深度学习等常用算法提供高性能安全计算支持;
- 支持同态加密、秘密共享等多种多方安全计算协议,保证数据和模型的安全;
- 提供友好的跨域交互信息管理解决方案和开发文档,极大的方便开发者使用。
1.2 FATE版本与文档
当前FATE最新的版本为1.7.2版本,并且有望在今年更新1.8.0以上的版本,还是十分值得期待的,在使用FATE的过程中,我遇到了一系列问题,也因此查找到了许多官方资料和论坛,在这里列出提供给有需要的朋友。
- github地址
- github问答地址
- 2021年经典问答库
- Groups.io
- 微信公众号:FATE开源社区
2. TensorFlow-federated
TFF是由Google开源的,基于TensorFlow实现的一款联邦学习平台架构,主要针对Android移动端的横向联邦学习场景。TFF构建在TensorFlow的基础上,不是独立的联邦学习生态体系。
用户可以使用TFF的接口完成以下工作。
- 通过Federated Learning API与TensorFlow/Keras交互,完成分类、回归等任务。
- 通过TFF提供的Federated Core API,在强类型函数编程环境中将TensorFlow与分布式通信运算符相结合,表达新的联邦算法。
- TFF使用的数据隐私保护主要是差分隐私,安全机制在TensorFlow/Privacy中实现,开发者可以自行调用安全算法。
想要进一步学习,可以参考TFF的github官方文档。
3. OpenMined PySyft
PySyft是一个基于安全和隐私保护的深度学习库,由OpenMined社区开发。PySyft结合了多种隐私计算策略:FL,安全多方计算(MPC)和差分隐私,并应用到PyTorch,Keras,TensorFlow等开发模型上进行模型隐私训练。
此外,由于PySyft基于PyTorch开发,设计上采用了很多PyTorch的思想,最显著体现在引入Syft的抽象张量Syft Tensor,是PySyft进行隐私计算的基本单元。
想要进一步学习,可以参考PySyft的github官方文档。
4. NVIDIA Clara联邦学习平台
Clara平台是由NVIDIA公司推出的针对医疗场景的联邦学习平台。该平台是横向联邦学习的实现,在NVIDIA自身的EGX边缘运算平台上运行。每家医院作为客户端,EGX服务器会基于本地数据来训练局部模型,然后将局部模型的参数返回联邦学习服务器。
在训练过程中,每家医院的数据都不会离开本地,保障了数据的安全,同时,这一过程会反复进行,每一家医院的数据都会不断标注更新,不断提升全局模型的精度。下面是CLara的实现流程图和架构图。
想要进一步学习,可以参考NVIDIA Clara的官方文档。
5. 百度PaddleFL
PaddleFL是一个基于百度飞桨的开源联邦学习框架,目前该框架实现了横向和纵向联邦学习算法,定义了多任务学习、迁移学习和主动学习在内的训练策略。同时,PaddleFL提供在NLP和CV、推荐算法等领域的应用示例,此外,Paddle还封装了一些公开的联邦学习数据集。
PaddleFL架构设计如下所示:
编译态的工作完成后,通过FL job Generator生成的FL-Job进入运行态,开始联邦学习模型训练。
有关PaddleFL的详细使用教程,参考官方文档。
6. 腾讯AngelFL
AngelFL是腾讯基于Angel实现的联邦学习库,Angel是腾讯的一个全栈机器学习开源平台,功能特性涵盖了机器学习的各个阶段。系统架构如下图所示。
可以看到,AngelFL整个系统是一个去中心化联邦学习框架,无需信赖可信第三方,以Angel高维稀疏训练平台作为底层,抽象出算法协议层,供实现各种常见机器学习算法。AngelFL主要应用场景是纵向联邦的场景。
7. 同盾知识联邦平台
同盾科技推出的智邦iBond平台,融合了分布式机器学习、安全加密、元学习等技术,创建了知识联邦的概念。它使多方在完全满足用户隐私、数据安全和法律法规的要求下,进行数据分析建模,协同创造和共享知识。该平台支持原始数据的密文空间上联邦,模型训练中联邦,特征学习结果上联邦,还支持多任务、多方异构知识联邦。
知识联邦系统分为四层,即信息层、模型层、认知层和知识层。
- 信息层:加密每个参与者的数据或以某种形式将其转换为有价值的信息。
- 模型层:常规的FL训练。
- 认知层:收集每个参与者学习到的信息,并使用服务器端的另一个模型作为输入来训练全局任务。全局模型训练完成后,将更新后的嵌入信息返回给每个客户端进行更新和重新迭代。
- 知识层:将认知层收集到的不同特征信息存储为知识库,形成知识网络。在知识网络上不断的推理和演绎,可以挖掘出更多有价值的信息,预测信息的发生,最终形成合理的决策。
有关iBond平台的使用,可以访问其官方网站。
阅读摘要
本章内容就是对当前领域比较火热的FL平台的一些介绍,真要深入学习还得去各个平台的官方文档中求解,下一部分就是对FL案例实战详解,其中将会涉及到许多在实际场景下,FL如何在保证用户隐私的情况下应用,让我们拭目以待吧。
参考链接
https://zhuanlan.zhihu.com/p/114774133
https://docs.nvidia.com/clara/index.html
https://github.com/PaddlePaddle/PaddleFL
https://blog.csdn.net/Tencent_TEG/article/details/104852978/
https://zhuanlan.zhihu.com/p/383617540
文章出处登录后可见!