-
Notifications
You must be signed in to change notification settings - Fork 78
如何加载模型及验证2.0
Tips:源码中提供了简单的LR模型用于进行简单测试,可以在没有安装FATE的情况下使用该模式。将 example/model_cache_example.zip 解压至guest与host双方serving-server实例部署目录下的
.fate
目录下(若是不存在可手动新建该目录),重启即可自动加载模型并绑定到lr-test
前面介绍了如何安装各个组件,在各组件都成功安装后,接下来需要将模型推送至serving-server。 推送模型的一般流程是
- 通过FATE建模
- 分别部署guest方 Fate-serving 与host方Fate-serving
- 分别配置好guest方Fate-flow与guest方Fate-serving、host方Fate-flow 与host方Fate-serving ,Fateflow配置见github上的介绍,下文简单罗列了Fateflow的配置,可用作参考。
- Fate-flow推送模型
- Fate-flow将模型绑定serviceId
6 . 以上操作完成后,可以在serving-admin页面上查看模型相关信息(此步操作非必需)
- 可以在serving-admin页面上测试调用(此步操作非必需)
具体的工作流程如下图所示 蓝色为guest集群,灰色代表host集群
在执行模型的推送和绑定操作之前,需要先配置FATE-Flow,并重启FATE-FLOW:
注意多方都需要修改成各自FATE-Serving的实际部署地址
- 修改arch/conf/server_conf.json,填入FATE-Serving集群实际部署serving-server服务的ip:port,如:
"servings": [
"192.168.1.1:8000",
"192.168.1.2:8000"
]
- 重启FATE-Flow服务
- 修改部署目录下arch/conf/base_conf.yaml
use_registry: true
zookeeper:
hosts:
- '192.168.1.1:2181'
- '192.168.1.1:2182'
其中ZOOKEEPER_HOSTS
填入FATE-Serving集群实际部署Zookeeper的ip:port
- 若zookeeper开启了ACL,则需要添加以下配置,否则略过此步骤。修改部署目录下
arch/conf/base_conf.yaml
zookeeper:
use_acl: true
user: fate
password: fate
其中use
与password
填入FATE-Serving群实际部署Zookeeper的用户名与密码
服务生效
- 重启FATE-Flow服务
当上述两种情况都配置了的情况下,会默认使用zookeeper模式。
配置路径:$pythonpath/fate_flow/examples/publish_load_model.json
修改内容:将实际任务配置(initiator, role, job_parameters)进行修改,请确保model_id
及model_version
与离线训练的模型的相同。
配置格式:
{
"initiator": {
"party_id": "10000",
"role": "guest"
},
"role": {
"guest": ["10000"],
"host": ["10000"],
"arbiter": ["10000"]
},
"job_parameters": {
"work_mode": 1,
"model_id": "arbiter-10000#guest-9999#host-10000#model",
"model_version": "202006122116502527621"
}
}
配置路径:$pythonpath/fate_flow/examples/bind_model_service.json
修改内容:自定义service_id
,后续将利用该service_id
将模型绑定到模型服务中。将实际任务配置(initiator, role, job_parameters)进行修改,请确保model_id
及model_version
与离线训练的模型的相同。
配置格式:
{
"service_id": "",
"initiator": {
"party_id": "10000",
"role": "guest"
},
"role": {
"guest": ["10000"],
"host": ["10000"],
"arbiter": ["10000"]
},
"job_parameters": {
"work_mode": 1,
"model_id": "arbiter-10000#guest-10000#host-10000#model",
"model_version": "202006122116502527621"
},
"servings": [
]
}
常见问题 | 可能原因 | 解决方案 |
---|---|---|
加载(load)/绑定(bind)模型提示“Please configure servings address” | 用户未在server_conf中配置FATE-Serving的ip地址及端口 | 正确修改server_conf中的serving组件配置,重启fate_flow_server后进行重试。 |
加载(load)模型提示“failed” | FATE rollsite或serving组件未启动 | 检查$pythonpath/logs/fate_flow/fate_flow_stat.log,确定是否有组件未启动,如果有,请正确启动组件后重试。 |
绑定(bind)模型提示“no service id” | bind任务配置文件中未指定service_id | 修改bind任务配置文件,自定义指定service_id。 |
更多FATE-Flow问题请查看FATE-Flow