聊聊MLOps是什么,它对算法工程师带来了什么

简介: 数据科学(和机器学习)所面临的挑战毫无疑问,这个时代属于人工智能(AI),这导致机器学习在几乎每个领域的使用,试图解决医疗保健、商业领域和技术领域的不同类型的问题,可以说机器学习无处不在。 同时,开源软件(OSS)和基于云的分布式计算也促使了许多工具、技术和算法的出现,而开发机器学习模型来解决问题并不是挑战,真正的挑战在于如何管理这些模型及大规模数据。

数据科学(和机器学习)所面临的挑战


毫无疑问,这个时代属于人工智能(AI),这导致机器学习在几乎每个领域的使用,试图解决医疗保健、商业领域和技术领域的不同类型的问题,可以说机器学习无处不在。 同时,开源软件(OSS)和基于云的分布式计算也促使了许多工具、技术和算法的出现,而开发机器学习模型来解决问题并不是挑战,真正的挑战在于如何管理这些模型及大规模数据。

网络异常,图片无法展示
|


网络异常,图片无法展示
|


在过去的二十年里,让我们对软件开发有了一些深刻的理解,其中很大一部分原因是DevOps的出现及其在整个行业中的广泛运用。数据科学(和机器学习)开发过程需要向SDLC(软件工程)学习,以应对这些挑战,这些挑战是什么呢?

答案是:它们与SDLC(软件工程)通过采用DevOps实践所面临的挑战相同,例如:

  • 数据挑战:数据集依赖。模型训练和评估阶段的数据在实际生产场景中可能会有所不同。
  • 模型挑战:ML模型是在数据科学家的沙箱中构建,它的开发并没有考虑到可扩展性;相反,它只是为了获得良好的准确性和正确的算法而开发的,而不是为了扩展 ML 应用程序。
  • 自动化:训练一个简单的模型并将其用于推理和生成预测结果是一项简单的手动任务。然而在现实世界中(大规模机器学习),必须在任何地方实现一切自动化。自动化是在 ML-SDLC 的不同阶段实现可扩展性的唯一途径。
  • 可观察性:监控、警报、可视化以及指标。

在讲述MLOps之前,我们先来简单普及下DevOps。


浅述DevOps

DevOps的定义

DevOps 是开发 (Dev) 和运营 (Ops) 的复合词,它将人、流程和技术结合起来,不断地为客户提供价值。

DevOps 对团队意味着什么?

DevOps 使以前孤立的角色(开发、IT 运维、质量工程和安全)可以协调和协作,以生产更好、更可靠的产品。通过采用 DevOps 做法和工具,团队能够更好地响应客户需求,增强对所构建应用程序的信心,更快地实现业务目标。

网络异常,图片无法展示
|


DevOps的好处

采用 DevOps 做法和工具的团队将获得高绩效,可以用更快的速度构建更好的产品以获得更高的客户满意度。若要实现以下业务目标,这种改进的协作方式和生产能力不可或缺:

  1. 缩短上线时间
  2. 快速适应市场和竞争
  3. 保持系统稳定性和可靠性
  4. 缩短平均故障恢复时间

那么,我们应该如何在机器学习软件应用程序开发的生命周期(ML-SDLC)中应用DevOps实践呢?


浅述MLOps

MLOps的定义

MLOps是机器学习和运营的复合词,它是数据科学家和运维专业人员之间协作和沟通的一种实践,以帮助管理生产机器学习(或深度学习)生命周期。与 DevOps 或 DataOps 方法类似,MLOps 希望提高自动化程度并提高生产 ML 的质量,同时还关注业务和监管要求。 虽然 MLOps 也是作为一组最佳实践开始的,但它正在慢慢演变为一种独立的 ML 生命周期管理方法。 MLOps 适用于整个ML生命周期--从模型生成(软件开发生命周期、持续集成/持续交付)、编排和部署的集成,到健康、诊断、治理和业务指标。简单来时,MLOps=ML+DEV+OPS

网络异常,图片无法展示
|


