如何部署经过ML训练的模型?

时间:2019-02-26 04:16:53

标签: python machine-learning scikit-learn

我是机器学习的新手。我已经完成了k均值聚类,并且训练了ml模型。我的问题是如何为经过训练的模型传递输入?

示例:          考虑一个谷歌图像处理机器学习模型。为此,我们传递了一张图像,该图像可以提供适当的输出,例如该图像中的情感。

现在我的疑问是如何做,我做了k均值预测mall_customer谁为此花了更多钱购买产品我想打电话或将输入传递给我训练有素的模型。

我正在使用python和sci-kit学习。

3 个答案:

答案 0 :(得分:1)

部署ML模型通常基于您的业务需求。如果您有大量需要预测的数据,而又不需要立即获得结果。您可以进行批量预测。建议使用此方法的典型用例。通常,它是作为较大管道的一部分部署的。设置此管道的方法有很多,它实际上取决于您公司所拥有的内容,因此我对此不做过多说明。

另一种方法是其他人提到的实时服务。典型的用例是欺诈检测。它需要立即进行预测。它通过REST / gRPC / others接收请求,并返回预测结果。根据您对延迟的要求,人们将使用高性能环境(JAVA / C)来存档低延迟。通常,在大多数情况下,烧瓶服务器可以胜任这项工作。

对于flask应用,您需要创建一个接受请求数据并进行预测的端点,然后将响应返回。

让我知道它对您有无帮助。

只是一个自带插头。我们开源了用于打包和部署的ML工具包。标签生产线从Jupyter笔记本电脑到生产仅需5分钟。它将模型和依赖项导出到可以存储在本地文件或s3中的存档中。您可以将归档文件作为python模块导入以进行预测,也可以使用内置的rest服务器进行实时预测。您还可以从生成的dockerfile创建docker映像进行生产。您可以在此处找到开源项目。它称为BentoML

答案 1 :(得分:1)

自从 2019 年提出这个问题以来,存在许多 Python 库,它们允许用户快速部署机器学习模型,而无需学习 Flask、容器化和获取网络托管解决方案。最佳解决方案取决于多种因素,例如您需要部署模型多长时间,以及它是否需要能够处理大量流量。

对于用户描述的用例,听起来 gradio 库可能会有所帮助 (http://www.gradio.app/),它允许用户使用公共链接和用户界面软部署模型Python 代码行,如下所示:

enter image description here

答案 2 :(得分:0)

这里想要的是一个API,您可以在其中发送请求/输入并获取响应/预测。

您可以创建Flask服务器,将经过训练的模型另存为pickle文件,并在进行预测时加载。这可能是一些工作。

请参考以下内容:

注意:Flask内置服务器尚未投入生产。您可能要引用uwsgi + ngnix

如果您正在使用docker:https://hub.docker.com/r/tiangolo/uwsgi-nginx-flask/,这将是一个很大的帮助。