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


相关文章
|
机器学习/深度学习 人工智能 运维
MLOps : 机器学习运维
MLOps : 机器学习运维
505 0
|
17天前
|
存储 SQL 机器学习/深度学习
一文辨析:数据仓库、数据湖、湖仓一体
本文深入解析数据仓库、数据湖与湖仓一体的技术原理与适用场景。数据仓库结构严谨、查询高效,适合处理结构化数据;数据湖灵活开放,支持多模态数据,但治理难度高;湖仓一体融合两者优势,实现低成本存储与高效分析,适合大规模数据场景。文章结合企业实际需求,探讨如何选择合适的数据架构,并提供湖仓一体的落地迁移策略,助力企业提升数据价值。
一文辨析:数据仓库、数据湖、湖仓一体
|
监控 安全 JavaScript
浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID
场景 : 客户提出一个问题就是把用户的登录记录和设备绑定到一起,就是每个人都是固定的设备(可能是安全因素吧)。一开始想的是回去设备的IMEI号和用户账号绑定起来,结果发现IMEI不对外开发,只能另寻他法,最后通过获取设备序列号作为唯一标识。
浅谈移动端设备标识码:DeviceID、IMEI、IDFA、UDID和UUID
|
7月前
|
数据采集 消息中间件 人工智能
AI Agent:构建以数据为中心的智能体
在过去一年里大模型领域主要有两大领域的热点,一个是 LLM,几乎每月速度革新,大家关心的是效果和成本。另一个是 AI Agent,大家尝试解决各个领域应用问题,大家关心的是场景和竞争力。下面我们重点分享一下 AI Agent 的趋势和实践。
967 14
|
机器学习/深度学习 边缘计算 测试技术
MLOps模型部署的三种策略:批处理、实时、边缘计算
机器学习运维(MLOps)是一组用于自动化和简化机器学习(ML)工作流程和部署的实践。所选择的部署策略可以显著影响系统的性能和效用。所以需要根据用例和需求,采用不同的部署策略。在这篇文章中,我们将探讨三种常见的模型部署策略:批处理、实时和边缘计算。
275 4
|
12月前
|
缓存 Kubernetes 负载均衡
在K8S中,ingress 有何作用?
在K8S中,ingress 有何作用?
|
机器学习/深度学习 监控 算法
谷歌大佬谈 MLOps :机器学习中的持续交付和自动化流水线(上)
背景 数据科学和机器学习正逐渐成为解决复杂现实问题以及在所有领域创造价值的核心功能。现在,有效运用机器学习技术的各种要素都已具备:
|
消息中间件 负载均衡 算法
RocketMQ源码(三)简单探索Producer和Consumer与Queue之间的负载均衡策略
- Producer如何将消息负载均衡发送给queue? - Consumer如何通过负载均衡并发消费queue的消息?
822 0
|
机器学习/深度学习 人工智能 数据可视化
阿里云机器学习 PAI 平台基础
阿里云机器学习 PAI 平台基础
1014 1
|
机器学习/深度学习 数据采集 人工智能
ML:MLOps系列讲解之《MLOps的定义与发展—你为什么可能想使用机器学习》解读
ML:MLOps系列讲解之《MLOps的定义与发展—你为什么可能想使用机器学习》解读
ML:MLOps系列讲解之《MLOps的定义与发展—你为什么可能想使用机器学习》解读