初学者FATE实战:部署基础问题这样解决

引言:对于初次接触FATE的用户而言,部署其是需要持续尝试的,从单机部署到集群部署,从Linux到Ubuntu,就像一座座山峰需要去“攀爬”。这篇内容从初学者角度出发,为我们展示了FATE实操过程中的一些“难点”及其解决办法,如在部署等步骤中遇到阻碍的朋友,这篇内容或许能帮到你。

初次接触联邦学习是通过联邦学习白皮书和论文Secure Federated Transfer Learing开始的.随后通过github来学习FATE框架.下面是曾经遇到的各种问题,在此记录一下我的学习历程.

由于条件限制,首先从简单的docker部署开始,在单机上面部署fate,docker的知识缺失让我在这一部分也浪费了很多时间。这部分遇到的问题是:

docker部署fate时为了挂载本地目录方便修改代码进行测试,一开始是在部署完成之后运行挂载目录的命令。结果一直没有生效,会在fate_python那个镜像下新建新的容器。最后发现需要在容器新建的时候进行挂载,于是拷了⼀份容器中的fate文件,删除了已经生成的容器和镜像,然后修改了docker_standalone-fate-1.1里面的yml文件,重修部署实现了挂载目录。
docker部署完成后,运行结果一直无法通过fateboard来可视化呈现,后面修改了fateboard地址的IP为宿主机IP便可以正常打开了。
在处理完数据集,运行程序的时候,很快出现了这个错误:
初学者FATE实战:部署基础问题这样解决_第1张图片
原因如果在log里面出现“Count of data_instance is 0”,说明该角色方没有导入数据,或者数据配置有问题,是否导入数据了呢?或者通过https://github.com/FederatedAI/FATE/blob/master/fate_flow/doc/fate_flow_cli.md
的 table_info 查询是否guest\host都有数据了。预测数据的(name,namespace)对应的表是空的,确认下是否导入了数据。

解决方法:修改upload_xxxx.json后重新上传即可。
初学者FATE实战:部署基础问题这样解决_第2张图片

上传数据的过程中还出现了上面的问题,报错信息为:ERROR:Input data’s schema for fit and transform should be same。

这个问题我觉得是因为,在文件upload的时候,会检查上传文件的特征维数并生成元文件。在submit_job的时候,直接调用元文件查看数据维数,如果train的维数与evaluate的维数不同,则会报错。貌似在hetero中evl与train数据数量不一样也会报错。(留坑)

解决方法:从_conf文件查看报错的文件属于哪个数据集。并且将train的数据集与evaluate的数据集维数一样,重新上传upload_xxx。conf。

ERROR:cannot convert
float infinity to integer
原因:不知道
初学者FATE实战:部署基础问题这样解决_第3张图片

解决方法:可以通过调整勉强跑起来。。。。

为了对单机版和集群版的运⾏效率进⾏对⽐,进⾏了集群部署。由于现有的设备是ubuntu操作系统,在部署的过程中出现了依赖包问题,以及各种没有解决的问题,⼤致如下图所⽰,最后经过很多天的折腾最终放弃了ubuntu系统, 然后在两个centos虚拟机上按照部署⼿册顺利完成了集群部署。⽬前FATE1.1.1已经增加了ubuntu集群部署⼿册啦!也算是有了⼀个指导,再次部署应该会顺利很多,还没尝试过。
初学者FATE实战:部署基础问题这样解决_第4张图片
初学者FATE实战:部署基础问题这样解决_第5张图片

集群部署成功后进⾏了算法的测试,测试线性回归时发现host⽅的fate_board什么也没有,看不到模型,也看不到预测结果,但是也没任何报错,这点⼀直没有想明⽩。

⽬前尝试开发新的算法,感觉⼿册不够详细,很多模块的调⽤关系理不清楚,所以有点⽆从下⼿,打算在docker⾥⾯debug来理解⼀个算法的调⽤流程。算法开发部分,我认为应该针对⼀个具体算法有详细的说明⽂档,⽅便初学者上⼿(像我这种什么也不会,却还有颗上进⼼的同学)

本文由FATE社区特邀作者——何汉文(重庆邮电大学研究生,微信号:hhw9527hhw)输出贡献。作者长期关注AI科技与数据安全领域,欢迎添加微信合作交流。

原创内容发布于FATE社区,未经许可,禁止转载。

你可能感兴趣的:(初学者FATE实战:部署基础问题这样解决)