-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
HttpOptions模式启动,预测失败 #57
Comments
我看你的http配的地址是 这个的意思是你需要在这个地址处启动一个feature_service的服务,这个服务满足SPI的接口定义,在跑预测的时候,serving会从发请求给这个地址,这个地址会返回对应的数据。 你可以使用serving自带的工具来启动一个简单的feature_service, 源码在这里, https://github.com/secretflow/serving/blob/main/secretflow_serving/tools/simple_feature_service/main.cc |
这个工具应该在serving镜像的tools/simple_feature_service目录下 |
好的,我学习一下 |
1 similar comment
不行,模型导出的设计是要配合SecretPad使用的,不建议自己传参调用 后续应该会补一个模型导出相关的文档 |
先做WOE,再做数据分割不应该更合理些吗?这样只需要一次WOE,反过来则需要两次WOE |
你好。按道理是可以的。但是 train_test_split 在serving 没有意义,也就不可能自动转化到serving。我们没有计划做这方面的投入。欢迎贡献。 |
应该都可以 |
我运行了serving自带的工具示例,运行图片保存在下面链接 |
是的,虽然中间执行了split但并不影响WOE的导出 |
我在编写好特征服务,启动后进行预测报错返回: |
特征服务的返回如下: |
啊 我知道为啥了,因为你的 |
{ 改成这样试试呢 |
嗯嗯,可以了感谢 |
@sunrh0 如果是想单独部署serving,可以参考文档:https://www.secretflow.org.cn/zhCN/docs/serving/0.2.0b0/topics/deployment/deployment |
谢谢,我已经部署成功,但是预测推理的时候,输入的 "query_datas"字段结构是什么,可以在https://www.secretflow.org.cn/zh-CN/docs/serving/0.4.0b0/reference/api 看到定义,但没理解怎么构造? |
或者换一种说法,在https://www.secretflow.org.cn/zh-CN/docs/kuscia/v0.10.0b0/tutorial/run_sf_serving_with_api_cn中模型的{\"featureMapping\":{\"v24\":\"x24\",\"v22\":\"x22\",\"v21\":\"x21\",\"v25\":\"x25\",\"v23\":\"x23\"}, 如何和 "query_datas"字段中的“a”对应起来? |
您好,如果是mock数据源,"query_datas"字段可以是任意的;如果是真实的数据,"query_datas"字段是对应的特征 |
您好,比如featureMapping建立了5个特征分别是"v24", "v22", "v21", "v25", "v23",假如真实数据为{"v24":1, "v22":2, "v21":3, "v25":4, "v23":5},怎么构造"query_datas"字段,能举个例子吗?谢谢 |
想象如果预测的输入是一个表格,这个表格有 |
好的,理解了,谢谢 |
这部分文档我们后续会补一下,从中可以看出在生产环境中featureService应当是一个单独的服务。另外你可以看看FeatureSourceConfig,除了mock,可以配置csv和http服务作为预测数据源。csv的feature数据源好配置,只需要配置个本地的csv。http的feature数据源需要起一个满足SPI协议的服务,如果觉得自己实现一个http的serving比较麻烦,可以看看secretflow_serving/tools/simple_feature_service这个会编译出一个加载csv作为http服务启动的小工具,serving的docker中也有这个工具,感兴趣可以玩玩。 |
您好,有个问题请教一下,下图中csv的feature数据源好配置是否正确,能否给一个csv的示例呢?(主要是mock数据源配置和https://www.secretflow.org.cn/zh-CN/docs/serving/0.5.0b0/reference/config#featuresourceconfig 给定的不一样),还有就是FeatureSourceConfig支不支持多种形式的数据源,如图中给定的mock数据源和csv数据源。 |
不用写mockOpts, 写csvOpts就可以了 |
在使用过程碰到一个问题:整型数据训练出来的模型格式是int64,而特征服务需要json序列化来传送数据,但int64不支持序列化。这个有什么办法解决吗 |
在浮点型数据也遇到问题,其中一个特征服务返回数据是:{'status': {'code': 0, 'msg': 'success'}, 'features': [{'field': {'name': 'x4', 'type': 'FIELD_DOUBLE'}, 'value': {'ds': [0.8331954909367376, 0.6551617580858518, 0.4914635008769847, 0.452637272297438, 0.5530084837837435]}}, {'field': {'name': 'x3', 'type': 'FIELD_DOUBLE'}, 'value': {'ds': [0.30349848436065485, 0.41580141733966997, 0.5420890983051451, 0.9868331101265608, 0.6425192017138739]}}, {'field': {'name': 'x1', 'type': 'FIELD_DOUBLE'}, 'value': {'ds': [0.51496055809575, 0.25841104560731754, 0.6074943235752931, 0.2553390312983149, 0.15287892489704036]}}, {'field': {'name': 'x0', 'type': 'FIELD_DOUBLE'}, 'value': {'ds': [0.8107051572972277, 0.06495183281646077, 0.4881279083806714, 0.4621165711181842, 0.02779285987218849]}}, {'field': {'name': 'x2', 'type': 'FIELD_DOUBLE'}, 'value': {'ds': [0.0038974624302559047, 0.7999695847105199, 0.8178230817179253, 0.7223414317766689, 0.44216349587970416]}}]} |
可以同时支持mockOpts和csvOpts吗? 报错日志:[error] [utils.cc:JsonToPb:52] json to pb failed, msg:INVALID_ARGUMENT:(party_configs[1].value.feature_s |
如果我改只写csvOpts了,它是不是不能再从原训练数据集里求交查数据来预测了 |
我改成只填csvOpts,它报[secretflow_serving/framework/execute_context.cc:29] com2023011620063473637 exec failed: code(3), [Enforce fail at secretflow_serving/util/arrow_helper.cc:431] is_in_array->true_count() == is_in_array->length(). query data row ids:9 do not all exists in id column of csv file, match count: 0. 说明是拿id只从csvOpts里的csv文件里找数据预测了 |
是这样,从路径拿了 |
可以告知invalid format string这个错误是在代码哪里报了吗?或者在serving的哪个地方做了格式检查 |
您好,再请教一下,我们在隐语组件的基础上简单修改了纵向逻辑回归的训练与预测组件,然后针对训练好的纵向逻辑回归模型,利用serving实现在线推理,现在服务上线都没问题。但数据源选择mock方式,出现了下图的问题,请问具体什么原因导致的,应该去哪里排查这个问题,谢谢! |
您好,请问您这个问题解决了吗?我也遇到同样的问题。如果解决了,能说明下问题,还有您的服务是怎么部署的,我是本地加载模型,http特征数据源,特征服务起来了,但是请求查询会出现查不到值的情况,问下您是怎么搭建特征服务的? |
没有解决,就用Python起的服务 |
特征服务不是用工具simple_feature_service执行命令/root/sf_serving/tools/simple_feature_service/simple_feature_service --port=9999 --csv_filename=/root/sf_serving/conf/bob.csv --csv_id_column_name=id_name吗?我看你之前有个图片应该也是这样起的服务。想问下你执行curl --location 'http://127.0.0.1:9999/BatchFeatureService/BatchFetchFeature' \的时候返回特征列对应的值了吗?我的出现提示[info] [simple_feature_service.cc:141] extract 0 rows是怎么回事? |
没有,我后面自己按文档写了个 |
尝试使用HttpOptions模式来启动服务并预测,参考文档:https://www.secretflow.org.cn/zh-CN/docs/serving/0.2.0b0/reference/config#featuresourceconfig、https://www.secretflow.org.cn/zh-CN/docs/serving/0.2.0b0/topics/system/feature_service,
创建服务好像成功了,但在预测的时候报错了:
具体日志文件如下
ss.log
The text was updated successfully, but these errors were encountered: