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


相关文章
|
存储 Rust 自然语言处理
C代码演示WebAssembly工作流程
【2月更文挑战第3天】 工作流程: * C 代码使用 Emssripten 工具编译为 wasm 后缀的二进制文件,同时可以生成访问wasm的js胶水代码和html代码 * wasm后缀的二进制格式文件的文本表示方式为后缀为wat格式的文本文件,方便在编辑器和浏览器开发者工具中查看 * 可以使用wabt工具将wat格式的文本文件直接打包成wasm的二进制文件 * 使用WebAssemblyJavascriptAPI发起对wasm的调用 * 编写胶水代码 * 使用fetch/xhr获取wasm * 借助胶水代码访问wasm中的函数
614 0
|
2月前
|
Linux 数据安全/隐私保护 iOS开发
2026年OpenClaw(Clawdbot)阿里云轻量服务器及本地搭建流程详解
2026年,OpenClaw(曾用名Clawdbot、Moltbot)完成品牌整合与重大版本升级,凭借跨平台适配、部署便捷性和功能扩展性的全面优化,成为个人与轻量团队搭建专属AI助手的首选工具,被用户称为“私人AI员工”。其核心价值在于“用自然语言指令实现任务自动化”,无需手动编写脚本,即可完成文档处理、日程管理、文件读写、跨工具协同、代码生成等各类重复性工作,彻底打破技术壁垒,让零基础用户也能轻松拥有专属智能助手。
692 13
|
9月前
|
机器学习/深度学习 人工智能 监控
CI/CD与模型监控平台集成MLOps系统实现的全面路径
MLOps是机器学习模型在生产环境中持续优化、部署和维护的关键。通过CI/CD流水线和模型监控平台的结合,可以大大提高模型开发和运维的效率,实现高效、稳定的模型服务。随着AI技术的快速发展,MLOps将在企业级AI应用中发挥越来越重要的作用。
CI/CD与模型监控平台集成MLOps系统实现的全面路径
|
9月前
|
人工智能 程序员 API
Anthropic Cookbook:开发者可以参考的Claude AI高效开发指南
作为配套资源的Anthropic Cookbook开源项目,更是凭借其丰富的代码示例和实用指南,在GitHub上获得了18k+颗星的高度认可。
329 7
Anthropic Cookbook:开发者可以参考的Claude AI高效开发指南
|
人工智能 自然语言处理 搜索推荐
云上玩转DeepSeek系列之三:PAI-RAG集成联网搜索,构建企业级智能助手
本文将为您带来“基于 PAI-RAG 构建 DeepSeek 联网搜索+企业级知识库助手服务”解决方案,PAI-RAG 提供全面的生态能力,支持一键部署至企业微信、微信公众号、钉钉群聊机器人等,助力打造多场景的AI助理,全面提升业务效率与用户体验。
|
机器学习/深度学习 分布式计算 PyTorch
大规模数据集管理:DataLoader在分布式环境中的应用
【8月更文第29天】随着大数据时代的到来,如何高效地处理和利用大规模数据集成为了许多领域面临的关键挑战之一。本文将探讨如何在分布式环境中使用`DataLoader`来优化大规模数据集的管理与加载过程,并通过具体的代码示例展示其实现方法。
973 1
|
人工智能 Cloud Native 调度
阿里云容器服务在AI智算场景的创新与实践
本文源自张凯在2024云栖大会的演讲,介绍了阿里云容器服务在AI智算领域的创新与实践。从2018年推出首个开源GPU容器共享调度方案至今,阿里云容器服务不断推进云原生AI的发展,包括增强GPU可观测性、实现多集群跨地域统一调度、优化大模型推理引擎部署、提供灵活的弹性伸缩策略等,旨在为客户提供高效、低成本的云原生AI解决方案。
|
自然语言处理 算法 数据挖掘
模块化RAG技术路线图:从基础Naive RAG 到Modular RAG全方位技术解读
【8月更文挑战第12天】模块化RAG技术路线图:从基础Naive RAG 到Modular RAG全方位技术解读
4372 9
模块化RAG技术路线图:从基础Naive RAG 到Modular RAG全方位技术解读
|
机器学习/深度学习 数据可视化 算法
机器学习中的特征选择与降维技术
机器学习中的特征选择与降维技术
602 0
|
供应链 安全 物联网
物联网(IoT)安全:风险与防护策略
【6月更文挑战第26天】物联网(IoT)安全风险包括数据泄露、设备劫持、DDoS攻击、超级漏洞和不安全设备。防护策略涉及强化设备安全设计、建立认证授权机制、加密数据传输、实施安全监控、加强供应链管理、提升用户安全意识及采用零信任模型。多层面合作以降低安全威胁,确保物联网稳定安全。
1552 2

热门文章

最新文章