大多数在线资源侧重于机器学习生命周期的前期步骤,例如探索性数据分析(EDA)、模型选择和模型评估。然而,模型部署是一个似乎很少讨论的话题,因为它可能很复杂。没有软件工程或DevOps背景的人很难理解部署。
本文将详细概述,什么是模型部署、模型的高级架构、部署模型的不同方法,以及确定部署方法时要考虑的因素。
什么是模型部署?
部署机器学习模型,也称为模型部署,简单来说就是将机器学习模型集成到现有的生产环境中,在该环境中,模型可以接受输入并返回输出。部署模型的目的是让其他人(无论是用户、管理人员还是其他系统)可以使用训练有素的机器学习模型进行预测。
模型部署与机器学习系统架构密切相关,机器学习系统架构是指系统内软件组件的排列和交互,以实现预定义的目标。
模型部署标准
在部署模型之前,机器学习模型需要满足几个标准才能准备好部署:
- 可移植性:这是指软件从一台机器或系统转移到另一台机器或系统的能力。便携式模型是一种响应时间相对较短,且可以轻松重写的模型。
- 可扩展性:这是指模型可以扩展的规模。可扩展模型是一种无需重新设计即可维持其性能的模型。
这一切都将在生产环境中进行,生产环境是一个术语,用于描述软件和其他产品实际投入运行以供最终用户使用的环境。
用于模型部署的机器学习系统架构
从高层次来看,机器学习系统有四个主要部分:
- 数据层:数据层提供对模型所需的所有数据源的访问。
- 特征层:特征层负责以透明、可扩展和可用的方式生成特征数据。
- 评分层:评分层将特征转换为预测。Scikit-Learn是最常用的,也是评分的行业标准。
- 评估层:评估层检查两个模型的等效性,可用于监控生产模型。它用于监控和比较训练预测与实时流量预测的匹配程度。
需要了解的3种模型部署方法
部署ML模型有三种常用方法:一次性、批量和实时。
1、一次性
并不总是需要持续训练机器学习模型来进行部署。有时,模型仅需要一次或定期需要。在这种情况下,可以简单地在需要时对模型进行临时训练,然后将其投入生产,直到其性能恶化到需要修复为止。
2、批量
批量训练,能够不断拥有最新版本的模型。这是一种可扩展的方法,一次获取数据的子样本,从而无需每次更新都使用完整的数据集。如果在一致的基础上使用模型,但不一定需要实时预测,这是不错的方法。
3、实时
在某些情况下,需要实时预测,例如确定交易是否欺诈。这可以通过使用在线机器学习模型来实现,例如使用随机梯度下降的线性回归。
需要考虑的4个模型部署因素
在决定如何部署机器学习模型时,应该考虑许多因素和影响。这些因素包括以下内容:
- 预测生成的频率以及需要预测结果的迫切程度。
- 预测应该单独生成还是批量生成。
- 模型的延迟要求、拥有的计算能力以及所需的服务级别协议(SLA)。
- 部署和维护模型所需的运营影响和成本。
了解这些因素,有助于在一次性、批量和实时模型部署方法之间做出选择。