MLOps工作流程


MLOps 的目的是通过将机器学习系统开发 (dev) 与机器学习系统部署 (ops) 相结合,来标准化和简化生产环境中高性能模型的持续交付。

它旨在加速将机器学习模型投入运营,以及随后的维护和监控过程。在 ML 模型准备好投入生产之前,必须经历多个阶段。这些过程确保您的模型能够适当地扩展以满足广泛的用户群。您会遇到 MLOps 工作流程。

为什么要使用 MLOps?

数据摄取、数据准备、模型训练、模型调整、模型部署、模型监控、可解释性等等复杂过程,仅仅是构成机器学习生命周期的一些复杂要素。MLOps 为您提供效率、风险缓解和可扩展性。

借助 MLOps,数据团队可以更快地设计模型,交付更高质量的模型,以及更快地部署和生产模型。此外,它还支持大规模的可扩展性和管理,允许持续集成、持续交付和持续部署数千个模型。

MLOps 工作流程

MLOps 工作流程通常分为两个基本层级:上层(管道)和下层(驱动)。管道包括开发、部署和监控,而驱动则由数据、代码、工件、中间件和基础设施组成。底层的驱动使管道成为可能。借助此工作流程,您可以轻松地对 ML 模型进行原型设计、测试和验证。

这些层级的子部分如下:

管道

顶层是管道。它用于模型部署和监控。

构建模块

此部分负责模型的训练、打包和版本控制部分。

  • 数据摄取 - 它是机器学习管道中的触发步骤。它通过从各种数据源(例如数据库、数据仓库或数据湖)提取数据并摄取模型训练阶段所需的数据,解决了数据的量、速率、有效性和多样性问题。数据验证和确认(包括验证逻辑)在摄取阶段之后执行。

  • 模型训练 - 它包含执行所有常规 ML 操作(例如特征工程和特征缩放、标准化等)的模块化代码或脚本。在训练 ML 模型时(训练集)进行超参数调整,以使模型与数据集相匹配。此阶段可以手动完成,但有效的自动选项包括网格搜索或随机搜索。

  • 模型测试 - 现在模型已训练并准备就绪,将根据其在测试数据上的预测结果来评估其性能。输出将以指标分数的形式呈现。

  • 模型打包 - 在上一步骤中对训练好的模型进行测试后,可以将模型序列化为文件或容器化(使用 Docker)以导出到生产环境。

  • 模型注册 - 在上一阶段将模型容器化后,将对其进行注册并保存在模型注册表中。注册的模型由一个或多个构建、表示和执行模型的文件组成。此时,模型已完成完整的 ML 管道训练并准备好在生产环境中部署。

部署模块

部署模块可以使用我们在上一节中创建的 ML 模型进行操作化(构建)。

  • 测试 - 在将 ML 模型投入生产使用之前,对其性能和鲁棒性进行测试至关重要。因此,我们有了“应用程序测试”阶段,在该阶段,我们对所有训练过的模型的弹性和性能进行彻底评估,在与生产环境非常相似的测试环境中进行评估。在应用程序测试过程中,我们在模拟生产环境的测试环境(预生产)中部署模型。

  • 发布 - 之前评估过的模型现在正在生产环境中使用以提供有用的功能。由于 CI/CD 管道的缘故,此生产版本被部署到生产环境。

监控模块

在监控阶段,跟踪和评估部署的 ML 应用程序。可以使用预定义的指标来评估性能。

  • 监控 - 监控模块监控数据完整性、模型漂移和应用程序性能,并收集重要信息。遥测信息可用于跟踪应用程序性能。

    它显示了生产系统设备性能随时间推移的变化情况。可以使用来自生产系统加速度计、陀螺仪、湿度、磁力计、压力和温度传感器的遥测数据来监控生产系统的性能、健康状况和使用寿命。

  • 分析 - 为了提高模型的商业相关性,实时使用模型可解释性方法来分析模型的基本属性,例如公平性、信任度、偏差、透明度和错误分析。

  • 治理 - 对部署的应用程序进行监控和分析,以确保其为业务(或 ML 系统的目的)提供最佳性能。在跟踪和检查生产数据后,我们可以创建特定的警报并采取特定的措施来管理系统。

    我们现在已经到达了 MLOps 管道的末尾。所有使用 MLOps 方法开发、部署和维护的模型都是端到端可追溯的,并且记录了它们的谱系,以便追溯模型的起源。这包括模型开发所依据的源代码、用于训练和测试它的数据以及限制它的参数。

驱动

  • 数据 - 任何机器学习方法都可以使用结构化或非结构化数据。在 ML 应用程序中,数据管理涉及许多过程。为了有效地运行 ML 管道,数据被划分为训练数据、测试数据和监控数据并进行版本控制。

  • 代码 - MLOps 管道由三个关键代码模块提供支持:训练代码、测试代码和应用程序代码。为了确保 MLOps 管道正常运行,这些脚本或代码片段利用 CI/CD 和数据管道运行。

  • 工件 - MLOps 管道会生成工件,包括数据、序列化模型、代码片段、系统日志以及用于训练和测试 ML 模型的指标详细信息。所有这些工件对于 MLOps 管道的良好运行都是必不可少的。

  • 中间件 - 中间件是一种计算机软件,它为软件程序提供超出操作系统提供的功能。借助中间件服务,可以利用多个应用程序来自动化和协调 MLOps 管道的活动。

  • 基础设施 - MLOps 管道需要关键的计算和存储资源才能开发、测试和部署 ML 模型。借助计算资源,我们可以训练、部署和监控我们的 ML 模型。

更新于: 2023年2月17日

329 次查看

启动您的 职业生涯

通过完成课程获得认证

开始
广告

© . All rights reserved.