flask
https://dormousehole.readthedocs.io/en/latest/
fastApi
https://fastapi.tiangolo.com/zh/
django
https://docs.djangoproject.com/zh-hans/2.0/
pmml
https://zhuanlan.zhihu.com/p/73245462
https://www.freesion.com/article/10901383197/
PMML 介绍:
https://zhuanlan.zhihu.com/p/73245462
xgboost为例导出模型到本地:
from sklearn2pmml import PMMLPipeline
from sklearn_pandas import DataFrameMapper
from sklearn2pmml import sklearn2pmml
import pickle
clf = xgb.XGBRegressor()
clf.fit(df_train[column_list], df_train[[y_name]])
# method1:存储为PMML形式
pipeline = PMMLPipeline([("regression", clf)])
pipeline.fit(df_train[column_list], df_train[[y_name]])
sklearn2pmml(pipeline, "models/%s.pmml" % clf_str, with_repr=True)
# method2:pickle保存模型 .dat
# save model to file
pickle.dump(clf, open("models/%s.pickle.dat" % clf_str, "wb"))
xgb_model = pickle.load(open("models/XGBRegressor().pickle.dat", "rb"))
column_list = ['c1', 'c2', 'c3']
result = xgb_model.predict(df[column_list])
xgboost-pmml,java调用pmml参考资料:
https://www.cnblogs.com/pinard/p/9220199.html
https://www.freesion.com/article/10901383197/
https://blog.csdn.net/Katherine_hsr/article/details/84951324
来自:机器学习算法线上部署方法
我们经常会碰到一个问题:用了复杂的GBDT或者xgboost大大提升了模型效果,可是在上线的时候又犯难了,工程师说这个模型太复杂了,我没法上线,满足不了工程的要求,你帮我转换成LR吧,直接套用一个公式就好了,速度飞速,肯定满足工程要求。这个时候你又屁颠屁颠用回了LR,重新训练了一下模型,心里默骂千百遍:工程能力真弱。
这些疑问,我们以前碰到过,通过不断的摸索,试验出了不同的复杂机器学习的上线方法,来满足不同场景的需求。在这里把实践经验整理分享,希望对大家有所帮助。(我们的实践经验更多是倾向于业务模型的上线流程,广告和推荐级别的部署请自行绕道)。
首先在训练模型的工具上,一般三个模型训练工具,Spark、R、Python。这三种工具各有千秋,以后有时间,我写一下三种工具的使用心得。针对不同的模型使用场景,为了满足不同的线上应用的要求,会用不同的上线方法。
以上三种做法,都会用SOA里面进行数据处理和变换,只有部分变换会在提供的Function或者类进行处理,一般性都建议在SOA里面处理好,否则性能会变慢。
大概场景罗列完毕,简要介绍一下各不同工具的线上应用的实现方式。
大部分模型都可以用PMML的方式实现,PMML的使用方法调用范例见:
这里我介绍另一种的上线方式:Rserve。具体实现方式是:用SOA调用Rserve的方式去实现,我们会在服务器上部署好R环境和安装好Rserve,然后用JAVA写好SOA接口,调用Rserve来进行预测;
Rserve方式可以批量预测,跟PMML的单个预测方式相比,在少数据量的时候,PMML速度更快,但是如果是1000一次一批的效率上看,Rserve的方式会更快;用Rserve上线的文件只需要提供两个:
Rserve_1启动把模型结果(XX.Rdata)常驻内存。预测需要的输入Feature都在Java里定义好不同的变量,然后你用Java访问Rserve_1,调用Pred.R进行预测,获取返回的List应用在线上。最后把相关的输入输出存成log进行数据核对。
Pred.R <- function(x1,x2,x3){
data <
版权说明:如非注明,本站文章均为 扬州驻场服务-网络设备调试-监控维修-南京泽同信息科技有限公司 原创,转载请注明出处和附带本文链接。
请在这里放置你的在线分享代码