前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MLSQL如何支持部署SKLearn,Tensorflow,MLLib模型提供API预测服务

MLSQL如何支持部署SKLearn,Tensorflow,MLLib模型提供API预测服务

作者头像
用户2936994
发布2018-08-27 14:41:06
8120
发布2018-08-27 14:41:06
举报
文章被收录于专栏:祝威廉

部署成API服务时,除了要把raw数据特征化成向量外,研发还要想着怎么加载模型,产生模型的框架五花八门,比如Tensorflow,SKlearn,Spark MLllib等每个框架都有自己的模型格式。在我司,有一次用Sklearn研发了一个模型,研发资源比较紧张,没办法,算法同学治好自己用Python flask搭建了一个API,然后部署成微服务(多实例来解决并发能力)。

有没有一种办法,可以一键部署多个不同类型框架训练出来的模型呢?答案是有的,目前MLSQL支持部署SKlearn,Tensorflow,Spark Mllib等三种类型框架的模型,完全无需任何开发。举个例子,通过MLSQL训练了一个SkLearn算法的模型,假设是贝叶斯,我们看看部署流程:

用local模式启动StreamingPro:

代码语言:javascript
复制
./bin/spark-submit   --class streaming.core.StreamingApp \
--master local[2] \
--name predict_service \
streamingpro-spark-2.0-1.0.0.jar    \
-streaming.name predict_service    \
-streaming.job.file.path file:///tmp/query.json \
-streaming.platform spark   \
-streaming.rest true   \
-streaming.driver.port 9003   \
-streaming.spark.service true 

这个时候该服务会监听9003端口,向http://127.0.0.1:9003/run/script 接口注册已经训练好的模型:

代码语言:javascript
复制
register SKLearn.`/tmp/model` as nb_predict;

现在这个模型就已经可以对外提供服务了。你可以通过访问http://127.0.0.1:9003/model/predict获得SkLearn 贝叶斯模型的功能了。

该接口支持两个参数:

  1. data ,等待预测的向量数组,json格式。支持dense和sparse两种格式的向量。
  2. sql, 选择什么模型进行预测。

典型参数格式如下:

代码语言:javascript
复制
data=[[1,2,3...]] & sql=select nb_predict(feature) as p

其中 feature为一个固定字段,也就是指代data里面的向量。最后接口返回结果如下:

代码语言:javascript
复制
{
    "p": {
        "type": 1,
        "values": [
            1,
            0
        ]
    }
}

最后,项目地址在这里:MLSQL 模型部署

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.04.27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档