一些全球部门开始对机器学习 (ML) 进行更多投资。
ML 模型最初可以由专家团队启动和操作,但最大的障碍之一是将获得的知识转移到下一个模型,以便扩展流程。
为了改进和标准化模型生命周期管理中涉及的流程,创建机器学习模型的团队越来越多地使用 MLOps 技术。
继续阅读以了解有关当今可用的一些最佳 MLOps 工具和平台的更多信息,以及它们如何从工具、开发人员和程序的角度使机器学习更容易。
什么是MLOps?
为机器学习模型创建策略、规范和最佳实践的技术称为“机器学习操作”或“MLOps”。
MLOps 旨在保证 ML 开发的整个生命周期——从概念到部署——都经过精心记录和管理,以获得最佳结果,而不是在没有策略的情况下投入大量时间和资源。
MLOps 的目标是编纂最佳实践,使机器学习开发对 ML 操作员和开发人员更具可扩展性,并提高 ML 模型的质量和安全性。
有些人将 MLOps 称为“机器学习的 DevOps”,因为它成功地将 DevOps 原则应用于更专业的技术开发领域。
这是考虑 MLOps 的一种有用方式,因为与 DevOps 一样,它强调团队和工具之间的知识共享、协作和最佳实践。
MLOps 为开发人员、数据科学家和运营团队提供了一个合作框架,从而产生最强大的 ML 模型。
为什么使用 MLOps 工具?
MLOps 工具可以为 ML 团队执行广泛的职责,但是,它们通常分为两组:平台管理和单个组件管理。
虽然一些 MLOps 产品只关注单一核心功能,例如数据或元数据管理,但其他工具采用更全面的策略,并提供 MLOps 平台来控制 ML 生命周期的多个方面。
寻找可帮助您的团队管理这些 ML 开发领域的 MLOps 解决方案,无论您是在寻找专家还是更广泛的工具:
- 数据处理
- 设计和建模
- 项目和工作场所的管理
- ML 模型部署和持续维护
- 从头到尾的生命周期管理,通常由全方位服务的 MLOps 平台提供。
MLOps 工具
1. 流
机器学习生命周期由开源平台 MLflow 控制,包括中央模型注册、部署和实验。
MLflow 可以被任何规模的团队单独或集体使用。 库与该工具无关。
任何编程语言和机器学习库都可以使用它。
为了更简单地训练、部署和管理机器学习应用程序,MLFlow 与许多机器学习框架交互,包括 TensorFlow 和 Pytorch。
此外,MLflow 提供易于使用的 API,可以包含在任何现有的机器学习程序或库中。
MLflow 具有四个有助于跟踪和计划实验的关键功能:
- MLflow Tracking – 用于记录机器学习代码参数、版本、指标和工件以及随后显示和对比结果的 API 和 UI
- MLflow 项目——以可重复使用、可重现的格式打包机器学习代码,以便转移到生产环境或与其他数据科学家共享
- MLflow 模型——维护模型并将其部署到来自各种 ML 库的一系列模型服务和推理系统
- MLflow 模型注册表 – 一个中央模型存储,支持对 MLflow 模型的整个生命周期进行协作管理,包括模型版本控制、阶段转换和注释。
2. Kubeflow
Kubernetes 的机器学习工具箱称为 Kubeflow。 打包和管理 Docker 容器,帮助维护 机器学习系统.
通过简化机器学习工作流的运行编排和部署,它促进了机器学习模型的可扩展性。
这是一个开源项目,其中包括一组精心挑选的互补工具和框架,这些工具和框架针对不同的 ML 需求量身定制。
Kubeflow Pipelines 可以处理长时间的 ML 训练任务、手动实验、可重复性和 DevOps 挑战。
对于机器学习的几个阶段,包括训练、管道开发和维护 Jupyter笔记本, Kubeflow 提供专门的服务和集成。
它使管理和跟踪 AI 工作负载的生命周期以及将机器学习 (ML) 模型和数据管道部署到 Kubernetes 集群变得简单。
它提供:
- 使用 SDK 与系统交互的笔记本
- 用于控制和监视运行、作业和实验的用户界面 (UI)
- 快速设计端到端解决方案,无需每次都重新构建,并重用组件和管道。
- 作为 Kubeflow 的关键组件或作为独立安装,提供了 Kubeflow Pipelines。
3. 数据版本控制
用于机器学习项目的开源版本控制解决方案称为 DVC,或数据版本控制。
无论您选择哪种语言,它都是一种有助于定义管道的实验性工具。
当您发现早期版本的 ML 模型存在问题时,DVC 利用代码、数据版本控制和重现性来帮助您节省时间。
此外,您可以使用 DVC 管道来训练您的模型并将其分发给您的团队成员。 大数据组织和版本控制可以由 DVC 处理,并且可以以易于访问的方式存储数据。
尽管它包括一些(有限的)实验跟踪功能,但它主要侧重于数据和管道版本控制和管理。
它提供:
- 它与存储无关,因此可以采用多种存储类型。
- 它还提供跟踪统计信息。
- 一种将 ML 阶段加入 DAG 并从头到尾运行整个管道的预构建方法
- 每个 ML 模型的整个开发都可以使用其整个代码和数据来源进行跟踪。
- 通过忠实地保留实验的初始配置、输入数据和程序代码来实现重现性。
4. 厚皮动物
Pachyderm 是一个用于机器学习和数据科学的版本控制程序,类似于 DVC。
此外,因为它是使用创建的 Docker 和 Kubernetes,它可以在任何云平台上执行和部署机器学习应用程序。
Pachyderm 保证机器学习模型中消耗的每条数据都可以被追溯和版本化。
它用于创建、分发、管理和关注机器学习模型。 模型注册表、模型管理系统和 CLI 工具箱都包括在内。
开发人员可以使用 Pachyderm 的数据基础自动化和扩展他们的机器学习生命周期,这也确保了可重复性。
它支持严格的数据治理标准,降低数据处理和存储成本,并帮助企业更快地将其数据科学计划推向市场。
5. 聚轴蛋白
使用 Polyaxon 平台,机器学习项目和深度学习应用程序可以在其整个生命周期内进行复制和管理。
Polyaxon 能够托管和管理该工具,并且可以放置在任何数据中心或云提供商中。 例如 Torch、Tensorflow 和 MXNet,它们支持所有最流行的深度学习框架。
在编排方面,Polyaxon 使您能够通过其 CLI、仪表板、SDK 或 REST API 安排任务和测试来充分利用集群。
它提供:
- 您现在可以使用开源版本,但它也包括企业的选择。
- 尽管它涵盖了整个生命周期,包括运行编排,但它的功能远不止于此。
- 它包含技术参考文档、入门指南、学习材料、手册、教程、变更日志等,是一个文档齐全的平台。
- 借助实验洞察仪表板,可以密切关注、跟踪和评估每个优化实验。
6. 彗星
Comet 是一个用于跟踪、对比、解释和改进实验和模型的元机器学习平台。
您可以在一个位置查看和比较您的所有实验。
它适用于任何机器学习任务、执行代码的任何地方以及任何机器学习库。
Comet 适用于希望快速可视化实验、简化工作和进行实验的团体、个人、学术机构、企业和任何其他人。
数据科学家和团队可以使用自托管和基于云的元机器学习平台 Comet 跟踪、澄清、改进和比较实验和模型。
它提供:
- 许多功能可供团队成员共享任务。
- 它有几个集成,可以很容易地将它链接到其他技术
- 与当前的 ML 库配合良好
- 负责用户管理
- 启用了实验比较,包括代码、超参数、指标、预测、依赖关系和系统指标的比较。
- 为视觉、音频、文本和表格数据提供不同的模块,让您可视化样本。
7. 奥图纳
Optuna 是一个自主超参数优化系统,可应用于机器学习和深度学习以及其他领域。
它包含各种尖端算法,您可以从中选择(或链接),使得在多台计算机上分发训练变得非常简单,并提供有吸引力的结果可视化。
PyTorch、TensorFlow、Keras、FastAI、sci-kit-learn、LightGBM 和 XGBoost 等流行的机器学习库都与它集成。
它提供了尖端算法,通过迅速减少看起来没有希望的样本,使客户能够更快地获得结果。
使用基于 Python 的算法,它会自动搜索理想的超参数。 Optuna 鼓励在不更改原始代码的情况下跨多个线程进行并行超参数搜索。
它提供:
- 它支持集群上的分布式训练以及单台计算机(多进程)(多节点)
- 它支持多种修剪技术以加速收敛(并使用更少的计算)
- 它具有多种强大的可视化功能,例如切片图、等高线图和平行坐标。
8. 凯德罗
Kedro 是一个免费的 Python 框架,用于编写可以为数据科学项目更新和维护的代码。
它将软件工程最佳实践的想法带到机器学习代码中。 Python 是这个工作流编排工具的基础。
为了使您的 ML 流程更简单、更精确,您可以开发可重现、可维护和模块化的工作流程。
Kedro 将模块化、职责分离和版本控制等软件工程原则整合到机器学习环境中。
它在 Cookiecutter Data Science 的基础上,提供了一个通用的、适应性强的项目框架。
许多用于跨多个文件系统和文件格式存储和加载数据的简单数据连接器由数据目录管理。 它使机器学习项目更有效,并使建立数据管道变得更简单。
它提供:
- Kedro 允许分散或单独的机器部署。
- 您可以使用管道抽象自动化 Python 代码和工作流可视化之间的依赖关系。
- 通过使用模块化、可重用的代码,该技术促进了各个层面的团队协作,并提高了编码环境中的生产力。
- 主要目标是通过编写可维护的数据科学编程来克服 Jupyter 笔记本、一次性脚本和粘合代码的缺点。
9. BentoML
使用 BentoML 可以更轻松地构建机器学习 API 端点。
它提供了一个典型但精简的基础设施,将学习到的机器学习模型转移到生产中。
它使您能够打包学习模型以在生产环境中使用,并使用任何 ML 框架对其进行解释。 支持离线批量服务和在线 API 服务。
高性能模型服务器和灵活的工作流程是 BentoML 的特点。
此外,服务器提供自适应微批处理。 UI 仪表板提供了一种用于组织模型和跟踪部署过程的统一方法。
不会出现服务器宕机,因为运行机制是模块化的,配置是可重用的。 它是一个用于提供、组织和部署 ML 模型的灵活平台。
它提供:
- 它具有可适应的模块化设计。
- 它支持跨多个平台的部署。
- 它不能自动处理水平缩放。
- 它支持单一模型格式、模型管理、模型打包和高性能模型服务。
10. 塞尔顿
数据科学家可以使用开源 Seldon Core 框架在 Kubernetes 上大规模创建、部署和管理机器学习模型和实验。
TensorFlow、sci-kit-learn、Spark、R、Java 和 H2O 只是它支持的一些工具包。
它还与 Kubeflow 和 RedHat 的 OpenShift 交互。 Seldon 核心将机器学习模型(ML 模型)或语言包装器(Python、Java 等语言)转换为生产 REST/GRPC 微服务。
用于改进机器学习过程的最佳 MLOps 工具之一就是这个。
使用 Seldon Core 将 ML 模型容器化并测试可用性和安全性很简单。
它提供:
- 模型部署可以通过多种替代方案变得更简单,例如金丝雀部署。
- 要了解做出特定预测的原因,请使用模型解释器。
- 出现问题时,请使用警报系统密切关注生产模型。
结论
MLOps 可以帮助更好地进行机器学习操作。 MLOps 可以加快部署,使数据收集和调试更简单,并改善工程师和数据科学家之间的协作。
为了让您选择最适合您需求的 MLOps 工具,本文研究了 10 个流行的 MLOps 解决方案,其中大部分是开源的。
发表评论