DevOps与MLOps生命周期的比较

网络异常,图片无法展示
|



MLOps工具的使用场景

通过利用平台并将其应用于特定的案例,可以减少解决 MLOps 所面临的挑战和所涉及的工作量。AI (ML) 工具领域很复杂,不同的工具专门用于不同的领域,在某些情况下,有竞争力的工具能以不同的方式解决类似的问题。请参阅下面的 Linux 基金会的 AI 项目总览,其中,包括不同类别的工具列表。

网络异常,图片无法展示
|


选择MLOps工具的标准

如果您已经查看了上述 Linux 基金会的 AI 项目格局(工具分类列表),您就会意识到有许多不同的工具,包括商业的和开源的。

那我们应该以什么样的标准来进行选择呢?

开源

这非常适合早期采用者,也适合轻松实现概念验证或开始您自己的个人项目。

基于Kubernetes

Kubernetes和容器是我们的应用程序(甚至是机器学习应用程序)将要运行的新平台。

平台

我们不想浪费精力集成异构工具。通常,我们想要一个已经无缝集成成熟工具的堆栈或平台。

MLOps涉及的主要功能

端到端的 MLOps 流水线(pipeline)负责持续集成、交付和训练。它们相互补充,以此来缩短了向客户提供 AI 解决方案的途径。

持续集成和持续交付(CI/CD)

MLOps仍然需要DevOps提倡的CI/CD框架,这是一种经过验证的方法,可以频繁地进行高质量的代码更新。然而,机器学习通过数据和模型验证扩展了集成阶段,而交付则解决了机器学习部署的复杂性。总之,CI/CD将数据、模型和代码组件组合在一起,以发布和更新预测服务。

持续训练 (CT)

作为 MLOps 独有的概念,CT 完全是关于模型再训练的自动化。 它涵盖了模型生命周期的所有步骤,从数据接入到在生产环境中跟踪其性能。CT 确保您的算法在生产环境中你的模型出现衰退或变化时第一时间被更新。

为了更好地理解怎么将持续集成、持续交付和持续训练转化为实践,以及 ML 专家和运维专家之间如何分担职责,让我们来研究 MLOps 的关键组成部分。 这包括:模型训练流水线(工作流),模型注册(模型仓库),模型服务(部署),模型监控以及 CI/CD 编排。

网络异常,图片无法展示
|


当然,这些步骤和整个工作流程在不同情况下可能会有所不同,这取决于项目、公司规模、业务任务、机器学习复杂性和其他因素。

模型训练流水线

构建端到端模型训练流水线的工具:TFX(TensorFlow Extended),MLflow,Pachyderm,Kubeflow

模型注册

作为模型注册中心的平台工具:MLflow Model Registry,AI Hub

模型服务

模型服务工具:Seldon Core,MLflow Models,Algorithmia,Kubeflow

模型监控

模型监控工具:MLWatcher,DbLue,Qualdo

CI/CD编排

提高 CI/CD 工作流程效率的工具:GoCD,IBM Urban Code, AutoRABIT

MLOps模型训练流水线

通常,流水线会执行以下步骤:

数据接入。任何 ML 工作流都从数据接入开始--换句话说,从外部存储库或特征存储中获取新数据,其中数据被保存为可重用的“特征”,专为特定业务案例而设计。此步骤将数据拆分为单独的训练集和验证集,或将不同的数据流合并为一个包罗万象的数据集。

数据验证。此步骤的目标是确保接入的数据满足所有要求。如果发现异常,工作流可以自动停止,直到数据工程师解决问题。它还会通知您的数据是否随时间发生变化,突出显示模型在生产中使用的训练集和实时数据之间的差异。

数据准备。这一步,原始数据被清理并获得正确的格式,以便您的模型可以使用它。同时,数据科学家可能会介入,使用 DataRobot、Featuretools 或其他特征工程解决方案,将原始数据与领域知识相结合并构建新特征。

