(一)联邦学习FATE框架1.6.0版本单机部署和实战训练评估篇
FATE 1.6.0学习笔记
系统安装,环境搭建和fate框架搭建指南手册下载
链接:https://pan.baidu.com/s/1K-88uye6RN3tLHw6f_r9Ug
提取码:5y2u
注意看我标黄的注释,有改动。不然会出现安装失败或者资源下载失败等问题。
Centos7系统镜像去阿里云镜像仓库下载,好用,不用换源。注意安装的时候不要选最小安装,选安装GNOME桌面,兼容工具,系统工具和开发工具也打勾。有了图形化界面直接在终端输入命令比较方便。有文件路径不对的时候,去文件系统搜索这个文件名可以得到实际路径,和攻略比对后修改路径即可。
Vmvare安装centos7系统
设置虚拟机硬盘储存空间的时候建议设置100G,免得安装fate时空间不足。
网络连接方式选择NAT。
如果每次重启电脑后VM都连不上网络。那么应该是NAT服务问题,进入本人PC系统,打开 服务 ,找到
设置为开机自动启动即可,其他形式网络连接就开DHCP等。原理相同。
Jdk 8u201 linux版本下载
链接:https://pan.baidu.com/s/1IBWU226Uxnsx0-kkwpdxzg
提取码:ae2m
FATE单机部署
Fate1.6.0集成了前面的fate_python和fateboard镜像,所以单机部署完后只有一个fate镜像。
使用 docker fate ls 命令可以看到文件夹,有上述文件夹,所以说明是集成的。
进入容器命令 docker exec -it fate /bin/bash
进入容器可以查看容器的文件。容器相当于一个Linux系统,所以很多命令相似。如图
不知道为什么切换路径只能用绝对路径。或者前面加./
federatedml 这个文件夹在1.6.0版本中,在 python文件夹下
实战篇-横向学习训练评估
1. 编写上传数据配置
如果熟练了,可以用官方实战教程,采用外部数据集,自己写配置文件进行训练。具体资源参考:
https://github.com/FederatedAI/Practicing-Federated-Learning/tree/main/chapter05_FATE_HFL
但刚入门就不给自己挑战了,本次测试的时候直接用fate给的测试数据集和配置。参考的文章为
https://blog.csdn.net/qq_28540443/article/details/104562797
1.6.0版本的fate和以往版本有所改动。其中脚本的路径和配置文件路径在1.6.0中都改了,加载配置文件时,我的命令如下。
python /fate/python/fate_flow/fate_flow_client.py -f upload -c /fate/examples/dsl/v1/upload_data_host.json
python /fate/python/fate_flow/fate_flow_client.py -f upload -c /fate/examples/dsl/v1/upload_data_guest.json
如果是自己编写配置文件,需要用到vim命令,要进入fate镜像安装vim功能,否则无法编辑配置文件。下面为在fate容器内安装vim步骤
首先更新容器的源
方法一:进入阿里云-容器镜像服务-镜像工具-镜像加速器
获得个人专属加速链接
然后在虚拟机打开终端,
修改/etc/docker/daemon.json文件配置
vim /etc/docker /daemon.json
{
"registry-mirrors": ["https://m3dz4myl.mirror.aliyuncs.com"]
}
重启daemon
systemctl daemon-reload
重启docker服务
systemctl restart docker
方法二:直接输入命令换源
mv /etc/apt/sources.list /etc/apt/sources.list.bak
echo "deb http://mirrors.163.com/debian/ jessie main non-free contrib" >> /etc/apt/sources.list
echo "deb http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie main non-free contrib" >>/etc/apt/sources.list
echo "deb-src http://mirrors.163.com/debian/ jessie-proposed-updates main non-free contrib" >>/etc/apt/sources.list
然后更新安装命令
apt-get update
然后更新依赖
apt-get install -y libtinfo5 --allow-remove-essential
然后安装vim
apt-get install -y vim
编辑配置文件
① vim /fate/examples/dsl/v1/upload_data_host.json
内容替换为
{
"file":"examples/data/breast_homo_host.csv",
"head":1,
"partition":10,
"work_mode":0,
"table_name":"fuqlaihomo_breast_host",
"namespace":"fuqlaihomo_breast_host"
}
② vim /fate/examples/dsl/v1/upload_data_guest.json
内容替换为
{
"file":"examples/data/breast_homo_guest.csv",
"head":1,
"partition":10,
"work_mode":0,
"table_name":"homo_breast_guest",
"namespace":"homo_breast_guest"
}
上传配置数据
python /fate/python/fate_flow/fate_flow_client.py -f upload -c /fate/examples/dsl/v1/upload_data_host.json
出现下面的信息说明上传成功
python /fate/python/fate_flow/fate_flow_client.py -f upload -c /fate/examples/dsl/v1/upload_data_guest.json
导入训练数据
python /fate/python/fate_flow/fate_flow_client.py -f upload -c /fate/examples/dsl/v1/homo_logistic_regression/upload_data_host.json
python /fate/python/fate_flow/fate_flow_client.py -f upload -c /fate/examples/dsl/v1/homo_logistic_regression/upload_data_guest.json
python /fate/python/fate_flow/fate_flow_client.py -f upload -c /fate/examples/dsl/v1/homo_logistic_regression/upload_data_test.json
出现上图则为导入成功,浏览器输入 虚拟机ip:8080 进入fateboard可以看到刚刚上传的两个任务
点击任务ID可以查看详细信息
2. 建模(第二节建模全部用测试用例,无需自己编写)
借助FATE,我们可以使用组件的方式来构建联邦学习,而不需要用户从新开始编码,FATE构建联邦学习Pipeline是通过自定义dsl和conf两个配置文件来实现:
· dsl文件:用来描述任务模块,将任务模块以有向无环图(DAG)的形式组合在一起。
· conf文件:设置各个组件的参数,比如输入模块的数据表名;算法模块的学习率、batch大小、迭代次数等。
2.1编写dsl配置
为了让任务模型的构建更加灵活,目前 FATE 使用了一套自定的领域特定语言 (DSL) 来描述任务。在 DSL 中,各种模块(例如数据读写 data_io,特征工程 feature-engineering, 回归 regression,分类 classification)可以通向一个有向无环图 (DAG) 组织起来。通过各种方式,用户可以根据自身的需要,灵活地组合各种算法模块。
为了尝试多一点的组件,我们的实践将涵盖训练以及评估模型。
Fate1.6.0中配置文件路径为
/fate/examples/dsl/v1/homo_logistic_regression/test_homolr_train_job_dsl.json
/fate/examples/dsl/v1/homo_logistic_regression/test_homolr_train_job_conf.json
配置文件在哪个目录,就在哪个目录下执行训练(为了方便),不然每条命令都要用绝对路径。
2.1.1建模数据流定义(以下仅仅列举使用外部数据集的时候应该做的步骤,我们测试用例并不需要自己编写)
组件结构体具体说明见:
https://github.com/FederatedAI/FATE/blob/master/doc/dsl_conf_v1_setting_guide_zh.rst
2.1.2训练输入输出定义
2.1.3评估输入输出定义
2.2编写运行配置
2.2.1guest角色参数
2.2.2host角色参数
2.3算法参数配置
3.开始训练评估任务
FATE1.6.0版本中命令为
python /fate/python/fate_flow/fate_flow_client.py -f submit_job -c /fate/examples/dsl/v1/homo_logistic_regression/test_homolr_evaluate_job_conf.json -d /fate/examples/dsl/v1/homo_logistic_regression/test_homolr_evaluate_job_dsl.json
出现下图则为成功开始运行
在fatebord中可以看到运行进度
3. 查看结果
点击job ID查看每个过程组成的DAG图
点击绿色的dataio_0,再点击右边的view the output
由于输出类型是data类型,可以在"data output"看到输入的数据列表项如上
点击log查看日志
3.1查看dataio_1执行结果
dataio_1是用于评估的数据,数据输出结果如下
3.2查看训练分析结果
homo_lr_0
homo_lr_0是分别在guest,host训练homo_breast_guest以及homo_breast_host得出最终模型,下面表格列出所有特征variable以及通过LR分类得出特征对应权值weight
下面表格列出所有特征variable以及通过LR分类得出特征对应权值weight
下面还有一个曲线图,表示LR损失函数值随着迭代次数的变化
查看data output
id:id
label: 标签值,真实结果
predict_result: 预测结果
predict_score: 预测得分
predict_detail:预测结果的细节
homo_lr_1
home_lr_1是基于homo_lr_0预测test数据集的结果。
输出模型结果如下:
查看data output 训练结果如下
3.3查看模型评估结果
3.3.1 homo_lr_0模型评估evalation_0 结果
这里的auc值、ks值显示训练数据集的正样本概率以及好坏样本累计差异率
3.3.2 homo_lr_1模型评估evalation_1 结果
homo_lr_1使用homo_lr_0训练的模型对test数据集进行预测,得出的结果如下图,相对evalation_0各部分指标略有下降。
(一)联邦学习FATE框架1.6.0版本单机部署和实战训练评估篇相关推荐
- 联邦学习FATE框架安装搭建 - CentOS8
联邦学习 FATE (Federated AI Technology Enabler) 是微众银行AI部门发起的开源项目,为联邦学习生态系统提供了可靠的安全计算框架.FATE项目使用多方安全计算 (M ...
- 联邦学习FATE框架安装搭建
联邦学习 FATE (Federated AI Technology Enabler) 是微众银行AI部门发起的开源项目,为联邦学习生态系统提供了可靠的安全计算框架.FATE项目使用多方安全计算 (M ...
- Mac/Linux 安装联邦学习 Fate 框架单机部署所需的依赖(填坑大全)
安装过程各种坑,官方单机部署教程,然而官方教程问题超多,我在Mac本机与新建的ubuntu18.04.5上分别单机部署,使用standalone-fate-master-1.4.5.tar.gz,py ...
- 【联邦学习FATE框架实战】(二)用FATE从零开始实现横向逻辑回归
目录 1. 获取数据集 1.1 下载数据集 1.2 横向数据集切分 2. 通过DSL Conf运行训练和预测任务 2.1 数据输入 2.2 模型训练 2.2.1 配置DSL文件 2.2.2 运行配置S ...
- 联邦学习FATE框架安装
下载standalone-fate-master-1.2.0: curl -O https://webank-ai-1251170195.cos.ap-guangzhou.myqcloud.com/s ...
- 【联邦学习FATE框架实战】(四)用FATE从零开始实现纵向线性回归
目录 1. 制作数据集 2. 通过DSL Conf运行训练和预测任务 2.1 数据输入 2.2 模型训练 2.2.1 配置DSL文件 2.2.2 运行配置Submit Runtime Conf 2.2 ...
- 联邦学习开源框架FATE
FATE (Federated AI Technology Enabler) 是微众银行AI部门发起的全球首个联邦学习工业级开源框架,可以让企业和机构在保护数据安全和数据隐私的前提下进行数据协作. F ...
- 联邦学习开源框架FATE助力腾讯神盾沙箱,携手打造数据安全合作生态
近日,微众银行联邦学习FATE开源社区迎来了两位新贡献者--来自腾讯的刘洋及秦姝琦,作为云计算安全领域的专家,两位为FATE构造了新的功能点,并在Github上提交修复了相关漏洞.(Github项目地 ...
- 联邦学习fate笔记小结
20211006 https://gitee.com/jfdwd/FedRec fate推荐 faterec job_config和task_config不是同一个东西 task_config包含jo ...
最新文章
- JS删除数组指定下标并添加到数组开头
- 使用×××版软件中常见的一些错误代码
- Django的第二次尝试
- 面向对象-----封装
- 08:vigenère密码_密码技术:Vigenére密码,Playfair密码,Hill密码
- (JAVA)Math类
- linux如何脚本监控tps,通过shell脚本监控日志切换频率
- 技术实践丨Prometheus+Grafana搭建HBase监控仪表盘
- java释放对象_在Java中释放Semaphore对象的正确方法是什么...
- 提高你css技能的css开发技巧
- bat批处理命令大全(翻译转载)
- 咸鱼笔记:《实用软件工程》第一、二章课后简答题及参考答案
- 超级超级实用的整个网页截图技巧
- 运动图像国际压缩标准-整理
- 游戏引擎设计的技术及详解
- 仓库摆放示意图_仓库布局,搞懂这两张图就够了!
- java.lang.NoSuchMethodException: tk.mybatis.mapper.provider.SpecialProvider 使用MySqlMapper的问题
- 时间不够用?柳比歇夫时间管理法帮到你
- Android Provision (OOBE)
- configure.ac(configure.in)内容详解