机器学习社区的很多关注都集中在学习算法的开发上,而不是端到端机器学习流程中最重要的部分,那就是ML模型的部署和产品化。在将机器学习模型部署到生产环境中存在许多固有的挑战。 有一些公司和开源项目正在尝试将这个过程自动化,并尽可能减少数据科学家的痛苦,因为他们不一定具备DevOps技能。以下是在这个领域工作的框架和公司的列表: Seldon-提供了一些方法来包装用R、Python、Java和NodeJS构建的模型,并将其部署到Kubernetes集群中。它提供与kubeflow、IBM用于深度学习的fabric、NVIDIA TensorRT、DL推理服务器、Tensorflow服务等的集成。 Redis-ML-是Redis(内存中分布式键值数据库)中的一个模块,它允许将模型部署到生产环境中。它目前只支持以下算法:随机森林(分类和回归)、线性回归和逻辑回归。 Apache MXNet的模型服务器用于服务从MXNet或Open Neural Network Exchange (ONNX)导出的深度学习模型。 Microsoft机器学习服务允许您将模型作为web服务部署在可伸缩的Kubernetes集群上,并且可以将模型作为web服务调用。 可以使用Amazon SageMaker将模型部署到HTTPS端点,应用程序利用该端点对新数据观察进行推断/预测。 谷歌云ML还支持模型部署和通过对托管模型的web服务的HTTP调用进行推断。默认情况下,它将模型的大小限制为250 MB。 H2O通过利用Java mojo(优化的模型对象)的概念来支持模型的部署。mojo支持自动、深度学习、DRF、GBM、GLM、GLRM、K-Means、堆栈集成、支持向量机、Word2vec和XGBoost模型。它与Java类型环境高度集成。对于非java编程模型(如R或Python),可以将模型保存为序列化对象,并在推断时加载。 TensorFlow服务用于将TensorFlow模型部署到生产环境中。在几行代码中,您就可以将tensorflow模型用作预测的API。 如果您的模型已经被训练并导出为PMML格式,那么Openscoring可以帮助您将这些PMML模型作为推断的REST api提供服务。 创建GraphPipe的目的是将ML模型部署与框架特定的模型实现(例如Tensorflow、Caffe2、ONNX)解耦。参考文献:[1] J. M. Kanter and K. Veeramachaneni, “Deep feature synthesis: Towards automating data science endeavors,” in IEEE International Conference on Data Science and Advanced Analytics, 2015, pp. 1–10.[2] The Dangers of Automated Model Selection http://www.learnbymarketing.com/743/dangers-of-auto-model-select/[3] Finding Important Variables in Your Data http://www.learnbymarketing.com/603/variable-importance/