机器学习模型部署

2020-10-30  本文已影响0人  梦游的猫头鹰

开局一张图,简明扼要。

一、常见模型部署方案

1、利用Java、Spark等创建微服务API接口输出。

2、算法平台工作流部署,如蚂蚁金服的PAI平台,可实现业务同学对workflow自助搭建。其他常见决策引擎:SMG3、FICO的Blaze、SAS的Viya,这种统一的解决方案是比较好的,基本上模型监控、版本管理的功能都有提供。

3、PMML部署上线,PMML(Predictive Model Markup Language),预测模型标记语言,sklearn2pmml库(离线模型可适用joblib或pkl)导出PMML文件(xml格式),Java端采用jpmml/jpmml-evaluator项目,载入 PMML 文件。

特征工程可以线上线下分开做,也可以 DataFrameMapper 的方式实现特征工程,导出到PMML模型文件中,缺点是只可以使用Sklearn包中提供的方法。

对于神经网络的模型,可以查阅参考文章2,使适用keras2pmml库。

4、也看到有人分享BentoML、python-httpserver(Java通过Restful方式调用python,适用于并发量小的情况)等方法。

上线注意事项:

1、数值精度(例如小数点后3位)、检验变量输出一致性、分数分布一致性,定期监控线上输出结果,如有异常及早发现

2、灰度上线,一般会dry run(只打分,不决策)一段时间,等一致性评估达到预期标准后,才切换为正式上线。

二、模型部署实例

1、参考资料3有很详细的步骤,思路是在py环境下,保存model,并用flask做了个前端,接收参数,属于第一部分的4中类型。

2、利用docker部署,参考资料5,其实和1差不多,就是不依赖于环境,更鲁棒。

附,参考资料

1、风控模型上线部署流程,https://zhuanlan.zhihu.com/p/92691256

2、如何把神经网络keras模型转PMML文件?,https://mp.weixin.qq.com/s/hlv_J6BAQnr155SZ5Kv1NA

3、模型部署3/3-手把手实现利用flask深度学习模型部署,https://zhuanlan.zhihu.com/p/273252334

4、使用PMML部署机器学习模型实例,https://zhuanlan.zhihu.com/p/258946621

5、如何使用Kubernetes轻松部署深度学习模型,https://zhuanlan.zhihu.com/p/46749703

上一篇 下一篇

猜你喜欢

热点阅读