机器学习模型跨语言调用选择

目前机器学习模型线上部署的总结分类为

1、离线预测+不跨语言 

这种最简单,就是用什么语言训练的就用什么语言预测,而且不用考虑多并发和响应时间等问题

2、离线预测+跨语言 

用一种语言训练,另一种语言预测,但是不用考虑多并发和响应时间等问题

3、在线预测+不跨语言 

用同一种语言训练和预测,同时要考虑多并发和响应时间等问题,

像scala和java这种都是跑在jvm上的,以及tf自己实现了java库的,可以认为是同一种语言

4、在线预测+跨语言 

用不同的语言训练和预测,目前没有用到

实战:

目前在我们没有grpc,或者thrift 这种 rpc的跨语言调用方式,

所以对于机器学习模型的部署, 要么采用官方提供的jpmml来实现跨语言调用,

要么则采用将模型的预测部分代码 变成java的形式来实现

这两种方法,通过实际测试发现性能上java版预测模型的速度是官方提供的jpmml的五倍左右

你可能感兴趣的:(机器学习模型跨语言调用选择)