机器学习模型部署

机器学习主要是用python来训练的模型,当前主要有以下情况:

一、单机部署方式

1、普通的模型

a)模型本身提供的部署方式:

自己封装一个restful服务,典型为采用:flask封装

b)第三方方式:PMML方式,将模型输出为 PMML格式,由第三方加载PMML模型提供输出,其中java的库很成熟,但PMML在深度学习方面上支持不足

2、深度模型

a)深度的模型,当前流行的为tensorflow,tensorflow提供serving的部署方式,具体来说就是:一个通用的model服务器框架,一个远程通用的model调用的rpc框架,python2中有对应的包,python3中需要引用

其他分布式深度学习框架也有自己的解决方案

b)第三方方式:ONNX--跨框架的模型中间表达框架,支持通用的神经网络的中间表达格式的方法,应该说是深度学习的PMML标准

 

二、分布式部署

1、简单方案:

对外采用http接口,http接口采用nginx做负载均衡即可,无需请求端做服务返现

2、复杂方案

采用服务发现,将提供服务的注册到一个地方,请求方做简单的服务发现,实现简单的rpc方法。当前docker、k8s、consul提供了不少的支撑

3、分布式运行平台

当前主要是云上的平台(重点在深度学习),开源的支撑分布式运行的平台还很少

 

三、部署自动化编排

直接将对应的model push到平台上运行,多版本管理和更新,当前除了云上有成熟的方案,其他没有看到。

 

四、参考文档

1、tensorflow serving方法
算法工程化系列––serving方法(1)
    https://zhuanlan.zhihu.com/p/90559710
算法工程化系列––serving方法(2)
    https://zhuanlan.zhihu.com/p/90564719
算法工程化系列——模型固化
    https://zhuanlan.zhihu.com/p/89510893
Tensorflow Serving部署流程
    https://zhuanlan.zhihu.com/p/42905085
    
Tensorflow Serving 生产环境部署介绍
    https://zhuanlan.zhihu.com/p/113527219
2、ONNX Model和PMML Model
Inferencing MNIST ONNX Model using AI-Serving
    https://github.com/autodeployai/ai-serving/blob/master/examples/AIServingMnistOnnxModel.ipynb
使用开源AI-Serving部署推理PMML和ONNX模型
    https://blog.csdn.net/weixin_45626901/article/details/105815440
使用PMML部署机器学习模型
    https://blog.csdn.net/weixin_45626901/article/details/100733053
ONNX--跨框架的模型中间表达框架
    https://zhuanlan.zhihu.com/p/41255090

3、其他(分布式模型训练)
基于Hadoop分布式集群YARN模式下的TensorFlowOnSpark平台搭建
    https://blog.csdn.net/u010159842/article/details/78604971
 

 

 

你可能感兴趣的:(机器学习,---自然语言处理)