模型训练。最后,我们来到了整个工作流的核心。在最简单的情况下,模型针对新接入和处理的数据或特征进行训练。但是,您也可以并行或按顺序启动多个训练任务运行,以确定生产模型的最佳参数。

模型验证。我们在之前从未见过的数据集上测试最终模型的性能,为部署到生产环境做准备。

数据版本控制。数据版本控制是在软件开发中保存类似于代码版本的数据制品。常用的方法是使用 DVC,DVC 允许数据科学家保存实验并在以后重复使用它们,这是一种基于 GIT 的轻量级 CLI 工具,不过您可以在更复杂的解决方案(如 MLflow 或 Pachyderm)中找到类似的功能。

网络异常,图片无法展示
|


总结

在MLOps中,通过将数据、模型、配置、代码进行版本化的管理,保障了算法工程师在整个机器学习生命周期中模型的快速迭代、持续训练、持续部署。从而能够保证机器学习模型的可重复性,可追溯性,并且能够对生产模型的健康进行诊断;同时,也能很方便查看业务指标。


相关文章
|
9月前
|
机器学习/深度学习 算法 测试技术
使用机器学习优化软件开发流程
在软件开发领域,提高开发效率和质量一直是开发者们追求的目标。随着人工智能和机器学习的快速发展,我们可以利用这些技术来优化软件开发过程,进一步改善开发体验和结果。
91 1
|
2月前
|
机器学习/深度学习 人工智能 测试技术
探索自动化测试的未来:机器学习的新趋势
传统的软件测试方法已经无法满足当今快速发展的软件开发需求。随着人工智能和机器学习技术的不断进步,自动化测试也正在经历革命性的变革。本文将探讨机器学习在自动化测试中的应用,以及它对未来软件测试的影响。
|
10月前
|
机器学习/深度学习 自然语言处理 算法
大型机器学习模型:技术深度与广度的探讨
大型机器学习模型的技术深度和广度令人惊叹。这些模型, 如Google的Transformer模型,BERT模型,以及OpenAI的GPT-4模型,已经改变了我们理解和处理自然语言的方式,同时也在图像识别,语音识别等领域取得了显著的成果。本文将深入探讨大型机器学习模型的关键技术。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型时代下,算法工程师该何去何从?
大模型时代的到来,将算法工程师的职业发展带入了全新的境地。在这个浩瀚的数据海洋中,算法工程师们面临着前所未有的挑战和机遇。不久前,合合信息举办了一场《》的直播活动,智能技术平台事业部副总经理、高级工程师丁凯博士分享了。这段深度探讨不仅让我对算法工程师的未来有了更清晰的认识,也启发了我对自身职业发展的思考。接下来,我将分享这次讨论的精彩内容,希望能够为同学们提供一些有益的启示与思考。
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
大模型时代下,算法工程师发展趋势及技术拓展
大模型时代下,算法工程师发展趋势及技术拓展
大模型时代下,算法工程师发展趋势及技术拓展
|
机器学习/深度学习 人工智能 监控
如何成为机器学习工程师
机器学习工程师是一个综合要求很高的交叉学科岗位,要求从业者学习很多必要技能和工具,以应对实际项目中遇到的各种挑战。 本文能为励志成为机器学习工程师的人提供一个清晰的成长路线图。
292 1
如何成为机器学习工程师
|
机器学习/深度学习 数据采集
北大团队将色谱领域知识融入机器学习模型,辅助对映体色谱分离
北大团队将色谱领域知识融入机器学习模型,辅助对映体色谱分离
135 0
北大团队将色谱领域知识融入机器学习模型,辅助对映体色谱分离
|
机器学习/深度学习
「机器学习」机器学习工程师的2020 路线图
「机器学习」机器学习工程师的2020 路线图
|
机器学习/深度学习 数据库
机器学习指导催化剂设计,提高反应的产率
机器学习指导催化剂设计,提高反应的产率
170 0
|
SQL 机器学习/深度学习 算法
2021年,算法工程师必备的能力是什么?
到底算法工程师需要具备什么样的能力?才能满足“越来越卷”的要求