MLOps工具、最佳实践和案例研究
一组被称为MLOps的程序和方法是为了保证机器学习系统的可扩展和可靠部署。为了减少技术债务,MLOps使用软件工程的最佳实践,如自动测试、版本控制、敏捷概念的应用和数据管理。
使用MLOps,在广阔的生产环境中,机器学习和深度学习模型的实现可以自动化,同时还可以提高质量和简化管理流程。在这篇文章中,你将会接触到一些工具和最佳实践,这些工具和实践将帮助你完成这项工作。
MLOps的最佳实践
以下是MLOps的最佳实践-
- 在机器学习的生命周期中,第一个阶段是解决业务问题,并确定如何使用机器学习来解决这个问题。有一些可量化的关键绩效指标可以显示企业是如何成功实现其目标的。有必要将一般的业务查询转化为模型可能旨在实现的性能指标。
-
现代化的工作实践和组织变革对MLOps是必要的。这只会随着时间和组织结构和程序的发展而发生。这包括流程的修改,如使用DevOps进行部署或带来额外的团队成员。
-
选择一个ML模型可能是一个挑战。在确定一个特定的模型之前,重要的是测试几个不同的模型,并记下测试结果。追踪这些模型是很关键的,也许可以为每个模型创建单独的Git分支。当试图为生产选择最佳模型时,这有利于比较和选择。
-
在模型实现后,关键是要跟踪其性能,以确定它是否按预期运行。一旦我们启动了一个机器学习模型,很多事情都可能出错。通过监测模型,找到输入和目标变量之间的任何数据变化是有帮助的。
-
模型在训练和部署后的使用中都需要系统资源,包括CPU、GPU、I/O和内存。你的团队可以通过了解各个阶段对系统的要求来优化你的试验成本,并使你的预算最大化。
MLOps工具
做任何一个最佳实践都是好的,但你会需要一个特定的平台来执行这些任务。下面是一些流行的MLOps工具,可能对你的MLOps之旅有帮助:
- Neptune – 它是一个建模工具,作为MLOps的元数据存储库,帮助研究和生产团队更好地组织ML元数据。它提供了一个集中的位置,用于汇编、记录、存储、显示、比较和查询整个机器学习生命周期中产生的所有元数据。该程序允许跟踪实验、模型注册、监控机器学习运行,以及用于简单跟踪的强大仪表板。
-
KFServing – 它是一个建立在Kubernetes之上的模型服务工具。KFServing将ML操作标准化,并为推理请求提供了一个API。它为生产ML推理提供了一个直接而全面的叙述。它与各种机器学习框架合作,包括Tensorflow、XGBoost、ScikitLearn和ONNX。它还抽象出了服务器配置、网络、健康监测和自动缩放的复杂性。
-
Luigi – 这是一个由Spotify开发的协调工具。它是一个基于Python的执行框架。它提供了一个工具箱,其中有几个工作模板,对团队是有益的。为了加强操作的原子性和可靠的数据管道,该工具包包含HDFS和本地文件的文件系统抽象。此外,它通过一个强大的架构提供各种工具和实用程序,如A/B测试分析、内部仪表板和外部报告,以实现复杂的工作管道。
-
MLFlow – 它是一个建模工具,提供更好的灵活性和可扩展性,支持孤独的人和大企业。任何语言、ML库和现有代码都与MLflow兼容。它使你能够与他人分享你的机器学习代码,并为使用Docker和Conda的可重复运行提供一个结构。为了有效地管理MLflow模型的整个生命周期,使用了一个集中的模型库、用户界面和一套API。
-
DVC– 它是一个数据工具,具有敏捷性、数据版本、可重复性和共享有效性等特点,DVC工具使ML项目的数据版本管理更加简单。由于这个实验工具,大数据可能被有效地组织和访问。它使用Git标签、分支和指标简化了实验的管理,以选择最佳版本并监控实验进展。
MLOps案例研究
以下是MLOps的重要研究案例-
-
为了有效地将任务分配给众多客户,并为他们确定最佳路线,Instacart采用了机器学习来解决路径优化问题。这篇文章 解释了整个过程和结构。
-
光学字符识别和单词检测器是像文件扫描仪这样的直接应用的两个独立部分。此外,端到端系统需要额外的阶段进行训练和调整。每一个都需要一个独立的生产管道。该团队收集数据的努力,包括创建他们自己的数据注释平台,也在这篇文章中详细介绍了。
-
这篇文章 出色地概述了Uber的端到端工作流程,机器学习在Uber的应用领域,以及他们的团队是如何设置的。Uber在他们的生产中广泛采用了机器学习。
-
截至2018年,超过1.2亿人订阅了Netflix,其中一半的人居住在美国以外。在这篇文章 中 ,他们讨论了他们的一些技术难题,以及他们如何利用机器学习来解决这些难题,包括如何预测网络质量,发现设备的异常情况,以及为预期的缓存分配资源。