【51CTO.com快译】通过数据的可用性和可访问性以及开源的机器学习框架,数据科学家和开发人员在构建基于人工智能的解决方案时将会获得更加轻松的体验。但是,当他们需要考虑部署模型并选择最佳策略以扩展到生产级系统时,这个过程将变得更加复杂。
以下将介绍机器学习模型部署的常见挑战,并对如何解决其中的一些挑战进行探讨:
为什么成功的模型部署对于人工智能驱动的组织至关重要?
机器学习模型部署是将机器学习算法转换为Web服务的过程。而这种转换过程可以称之为可操作性:可操作性的机器学习模型意味着将其转换为可消费服务,并将其嵌入现有生产环境中。
部署模型是机器学习模型工作流程的基本步骤。通过部署机器学习模型,组织可以开始充分利用自己构建的预测和智能模型,根据模型结果开发业务实践,从而将自身转变为由人工智能驱动的实际业务。
在考虑采用人工智能时,组织需要将注意力集中在机器学习工作流程的关键组件上,例如数据源和摄取、数据管道、机器学习模型训练和测试、如何设计新功能,以及使用哪些变量使模型更精确。所有这些步骤都很重要。但是,考虑如何随着时间的推移使用这些模型和数据也是每个机器学习管道中的关键一步。当已经部署模型并投入运营时,才能从模型的预测中获取实际价值和业务收益。
成功部署模型对于人工智能驱动的组织至关重要,主要原因如下:
- 通过部署机器学习模型,组织的团队可以使用它们,向它们发送数据并获取预测,然后将其输入到机器学习系统中以提高训练数据的质量和数量。
- 一旦启动这一过程,组织将开始在生产过程中构建和部署更多数量的机器学习模型。他们可以掌握将模型从开发环境迁移到业务运营系统的可靠且可重复的方法。
为什么有些组织在模型部署上举步维艰?
许多组织将采用人工智能视为一种技术实践。但是,它更多是由组织内部发起的业务驱动的计划。为了成为人工智能驱动的组织,重要的是,组织的当前运营和了解业务的人员必须开始与负责机器学习部署工作流的团队紧密合作。
机器学习部署工作流程的每个步骤都是基于有关需要使用不同工具和服务的特定决策,以实现成功部署(从模型训练和注册到模型部署和监视):
在开始人工智能应用程序开发流程时,机器学习团队应与业务对应方进行互动。必须保持不断的交互作用,以了解与模型部署和使用步骤并行的模型实验过程。大多数组织都在努力挖掘机器学习的潜力,以优化其运营流程,并使数据科学家、分析师和业务团队使用相同的语言。
此外,机器学习模型必须基于历史数据进行训练。需要创建预测数据管道,这是个需要多个任务的活动,包括数据处理、特性工程和优化。每项任务(从数据库的版本更新到丢失值的处理)都必须从开发环境精确地复制到生产环境。有时,开发和生产中使用的技术的差异会导致部署机器学习模型中遇到困难。
组织可以使用机器学习管道来创建和管理将机器学习阶段结合在一起的工作流。例如,机器学习管道可能包括数据准备、模型训练、模型部署以及推理/评分阶段。每个阶段可以包含多个步骤,而每个步骤都可以在无人参与的各种计算目标中运行。其管道步骤是可重用的,并且如果该步骤的输出未更改,则可以在不再运行后续步骤的情况下运行它们。机器学习管道还允许数据科学家在机器学习工作流的各个区域工作时进行协作。
如何选择合适的工具来成功部署模型?
对于正在寻求通过人工智能转变运营方式的组织来说,构建、培训、测试以及最终部署机器学习模型通常是一个繁琐乏味的过程。而且,即使经过数月的开发,它可以提供基于单一算法的机器学习模型,管理团队通常并不知道他们的数据科学家是否创造了一个伟大的模型,或者如何对其进行扩展和操作。
以下分享一些有关组织如何选择合适的工具成功进行部署模型的准则。将使用Azure机器学习服务来说明此工作流,但它也可以与组织选择的机器学习产品一起使用。
模型部署工作流应基于以下三个简单步骤:
1.注册模型
已经注册的模型是构成模型的一个或多个文件的逻辑容器。例如,如果组织拥有存储在多个文件中的模型,则可以在工作空间中将它们注册为一个模型。在注册之后,可以下载或部署已注册的模型,并接收所有已注册的文件。
创建Azure机器学习工作区时可以注册机器学习模型。该模型可以来自Azure机器学习,也可以来自其他地方。
2.准备部署(指定资产、用途、计算目标)。
要将模型部署为Web服务,必须创建一个推理配置和一个部署配置。推理或模型评分是将部署的模型用于预测的阶段,通常用于生产数据。在推理配置中,组织指定服务模型所需的脚本和依赖项。在部署配置中,指定有关如何在计算目标上提供模型的详细信息。
输入脚本接收提交到已部署的Web服务的数据,并将其传递给模型。然后可以获取模型返回的响应,并将其返回给客户端。该脚本特定于组织的模型,它必须了解模型期望并返回的数据。
该脚本包含两个用于加载和运行模型的函数:
- init():通常情况下,这一函数将模型加载到全局对象中。这一函数仅在Web服务的Docker容器启动时运行一次。
- run(input_data):这一函数使用模型基于输入数据预测值。要运行的输入和输出通常使用JSON进行序列化和反序列化。组织也可以使用原始的二进制数据,可以在将数据发送到模型之前或在将其返回给客户端之前转换数据。
在注册模型时,需要在注册表中提供用于管理模型的模型名称。组织将此名称用于模型。 get_model_path()检索本地文件系统上模型文件的路径。如果注册文件夹或文件集合,则这一API会将路径返回到包含这些文件的目录。
3.将模型部署到计算目标
最后,在部署之前,组织必须定义部署配置。部署配置特定于将托管Web服务的计算目标。例如在本地部署时,必须指定服务接受请求的端口。
结论
以上介绍了机器学习模型部署的一些常见挑战,还讨论了成功部署模型对于释放人工智能的潜力至关重要,组织在部署模型方面遇到的困难,以及选择正确的工具成功部署模型。
原文How to Tackle Challenges Deploying ML Models,作者:Rajasekhar Reddy Polu
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】