Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleFL
提交
fb8a15f3
P
PaddleFL
项目概览
PaddlePaddle
/
PaddleFL
通知
35
Star
5
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
6
列表
看板
标记
里程碑
合并请求
4
Wiki
3
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleFL
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
6
Issue
6
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
3
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
fb8a15f3
编写于
5月 18, 2020
作者:
J
jingqinghe
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update document
上级
0a9ddb1e
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
16 deletion
+16
-16
README_cn.md
README_cn.md
+16
-16
未找到文件。
README_cn.md
浏览文件 @
fb8a15f3
...
@@ -21,7 +21,7 @@ pip install paddle_fl
...
@@ -21,7 +21,7 @@ pip install paddle_fl
### 从源码编译
### 从源码编译
#### 环境准备
####
A.
环境准备
*
CentOS 6 or CentOS 7 (64 bit)
*
CentOS 6 or CentOS 7 (64 bit)
*
Python 2.7.15+/3.5.1+/3.6/3.7 ( 64 bit) or above
*
Python 2.7.15+/3.5.1+/3.6/3.7 ( 64 bit) or above
...
@@ -31,7 +31,7 @@ pip install paddle_fl
...
@@ -31,7 +31,7 @@ pip install paddle_fl
*
GCC or G++ 4.8.3+
*
GCC or G++ 4.8.3+
*
cmake 3.15+
*
cmake 3.15+
#### 克隆源代码并编译安装
####
B.
克隆源代码并编译安装
获取源代码
获取源代码
```
sh
```
sh
...
@@ -78,13 +78,13 @@ cd redis-stable && make
...
@@ -78,13 +78,13 @@ cd redis-stable && make
在PaddleFL中,横向和纵向联邦学习策略将根据[4]中给出的分类来实现。PaddleFL也将提供在自然语言处理,计算机视觉和推荐算法等领域的应用示例。
在PaddleFL中,横向和纵向联邦学习策略将根据[4]中给出的分类来实现。PaddleFL也将提供在自然语言处理,计算机视觉和推荐算法等领域的应用示例。
#### 联邦学习策略
####
A.
联邦学习策略
-
**纵向联邦学习**
: 带privc的逻辑回归,带第三方privc的神经网络[5]
-
**纵向联邦学习**
: 带privc的逻辑回归,带第三方privc的神经网络[5]
-
**横向联邦学习**
: 联邦平均 [2],差分隐私 [6],安全聚合
-
**横向联邦学习**
: 联邦平均 [2],差分隐私 [6],安全聚合
#### 训练策略
####
B.
训练策略
-
**多任务学习**
[7]
-
**多任务学习**
[7]
...
@@ -108,7 +108,7 @@ Paddle Encrypted 设计与PaddlePaddle相似,没有密码学相关背景的用
...
@@ -108,7 +108,7 @@ Paddle Encrypted 设计与PaddlePaddle相似,没有密码学相关背景的用
在PaddeFL中,用于定义联邦学习任务和联邦学习训练工作的组件如下:
在PaddeFL中,用于定义联邦学习任务和联邦学习训练工作的组件如下:
#### 编译时
####
A.
编译时
-
**FL-Strategy**
: 用户可以使用FL-Strategy定义联邦学习策略,例如Fed-Avg[2]。
-
**FL-Strategy**
: 用户可以使用FL-Strategy定义联邦学习策略,例如Fed-Avg[2]。
...
@@ -118,7 +118,7 @@ Paddle Encrypted 设计与PaddlePaddle相似,没有密码学相关背景的用
...
@@ -118,7 +118,7 @@ Paddle Encrypted 设计与PaddlePaddle相似,没有密码学相关背景的用
-
**FL-Job-Generator**
: 给定FL-Strategy, User-Defined Program 和 Distributed Training Config,联邦参数的Server端和Worker端的FL-Job将通过FL Job Generator生成。FL-Jobs 被发送到组织和联邦参数服务器以进行联合训练。
-
**FL-Job-Generator**
: 给定FL-Strategy, User-Defined Program 和 Distributed Training Config,联邦参数的Server端和Worker端的FL-Job将通过FL Job Generator生成。FL-Jobs 被发送到组织和联邦参数服务器以进行联合训练。
#### 运行时
####
B.
运行时
-
**FL-Server**
: 在云或第三方集群中运行的联邦参数服务器。
-
**FL-Server**
: 在云或第三方集群中运行的联邦参数服务器。
...
@@ -135,30 +135,30 @@ Paddle Encrypted 中的安全训练和推理任务是基于底层的ABY3多方
...
@@ -135,30 +135,30 @@ Paddle Encrypted 中的安全训练和推理任务是基于底层的ABY3多方
Paddle Encrypted的整个训练及推理过程主要由三个部分组成:数据准备,训练/推理,结果解析。
Paddle Encrypted的整个训练及推理过程主要由三个部分组成:数据准备,训练/推理,结果解析。
#### 数据准备
####
A.
数据准备
##### 私有数据对齐
#####
1.
私有数据对齐
Paddle Encrypted允许数据拥有方(数据方)在不泄露自己数据的情况下,找出多方共有的样本集合。此功能在纵向联邦学习中非常必要,因为其要求多个数据方在训练前进行数据对齐,并且保护用户的数>据隐私。凭借PSI算法,Paddle Encrypted可以在一秒内完成6万条数据的对齐。
Paddle Encrypted允许数据拥有方(数据方)在不泄露自己数据的情况下,找出多方共有的样本集合。此功能在纵向联邦学习中非常必要,因为其要求多个数据方在训练前进行数据对齐,并且保护用户的数>据隐私。凭借PSI算法,Paddle Encrypted可以在一秒内完成6万条数据的对齐。
##### 数据加密及分发
#####
2.
数据加密及分发
在Paddle Encrypted中,数据方将数据和模型用秘密共享的方法加密,然后用直接传输或者数据库存储的方式传到计算方。每个计算方只会拿到数据的一部分,因此计算方无法还原真实数据。
在Paddle Encrypted中,数据方将数据和模型用秘密共享的方法加密,然后用直接传输或者数据库存储的方式传到计算方。每个计算方只会拿到数据的一部分,因此计算方无法还原真实数据。
#### 训练及推理
####
B.
训练及推理
像PaddlePaddle一样,训练和推理任务可以分为编译阶段和运行阶段。
像PaddlePaddle一样,训练和推理任务可以分为编译阶段和运行阶段。
##### 编译时
#####
1.
编译时
*
**确定MPC环境**
:用户需要指定用到的MPC协议,并配置网络环境。现有版本的Paddle Encrypted只支持"ABY3"协议。更多的协议将在后续版本中支持。
*
**确定MPC环境**
:用户需要指定用到的MPC协议,并配置网络环境。现有版本的Paddle Encrypted只支持"ABY3"协议。更多的协议将在后续版本中支持。
*
**用户定义训练任务**
:用户可以根据Paddle Encrypted提供的安全接口,定义集齐学习网络以及训练策略。
*
**用户定义训练任务**
:用户可以根据Paddle Encrypted提供的安全接口,定义集齐学习网络以及训练策略。
##### 运行时
#####
2.
运行时
一个Paddle Encrypted程序实际上就是一个PaddlePaddle程序。在运行时,Paddle Encrypted的程序将会转变为PaddlePaddle中的ProgramDesc,并交给Executor运行。以下是运行阶段的主要概念:
一个Paddle Encrypted程序实际上就是一个PaddlePaddle程序。在运行时,Paddle Encrypted的程序将会转变为PaddlePaddle中的ProgramDesc,并交给Executor运行。以下是运行阶段的主要概念:
*
**运算节点**
:计算节点是与计算方相对应的实体。在实际部署中,它可以是裸机、云虚拟机、docker甚至进程。Paddle Encrypted在每次运行中只需要三个计算节点,这由底层ABY3协议决定。Paddle Encrypted程序将在所有三个计算节点上并行部署和运行。
*
**运算节点**
:计算节点是与计算方相对应的实体。在实际部署中,它可以是裸机、云虚拟机、docker甚至进程。Paddle Encrypted在每次运行中只需要三个计算节点,这由底层ABY3协议决定。Paddle Encrypted程序将在所有三个计算节点上并行部署和运行。
*
**基于MPC的算子**
:Paddle Encrypted 为操作加密数据提供了特殊的算子,这些算子在PaddlePaddle框架中实现,基于像ABY3一样的MPC协议。像PaddlePaddle中一样,在运行时Paddle Encrypted的算子将被创建并按照顺序执行。
*
**基于MPC的算子**
:Paddle Encrypted 为操作加密数据提供了特殊的算子,这些算子在PaddlePaddle框架中实现,基于像ABY3一样的MPC协议。像PaddlePaddle中一样,在运行时Paddle Encrypted的算子将被创建并按照顺序执行。
#### 结果重构
####
C.
结果重构
安全训练和推理工作完成后,模型(或预测结果)将由计算方以加密形式输出。结果方可以收集加密的结果,使用Paddle Encrypted中的工具对其进行解密,并将明文结果传递给用户。
安全训练和推理工作完成后,模型(或预测结果)将由计算方以加密形式输出。结果方可以收集加密的结果,使用Paddle Encrypted中的工具对其进行解密,并将明文结果传递给用户。
...
@@ -185,15 +185,15 @@ Gru4Rec [9] 在基于会话的推荐中引入了递归神经网络模型。Paddl
...
@@ -185,15 +185,15 @@ Gru4Rec [9] 在基于会话的推荐中引入了递归神经网络模型。Paddl
### Paddle Encrypted
### Paddle Encrypted
#### 精度测试
####
A.
精度测试
##### 训练参数
#####
1.
训练参数
-
数据集:波士顿房价预测。
-
数据集:波士顿房价预测。
-
训练轮数: 20
-
训练轮数: 20
-
Batch Size:10
-
Batch Size:10
#####实验结果
#####
2.
实验结果
| Epoch/Step | paddle_fl.mpc | Paddle |
| Epoch/Step | paddle_fl.mpc | Paddle |
| ---------- | ------------- | ------ |
| ---------- | ------------- | ------ |
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录