在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
开源软件名称:PaddleFL开源软件地址:https://gitee.com/paddlepaddle/PaddleFL开源软件介绍:PaddleFLPaddleFL是一个基于PaddlePaddle的开源联邦学习框架。研究人员可以很轻松地用PaddleFL复制和比较不同的联邦学习算法。开发人员也可以从paddleFL中获益,因为用PaddleFL在大规模分布式集群中部署联邦学习系统很容易。PaddleFL提供很多联邦学习策略及其在计算机视觉、自然语言处理、推荐算法等领域的应用。此外,PaddleFL还将提供传统机器学习训练策略的应用,例如多任务学习、联邦学习环境下的迁移学习。依靠着PaddlePaddle的大规模分布式训练和Kubernetes对训练任务的弹性调度能力,PaddleFL可以基于全栈开源软件轻松地部署。 联邦学习如今,数据变得越来越昂贵,而且跨组织共享原始数据非常困难。联合学习旨在解决组织间数据隔离和数据知识安全共享的问题。联邦学习的概念是由谷歌的研究人员提出的[1,2,3]。 PaddleFL概述在PaddleFL中,横向和纵向联邦学习策略将根据[4]中给出的分类来实现。PaddleFL也将提供在自然语言处理,计算机视觉和推荐算法等领域的应用示例。 A. 联邦学习策略
B. 训练策略
PaddleFL 中主要提供两种解决方案:Data Parallel 以及 Federated Learning with MPC (PFM)。 通过Data Parallel,各数据方可以基于经典的横向联邦学习策略(如 FedAvg,DPSGD等)完成模型训练。 此外,PFM是基于多方安全计算(MPC)实现的联邦学习方案。作为PaddleFL的一个重要组成部分,PFM可以很好地支持联邦学习,包括横向、纵向及联邦迁移学习等多个场景。既提供了可靠的安全性,也拥有可观的性能。 安装我们强烈建议 您在docker中使用PaddleFL。 #Pull and run the dockerdocker pull paddlepaddle/paddlefl:latestdocker run --name <docker_name> --net=host -it -v $PWD:/paddle <image id> /bin/bash#Install paddle_flpip install paddle_fl 若您希望从源码编译安装,请点击这里。 我们也提供了稳定的redis安装包, 可供下载。 wget --no-check-certificate https://paddlefl.bj.bcebos.com/redis-stable.tartar -xf redis-stable.tarcd redis-stable && make Kubernetes简单部署横向联邦方案kubectl apply -f ./python/paddle_fl/paddle_fl/examples/k8s_deployment/master.yaml 请参考K8S部署实例 也可以参考K8S集群申请及kubectl安装 配置自己的K8S集群 Federated Learning with MPC会在后续版本中发布。 PaddleFL框架设计Data Parallel在PaddeFL中,用于定义联邦学习任务和联邦学习训练工作的组件如下: A. 编译时
B. 运行时
请参考更多的例子, 获取更多的信息。 Federated Learning with MPCPaddle FL MPC 中的安全训练和推理任务是基于高效的多方计算协议实现的,如ABY3[11] 在ABY3[11]中,参与方可分为:输入方、计算方和结果方。输入方为训练数据及模型的持有方,负责加密数据和模型,并将其发送到计算方。计算方为训练的执行方,基于特定的多方安全计算协议完成训练任务。计算方只能得到加密后的数据及模型,以保证数据隐私。计算结束后,结果方会拿到计算结果并恢复出明文数据。每个参与方可充当多个角色,如一个数据拥有方也可以作为计算方参与训练。 PFM的整个训练及推理过程主要由三个部分组成:数据准备,训练/推理,结果解析。 A. 数据准备
B. 训练/推理PFM 拥有与PaddlePaddle相同的运行模式。在训练前,用户需要定义MPC协议,训练模型以及训练策略。 请参考以下文档, 以获得更多关于训练阶段的信息。 C. 结果重构安全训练和推理工作完成后,模型(或预测结果)将由计算方以加密形式输出。结果方可以收集加密的结果,使用PFM中的工具对其进行解密,并将明文结果传递给用户。 请参考MPC的例子,以获取更多的信息。 性能测试横向联邦方案Gru4Rec [9] 在基于会话的推荐中引入了递归神经网络模型。PaddlePaddle的GRU4RC实现代码在 https://github.com/PaddlePaddle/models/tree/develop/PaddleRec/gru4rec. 一个基于联邦学习训练Gru4Rec模型的示例请参考Gru4Rec in Federated Learning Federated Learning with MPC我们基于波士顿房价数据集对PFM进行了测试,具体的事例及实现请参考 uci_demo 正在进行的工作
参考文献[1]. Jakub Konečný, H. Brendan McMahan, Daniel Ramage, Peter Richtárik. Federated Optimization: Distributed Machine Learning for On-Device Intelligence. 2016 [2]. H. Brendan McMahan, Eider Moore, Daniel Ramage, Blaise Agüera y Arcas. Federated Learning of Deep Networks using Model Averaging. 2017 [3]. Jakub Konečný, H. Brendan McMahan, Felix X. Yu, Peter Richtárik, Ananda Theertha Suresh, Dave Bacon. Federated Learning: Strategies for Improving Communication Efficiency. 2016 [4]. Qiang Yang, Yang Liu, Tianjian Chen, Yongxin Tong. Federated Machine Learning: Concept and Applications. 2019 [5]. Kai He, Liu Yang, Jue Hong, Jinghua Jiang, Jieming Wu, Xu Dong et al. PrivC - A framework for efficient Secure Two-Party Computation. In Proc. of SecureComm 2019 [6]. Martín Abadi, Andy Chu, Ian Goodfellow, H. Brendan McMahan, Ilya Mironov, Kunal Talwar, Li Zhang. Deep Learning with Differential Privacy. 2016 [7]. Virginia Smith, Chao-Kai Chiang, Maziar Sanjabi, Ameet Talwalkar. Federated Multi-Task Learning 2016 [8]. Yang Liu, Tianjian Chen, Qiang Yang. Secure Federated Transfer Learning. 2018 [9]. Balázs Hidasi, Alexandros Karatzoglou, Linas Baltrunas, Domonkos Tikk. Session-based Recommendations with Recurrent Neural Networks. 2016 [10]. https://en.wikipedia.org/wiki/Secret_sharing [11]. Payman Mohassel and Peter Rindal. ABY3: A Mixed Protocol Framework for Machine Learning. In Proc. of CCS 2018 |
请发表评论