究竟什么是MLOps?
这个问题存在了很久,但直到现在,都仅仅只在大型人工智能会议上有几次提及,很少有具体的描述,国内的应用更是尚浅。
如今,科技公司在将机器学习模型商业化落地时所面临的痛点大致有:
迁移到云端;
创建和管理机器学习工作流;
规模化;
大规模处理敏感数据;
以及大概还有非常多的其他问题。
而这篇文章就是解决这些痛点的答案。
如果我们真的想让模型真正触及现实生活中的商业问题和真实的人,我们必须处理以下要点:
获取和清理大量数据;
跟踪和迭代实验和模型训练;
为投入生产的模型设置部署和监控工作流程。
并且我们需要找到一种方法来扩展我们的机器学习操作以满足业务或机器学习模型用户的需求。
过去,当我们需要扩展传统软件系统以便更多人可以使用它们时,也存在类似的问题。DevOps的解决方案是一套用于开发、测试、部署和操作大型软件系统的实践,借助DevOps,开发周期变得更短,部署速度加快,系统发布变得可审计且可靠。
这为我们引向了MLOps,它诞生于DevOps、数据工程以及机器学习的交叉融合,与DevOps的概念相似,但执行方式不同。机器学习系统本质上是实验性的,并且具有更多的组件,这些组件的构建和操作显然要复杂得多。
下面就让我们开始吧!
01
什么是MLOps?
MLOps是用于数据科学家和专业运维人员之间协作和交流的一系列实践。应用这些实践可以提高质量,简化管理流程,并在大规模生产环境中自动部署机器学习和深度学习模型,更容易使模型与业务需求以及监管要求保持一致。
来源:NeptuneBlog
MLOps正在慢慢演变成一种独立的机器学习生命周期管理方法,它适用于整个生命周期——数据收集、模型创建(软件开发生命周期、持续集成/持续交付)、编排、部署、健康、诊断、治理和业务指标。
MLOps的关键阶段是:
数据收集
数据分析
数据转换/准备
模型训练与开发
模型验证
模型服务
模型监控
模型再训练
02
DevOpsvsMLOps
来源:NealAnalytics
DevOps和MLOps具有基本的相似之处,因为MLOps源自DevOps,但它们在执行上完全不同:
与DevOps不同,MLOps在本质上更具实验性。数据科学家和机器学习/深度学习工程师必须调整各种功能——超参数、参数和模型——同时还要跟踪和管理数据和代码库以获得可重复的结果。除了所有的努力和工具之外,机器学习和深度学习行业仍然在为实验的可重复性而苦苦挣扎。
混合团队组成:在生产环境中,构建和部署模型所需的团队不仅仅由软件工程师组成。在机器学习项目中,团队通常包括数据科学家或机器学习研究人员,他们专注于探索数据分析、模型开发和实验,他们可能不是可以构建生产级服务的经验丰富的软件工程师。
测试:除了单元测试和集成测试等常规代码测试之外,测试机器学习系统还涉及模型验证、模型训练等。
自动部署:为了提供模型在线预测的服务,您不能只将离线训练的机器学习模型部署。您需要一个多步骤工作流来自动重新训练和部署模型。这个工作流增加了复杂性,因为您需要自动化数据科学家在部署之前手动执行的步骤来训练和验证新模型。
由于数据配置文件的不断发展或简单的训练和服务偏差导致系统的生产性能下降:生产中的机器学习模型可能会降低性能,这不仅是由于编程实现未达到最优,还因为数据配置文件的不断发展。与传统软件系统相比,模型可能会以更多方式衰减。
监控:生产中的模型需要被监控。同理,构建模型的数据的汇总统计信息也需要被监控,以便您可以在需要时刷新模型。这些统计数据会随着时间而改变,当值偏离预期时,您需要通知或回滚过程。
第五点中提到“模型可能会以更多方式衰减”,这可能由以下原因引起:
您在训练和服务工作流中处理数据的方式存在差异。
在您训练和服务时,数据发生了变化。
反馈循环——当您选择错误的假设(即目标)进行优化时,这会使您收集到有偏的数据来训练您的模型。接着,在不知情的情况下,您使用的这个有缺陷的假设又将收集新的数据点,并将其反馈到重新训练/微调模型的未来版本,使模型的偏差更大,并且滚雪球式增长。
虽然在源代码管理的持续集成、单元测试、集成测试以及软件模块或包的持续交付方面,MLOps和DevOps是相似的,但是,二者在机器学习上存在一些显著差异:
持续集成(CI)不再只是测试和验证代码和组件,还包括测试和验证数据、数据模式和模型。
持续部署(CD)不再是关于单个软件包或服务,而应该是一个系统(一个机器学习模型训练的流程),可以自动部署另一个服务(模型预测服务)或从某个模型回滚更改。
连续测试(CT)是机器学习系统独有的新属性,它与自动重新训练和服务模型有关。
03
MLOpsvs实验跟踪vs
机器学习模型管理
我们已经定义了MLOps是什么,那么什么是实验跟踪和机器学习模型管理呢?
实验跟踪
实验跟踪是MLOps的一部分(或一个过程),专注于收集、组织和跟踪不同模型结构(超参数、模型大小、数据拆分、参数等)下多次运行的训练信息。
如前所述,由于机器学习/深度学习本质上是实验性的,因此我们使用实验跟踪工具对不同公司、团队或团队成员创建的不同模型进行基准测试。
模型管理
为确保机器学习模型一致并大规模满足所有业务需求,一个合乎逻辑且易于遵循的模型管理策略至关重要。
MLOps方法包括简化模型训练、打包、验证、部署和监控的过程,通过这种方式,您可以始终端到端地运行机器学习项目。
通过为模型管理设置清晰、一致的方法后,组织可以:
主动解决常见的业务问题(例如合规性);
通过跟踪数据、模型、代码和模型版本以支持可复现的模型;
用可重复的配置打包和交付模型,以支持可复用性。
04
为什么MLOps很重要?
MLOps是基础。机器学习可帮助个人和企业部署解决方案,通过创建更高效的工作流程、利用数据分析进行决策和改善客户体验来解锁以前未开发的收入来源、节省时间并降低成本。
如果没有一个可靠的框架可以遵循,这些目标则很难实现。使用MLOps自动化模型开发和部署,可以使产品进入时间更快、运营成本更低,它可以帮助管理人员和开发人员在决策中更具灵活性和战略性。
无论有什么限制,不管是敏感数据、资源少、预算少等等,MLOps可作为地图,指引个人、小型团队甚至企业实现目标。
您可以决定您希望的地图大小,因为MLOps具有灵活性的实践,您可以尝试不同的设置,来找到最适合您的设置。
MLOps最佳实践
以下涵盖了机器学习工作流程不同组件的最佳实践,即:团队、数据、目标、模型、代码和部署。
团队
使用协作开发平台
转载请注明:http://www.0431gb208.com/sjsbszl/7804.html