摘要: 一杯茶的功夫部署完成机器学习模型!
在生产环境中部署机器学习模型是数据工程中经常被忽视的领域。网上的大多数教程/博客都侧重于构建、训练和调整机器学习模型。如果它不能用于实际的预测,那么它又有什么用呢? 接下来了解一下有哪些部署选项吧:
评估选项
在生产中部署机器学习模型时,有多种选择。其中一种流行的方法是使用Azure Machine Learning Studio等云服务设计和训练模型,这些服务具有使用拖放工具构建和训练模型的能力。此外,将这些模型作为Web服务发布只需点击几下即可。此类设置的附加优势在于,该部署会随着应用程序使用量的增加而自动扩展。
虽然短时间看起来很方便,但从长远来看,这种设置可能会有问题。当我们想要将应用程序从第三方云平台迁移并将其部署在我们的服务器上时,就有难度了。由于这些工具与其各自的云平台紧密集成,因此这种设置不可移植。此外,随着应用程序的扩展,云计算的成本可能是一个令人望而却步的因素。
如果我们构建自定义REST-API作为机器学习模型的终点,则可以避免这些问题。特别是,本文将使用基于Python的Flask Web框架来为模型构建API,然后将这个flask应用程序整齐地集成到Docker映像中来进行部署。Docker显然适合解决这个问题,因为应用程序的所有依赖项都可以打包在容器中,并且可以通过必要时刻简单地部署更多容器来实现可伸缩性。这种部署架构本质上是可扩展的、成本有效的和便携的。
Docker:Docker是一种开源的容器化技术,允许开发人员将应用程序与依赖库打包在一起,并将其与底层操作系统隔离开来。与VM不同,docker不需要每个应用程序的Guest虚拟机操作系统,因此可以维护轻量级资源管理系统。与容器相比,虚拟机更重量级,