引言:按照官网安装kubefate和在b站的视频课有所不同,按照官网有一些地方操作会有问题。所以首选用视频课的安装,官网补充。下面所提参考博客讲述了用docker 部署FATE和验证部署的部份。本博客补充了验证Serving-Service功能部份。

一.安装方法

  1. 官网
  • https://github.com/FederatedAI/KubeFATE/blob/master/docker-deploy/README_zh.md
 2.B站视频和CSDN参考博客
  • https://www.bilibili.com/video/BV1ZE41157CV?from=search&seid=6231864991103314115
  • https://blog.csdn.net/soumnswpz/article/details/105145423

二.部署和验证FATE所遇问题

    1.我遇到的有1.docker load fate_<version>-images.tar.gz 解压失败,后来用了docker load -i fate_1.3.0-images.tar.gz;2.要注意执行bash docker_deploy.sh all  的前提是免密登录,如果还没设置就要分别设置,包括training和serving模式。所以应该按照博客的流程(就是视频课的操作)去操作一般没问题。
    2.安装完后测试一般没问题,如果有问题就再运行一次。如果bug多就重装,基本上如果出现一点不同【比如因为网络原因,通过ID为10000的电脑安装ID为9999的电脑失败(bash docker_deploy.sh all –-training),后面单独安装9999的配置会有问题】,就按视频流程来一起安装,查看日志什么的反而花时间更多
    3.安装完成,总是要关机吧。关机后再开机运行测试实例发现出错,这时执行docker ps发现很多容器没开,上网查了开启所有容器的操作docker start $(docker ps -a | awk '{ print $1}' | tail -n +2),发现还是不行。最后没办法去FATE群里专家,才知道他们的开启方式是:进入data/projects/fate/conf-xxx下执行命令docker-compose down后再执行docker-compose up -d。如果要使用在线预测功能,还要在data/projects/fate/serving-xxx中执行上述操作。【这样操作就是相当于卸载容器再安装,修改过的内容不再被保存。我不解为什么他们要这么操作,也许他们就没有关机过吧。其实后来尝试了只要在上述两个文件夹下执行docker-compose restart重启容器就可以了。

三.验证Serving-Service功能

1.加载并绑定模型
  按部就班地照着官网应该是没问题,但是如果使用虚拟机可能会出现以下问题:执行python fate_flow_client.py -f bind -c examples/bind_model_service.json绑定模型会出错:“ "retmsg": "<_Rendezvous of RPC……”原因是虚拟机会默认开启防火墙,这个问题就是防火墙开启引起的。而云服务器一般是默认关闭防火墙,用他们的安全组来代替防火墙功能,所以应该不会遇到这个问题。解决方案已经上传到github:https://github.com/FederatedAI/KubeFATE/issues/112

2.发送POST请求(对比官网操作)

  安装火狐浏览器的RESTClient插件,点击最上方的“增加HTTP头字段”添加头部

请求方法选择POST,网址就是官网上的网址,不过记得加上http://,{SERVING_SERVICE_IP}是guest方的IP。最后在正文中输入以下发送请求即可:
{
  "head": {
    "serviceId": "test"
  },
  "body": {
    "featureData": {
      "x0": 0.254879,
      "x1": -1.046633,
      "x2": 0.209656,
      "x3": 0.074214,
      "x4": -0.441366,
      "x5": -0.377645,
      "x6": -0.485934,
      "x7": 0.347072,
      "x8": -0.287570,
      "x9": -0.733474,
    }
  }
}
 3.可能遇到的问题
  • 找不到“添加HTTP头部字段”

 解决:最大化火狐浏览器即可:

  • 返回消息:"SYSTEM_ERROR"或者“"NET_ERROR"”
 解决:在本机浏览器输入可能会出现此问题,所以进去虚拟机里面按上述操作打开RESTClient,只不过{SERVING_SERVICE_IP}用localhost代替即可。其实访问fateboard也可能会出现这种错误,就是用IP地址访问就会失败,只能用localhost。
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