README_cn.md 5.4 KB
Newer Older
G
guru4elephant 已提交
1 2
# PaddleFL

D
Dong Daxiang 已提交
3
PaddleFL是一个基于PaddlePaddle的开源联邦学习框架。研究人员可以很轻松地用PaddleFL复制和比较不同的联邦学习算法。开发人员也可以从padderFL中获益,因为用PaddleFL在大规模分布式集群中部署联邦学习系统很容易。PaddleFL提供很多联邦学习策略及其在计算机视觉、自然语言处理、推荐算法等领域的应用。此外,PaddleFL还将提供传统机器学习训练策略的应用,例如多任务学习、联邦学习环境下的迁移学习。依靠着PaddlePaddle的大规模分布式训练和Kubernetes对训练任务的弹性调度能力,PaddleFL可以基于全栈开源软件轻松地部署。
G
guru4elephant 已提交
4 5 6 7 8 9 10

## 联邦学习

如今,数据变得越来越昂贵,而且跨组织共享原始数据非常困难。联合学习旨在解决组织间数据隔离和数据知识安全共享的问题。联邦学习的概念是由谷歌的研究人员提出的[1,2,3]。

## PaddleFL概述

D
Dong Daxiang 已提交
11
<img src='images/FL-framework-zh.png' width = "1300" height = "310" align="middle"/>
G
guru4elephant 已提交
12

D
Dong Daxiang 已提交
13
在PaddleFL中,横向和纵向联邦学习策略将根据[4]中给出的分类来实现。PaddleFL也将提供在自然语言处理,计算机视觉和推荐算法等领域的应用示例。
G
guru4elephant 已提交
14 15 16

#### 联邦学习策略

D
Dong Daxiang 已提交
17
- **纵向联邦学习**: 带privc的逻辑回归,带第三方privc的神经网络[5]
G
guru4elephant 已提交
18

D
Dong Daxiang 已提交
19
- **横向联邦学习**: 联邦平均 [2],差分隐私 [6]
G
guru4elephant 已提交
20 21 22 23 24 25 26 27 28 29 30 31

#### 训练策略

- **多任务学习** [7]

- **迁移学习** [8]

- **主动学习**


## PaddleFL框架设计

Q
qjing666 已提交
32
<img src='images/FL-training.png' width = "1300" height = "450" align="middle"/>
G
guru4elephant 已提交
33

D
Dong Daxiang 已提交
34
在PaddeFL中,用于定义联邦学习任务和联邦学习训练工作的组件如下:
G
guru4elephant 已提交
35 36 37 38 39 40 41

#### 编译时

- **FL-Strategy**: 用户可以使用FL-Strategy定义联邦学习策略,例如Fed-Avg[1]。

- **User-Defined-Program**: PaddlePaddle的程序定义了机器学习模型结构和训练策略,如多任务学习。

D
Dong Daxiang 已提交
42
- **Distributed-Config**: 在联邦学习中,系统会部署在分布式环境中。分布式训练配置定义分布式训练节点信息。
G
guru4elephant 已提交
43

D
Dong Daxiang 已提交
44
- **FL-Job-Generator**: 给定FL-Strategy, User-Defined Program 和 Distributed Training Config,联邦参数的Server端和Worker端的FL-Job将通过FL Job Generator生成。FL-Jobs 被发送到组织和联邦参数服务器以进行联合训练。
G
guru4elephant 已提交
45 46 47 48 49

#### 运行时

- **FL-Server**: 在云或第三方集群中运行的联邦参数服务器。

D
Dong Daxiang 已提交
50
- **FL-Worker**: 参与联合学习的每个组织都将有一个或多个与联合参数服务器通信的Worker。
G
guru4elephant 已提交
51

Q
qjing666 已提交
52 53
- **FL-Scheduler**: 训练过程中起到调度Worker的作用,在每个更新周期前,决定哪些Worker可以参与训练。

D
Dong Daxiang 已提交
54
## 安装指南和快速入门
G
guru4elephant 已提交
55

D
Dong Daxiang 已提交
56
请参考[快速开始](https://paddlefl.readthedocs.io/en/latest/instruction.html)
G
guru4elephant 已提交
57

Q
qjing666 已提交
58
## Kubernetes简单部署
Q
qjing666 已提交
59 60 61 62 63 64

```sh
 
kubectl apply -f ./paddle_fl/examples/k8s_deployment/master.yaml

```
J
jingqinghe 已提交
65 66 67
请参考[K8S部署实例](./paddle_fl/examples/k8s_deployment/README.md)

也可以参考[K8S集群申请及kubectl安装](./paddle_fl/examples/k8s_deployment/deploy_instruction.md) 配置自己的K8S集群
G
guru4elephant 已提交
68 69
## 性能测试

D
Dong Daxiang 已提交
70 71
Gru4Rec [9] 在基于会话的推荐中引入了递归神经网络模型。PaddlePaddle的GRU4RC实现代码在 https://github.com/PaddlePaddle/models/tree/develop/PaddleRec/gru4rec. 一个基于联邦学习训练Gru4Rec模型的示例请参考[Gru4Rec in Federated Learning](https://paddlefl.readthedocs.io/en/latest/examples/gru4rec_examples.html)

J
jingqinghe 已提交
72 73 74 75 76 77 78 79 80
## 版本更新
- v0.2.0 发布
    - 支持 Kubernetes 简易部署
    - 添加在联邦学习设定下的[LEAF](https://arxiv.org/abs/1812.01097) 公开数据集接口,支持基准的设定 
    - 添加 FL-scheduler, 在训练过程中充当中心控制器的角色 
    - 添加 FL-Submitter 功能,支持集群任务部署
    - 添加 secure aggregation 算法
    - 支持更多的机器学习优化器,例如:Adam
    - 增加更多的实际应用例子
D
Dong Daxiang 已提交
81
## 正在进行的工作
G
guru4elephant 已提交
82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102

- 垂直联合学习策略和更多的水平联合学习策略将是开源的。

## 参考文献

[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 Proceedings of 15th EAI International Conference on Security and Privacy in Communication Networks.** 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

D
Dong Daxiang 已提交
103
[9]. Balázs Hidasi, Alexandros Karatzoglou, Linas Baltrunas, Domonkos Tikk. **Session-based Recommendations with Recurrent Neural Networks.** 2016