MLOps的工作流程
MLOps的目的是通过结合ML系统开发(dev)和ML系统部署(ops)来规范和简化生产中高性能模型的持续交付。
它的目的是加快将机器学习模型投入运行的过程,然后是它们的维护和监控。一个ML模型在准备投入生产之前必须经历一些阶段。这些程序保证你的模型可以适当地扩展到广泛的用户群。你会碰到那个MLOps工作流程。
为什么是MLOps
数据摄取、数据准备、模型训练、模型调优、模型部署、模型监控、可解释性,以及更多复杂的过程,只是构成机器学习生命周期的几个复杂元素。MLOps为你提供了效率、风险缓解和可扩展性。
由于MLOps,数据团队可以更快速地设计模型,提供更高质量的模型,并更快地部署和生产模型。此外,它允许大规模的可扩展性和管理,允许持续集成、持续交付和持续部署成千上万的模型。
MLOps工作流程
MLOps工作流程的上层(管道)和下层(driover)经常被分离成两个基本层次。驱动程序由数据、代码、人工制品、中间件和基础设施组成,而管道则由开发、部署和监控组成。下面的驱动程序使流水线成为可能。你可以在这个工作流程的帮助下,简单地对ML模型进行原型设计、测试和验证。
以下是这些层级的子部分 –
管线
最上面的一层是管道。它被用于模型的部署和监控。
构建模块
这一部分负责模型的训练、打包和版本管理部分。
- 数据摄取– 它是机器学习管道中的一个触发步骤。通过从不同的数据源(如数据库、数据仓库或数据湖)提取数据,并为模型训练阶段摄入必要的数据,它解决了数据的数量、速度、有效性和多样性。数据验证和核实,包括验证逻辑,是在摄取阶段之后进行的。
-
模型训练– 它包含模块化代码或脚本,执行所有常规的ML操作,如特征工程和特征缩放,标准化等。为了使模型与数据集相匹配,在训练ML模型(训练集)的同时进行超参数调整。手动完成这一阶段是可能的,然而有效的自动选项包括网格搜索或随机搜索。
-
模型测试– 现在模型已经被训练和准备好了,它的性能将在测试数据的预测结果的前提下被评估。输出结果将是一个指标性的分数。
-
模型打包 – 在训练好的模型经过前一步的测试后,模型可以被序列化为一个文件或容器化(使用Docker),以输出到生产环境。
-
模型注册 – 一旦模型在前一阶段被容器化,它将被注册并保存在模型注册表中。一个注册的模型由一个或多个文件组成,这些文件构建、表示和执行该模型。在这一点上,模型已经被训练并准备部署到生产环境中,因为整个ML管道已经完成。
部署模块
使用部署模块(build)可以实现我们在上一节课中创建的ML模型的操作化。
- 测试– 在将一个ML模型投入生产使用之前,测试它的性能和稳健性是至关重要的。因此,我们有 “应用测试 “阶段,在这个阶段,我们彻底评估所有训练有素的模型在与生产环境非常相似的测试环境中的恢复力和性能。在应用测试过程中,我们将模型部署在模拟生产环境的测试环境(预生产)中。
-
发布– 之前评估的模型现在被用于生产中,提供有用的功能。由于CI/CD管道,这个生产版本被部署到生产环境中。
监控模块
在监控阶段,对部署的ML应用进行跟踪和评估。预先定义的指标可用于评估性能。
- 监控 – 数据完整性、模型漂移和应用性能都由监控模块监控,它也收集重要信息。遥测信息可用于跟踪应用性能。
它显示了一个生产系统的设备性能是如何随时间变化的。生产系统的性能、健康和寿命可以使用来自生产系统的加速度计、陀螺仪、湿度、磁力计、压力和温度传感器的遥测数据进行监测。
- 分析– 为了提高模型的商业相关性,实时使用模型的可解释性方法来分析模型的基本属性,如公平性、信任、偏见、透明度和错误分析。
-
治理 – 监测和分析是为了治理已部署的应用程序,以确保它为企业的利益(或ML系统的目的)发挥其最大作用。在跟踪和检查生产数据后,我们可以创建特定的警报,并采取具体措施来规范系统。
现在我们已经达到MLOps管道的结论。所有使用MLOps方法开发、部署和维护的模型都是可以端到端追踪的,它们的脉络被记录下来,以便追踪模型的起源。这包括模型开发的源代码,用于训练和测试的数据,以及模型的参数限制。
驱动程序
-
数据 – 任何机器学习方法都可以使用结构化或非结构化的数据。在ML应用中,数据管理涉及一些程序。数据被分为训练数据、测试数据和监测数据,并对其进行版本划分,以实现ML管道的有效运行。
-
代码 – MLOps管道由三个关键的代码模块提供动力:训练代码、测试代码和应用代码。为了确保MLOps管道的正常运行,这些脚本或代码片段利用CI/CD和数据管道来运行。
-
工件 – MLOps管道产生的工件包括数据、序列化的模型、代码片段、系统日志以及用于训练和测试ML模型的指标细节。所有这些人工制品对于MLOps管道的良好运作都是必要的。
-
中间件 – 被称为中间件的计算机软件为软件程序提供了超出操作系统所提供的功能。由于中间件的服务,多个应用程序可用于自动化和协调MLOps管道的活动。
-
基础设施 – MLOps管道需要关键的计算和存储资源,以便开发、测试和部署ML模型。由于计算资源的存在,我们可以训练、部署和监控我们的ML模型。