MLOps与MLflow工具应用指南

在当今快速发展的人工智能领域,机器学习(ML)和DevOps的结合产生了一个新的概念——MLOps。MLOps是一套指导原则,旨在帮助机器学习专家加快ML模型在实际项目中的部署,并提高项目流程操作的整体集成度。本文将从MLOps的基本概念出发,探讨MLflow这一工具如何助力MLOps的实施。

MLOps简介

MLOps将“机器学习”和“DevOps”两个词汇结合起来,形成了一个新的术语,它在软件开发中被广泛使用。MLOps可以被看作是一套扩展了DevOps方法论的实践,将数据科学和机器学习纳入其中。随着人工智能在软件生产中的普及,需要一套公认的最佳实践来提供新系统的测试、部署和监控。MLOps的完整过程包括三个广泛的阶段:“设计ML驱动的应用”、“ML实验与开发”以及“ML运营”。

MLOps将设计与运营结合起来,使得开发能够在一个健壮的平台上进行。MLOps要求所有用于模型部署的数据或工件都包含在一个由训练项目创建的文件集中。在将这些模型工件分组后,开发者必须能够跟踪用于创建它们的代码、用于训练和测试它们的数据以及它们之间的联系。这使得自动化应用创建和交付的步骤成为可能,有助于持续集成/持续部署(CI/CD),使ML应用能够持续部署、集成和交付。

MLOps的优势

MLOps带来了三个关键优势:自动化、持续部署和监控。自动化消除了手动操作的过程,有助于构建定期的ML模型而无需任何手动干预。例如,自动化测试或调试可以减少人为错误并节省修正时间。问题在失控之前就能被立即修复或报告。

监控是另一种自动化形式,但它涉及到在满足某些条件时发送信号。这些信号可能与模型或数据有关。可能是检测到异常,如漂移,对于模型来说,可能是当触发某个指标或超参数时。这可能在模型部署后进行,以便即使在生产中,它仍在接收新数据并自动重新训练。

“X”是MLOps的另一个关键优势,它也意味着自动化,生产中有一个循环。这可能是持续交付(CD)、持续集成(CI)、持续训练(CT)、持续监控等。MLOps中的这一特性提供了一种自动化,允许在部署后或部署过程中扩展,其中有一些变量的持续提供。

MLOps工具

需要注意的是,这些工具并不是直接用于实施MLOps的,它们只是具有提升ML流程到MLOps的良好特性。MLOps工具帮助组织将DevOps实践应用于创建和使用AI和机器学习(ML)。这些工具的开发旨在帮助缩小开发ML模型与在商业世界中从这些模型中获益之间的差距。

要使用的工具类型取决于项目的性质。这些工具可以被看作是有效实施MLOps的平台。

MLflow简介

MLflow是一个开源平台,用于管理机器学习模型的开发,目标是满足四个主要功能。这些功能包括:MLflow跟踪、MLflow项目、MLflow模型和MLflow注册表。这些组件帮助管理ML工作流程,之前已经看到过。将看到细节以及它们如何影响MLOps。

MLflow组件与MLOps

MLflow提供了四个组件来帮助管理ML工作流程,将看到细节以及它们如何影响MLOps:

MLflow跟踪:是一个API和UI,允许使用Python、REST、R API和Java API API记录和查询实验。它旨在记录参数、代码版本控制和设置运行机器学习代码时的指标和工件,以便以后可视化结果。这个功能支持MLOps指南,创建有助于未来跟踪的详细流程。

# 例如,使用MLflow跟踪记录实验参数 import mlflow mlflow.start_run() mlflow.log_param("learning_rate", 0.01) mlflow.end_run()

MLflow项目:管理项目是MLOps的一个重要工具。在MLflow中,它是一种格式,可以轻松地打包数据科学代码,使其可重用和可复制。它包括一个API和一个命令行工具,用于运行项目,使工作流链成为可能。这些是打包数据科学代码的标准格式,它们是可重用的。

MLflow模型:MLflow模型提供了一个通用配置,用于封装机器学习模型,以便它们可以在多个其他工具中使用。配置指定了规则,允许用户以不同的“风味”存储模型,不同的下游工具可以识别这些“风味”。它为在各种风味中分发机器学习模型提供了一个标准。每个模型都被视为一个包含任意文件的目录,并且可以使用一个描述文件,列出模型的各种“风味”。

MLflow注册表:它提供了一个中央模型仓库、一组API和一个用户界面,以实现MLflow模型整个生命周期的协作管理。它提供了模型版本控制和从暂存到生产或归档模型血统的阶段转换,MLflow实验和运行产生了模型和注释。

这提供了一个一站式模型存储、一组API和UI,以集体控制MLflow模型的整个生命周期。注册模型的概念包括每个注册模型都有一个或多个版本。因此,当新模型添加到模型注册表时,它是带有版本号添加的。通常,每个新模型注册到相同的模型名称时,版本号会增加。当模型注册时,它携带一个独特的名称,并包含版本、相关过渡阶段、模型血统和其他元数据。

由于使用MLOps管理ML的生命周期可能具有挑战性,任何可以帮助协助和减轻痛苦的工具都变得非常有用。MLOps可以通过使用像MLflow这样的工具的功能来实现。MLflow在模型和数据管理方面具有前沿特性,并提供了非常广泛的开发模型的方法,这些模型在满足MLOps标准方面表现非常好,MLflow是另一个值得关注的工具。使用MLflow的最大成就是数据和模型管理

正如可能已经知道的,通过工具学习某事物是一个完美的方法。工具提供了对概念的实践理解,看到了MLOps。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485