机器学习运维(MLOps)

机器学习运维(MLOps)

机器学习运维(Machine Learning Operations,简称MLOps)是一种将机器学习模型从开发到生产部署的系统方法,旨在缩短模型的开发周期,提高模型质量和可靠性。MLOps结合了DevOps、数据工程和机器学习,为整个机器学习生命周期提供了一套最佳实践。随着机器学习在各行各业的广泛应用,如何高效地开发、部署和维护机器学习模型成为了一个重要的挑战,而MLOps正是为解决这一挑战而诞生的。

一、MLOps的定义与背景

机器学习系统本质上是实验性的,并且具有更多的组件,这些组件的构建和操作相对复杂。MLOps是用于数据科学家和专业运维人员之间协作和交流的一系列实践,应用这些实践可以提高质量,简化管理流程,并在大规模生产环境中自动部署机器学习和深度学习模型,更容易使模型与业务需求以及监管要求保持一致。

MLOps正在慢慢演变成一种独立的机器学习生命周期管理方法,它适用于整个生命周期,包括数据收集、模型创建(软件开发生命周期、持续集成/持续交付)、编排、部署、健康、诊断、治理和业务指标。MLOps的关键阶段包括数据收集、数据分析、数据转换/准备、模型训练与开发、模型验证、模型服务、模型监控和模型再训练。

二、MLOps与DevOps的区别与联系

DevOps和MLOps具有基本的相似之处,因为MLOps源自DevOps,但它们在执行上完全不同。与DevOps不同,MLOps在本质上更具实验性。数据科学家和机器学习/深度学习工程师必须调整各种功能——超参数、参数和模型——同时还要跟踪和管理数据和代码库以获得可重复的结果。

除了所有的努力和工具之外,机器学习和深度学习行业仍然在为实验的可重复性而苦苦挣扎。在生产环境中,构建和部署模型所需的团队不仅仅由软件工程师组成。测试机器学习系统除了单元测试和集成测试等常规代码测试之外,还涉及模型验证、模型训练等。

为了提供模型在线预测的服务,不能仅将离线训练的机器学习模型部署,需要一个多步骤工作流来自动重新训练和部署模型。这个工作流增加了复杂性,因为需要自动化数据科学家在部署之前手动执行的步骤来训练和验证新模型。

生产中的机器学习模型可能会降低性能,这不仅是由于编程实现未达到最优,还因为数据配置文件的不断发展。与传统软件系统相比,模型可能会以更多方式衰减。在训练和服务工作流中处理数据的方式存在差异,训练和服务时数据发生了变化。反馈循环——当选择错误的假设(即目标)进行优化时,这会使收集到的数据有偏,用来训练模型。接着,在不知情的情况下,使用的这个有缺陷的假设又将收集新的数据点,并将其反馈到重新训练/微调模型的未来版本,使模型的偏差更大,并且滚雪球式增长。

虽然在源代码管理的持续集成、单元测试、集成测试以及软件模块或包的持续交付方面,MLOps和DevOps是相似的,但是,二者在机器学习上存在一些显著差异:

  1. 持续集成(CI):不再只是测试和验证代码和组件,还包括测试和验证数据、数据模式和模型。
  2. 持续部署(CD):不再是关于单个软件包或服务,而应该是一个系统(一个机器学习模型训练的流程),可以自动部署另一个服务(模型预测服务)或从某个模型回滚更改。
  3. 连续测试(CT):是机器学习系统独有的新属性,它与自动重新训练和服务模型有关。
三、MLOps的关键阶段与实践

MLOps涵盖了机器学习工作流程不同组件的最佳实践,即团队、数据、目标、模型、代码和部署。

  1. 数据准备和特征工程:通过创建可重现、可编辑和可共享的数据集、表格和可视化,为机器学习生命周期迭代探索、共享和准备数据。迭代地转换、聚合和删除重复数据以创建改进的特征。利用特征存储,使特征在数据团队之间可见和共享。
  2. 模型训练和调优:使用流行的开源库来训练和提高模型性能。作为一种更简单的替代方法,使用自动化机器学习工具(例如AutoML)自动执行试运行并创建可审查和可部署的代码。
  3. 模型管理:跟踪模型沿袭、模型版本,并管理模型工件和整个生命周期的转换。借助MLflow等开源MLOps平台,跨ML模型发现、共享和协作。
  4. 模型推理和服务:管理模型刷新频率、推理请求时间以及测试和QA中的类似生产细节。使用repos和orchestrators(借用devops原则)等CI/CD工具来自动化预生产管道。
  5. 模型部署和监控:自动化权限和集群创建以生产注册模型。启用REST API模型端点。
  6. 自动模型重训练:收集模型监控的指标信息针对性对模型进行重新训练。
四、MLOps的基础设施与工具

为了实现MLOps的目标,需要使用许多基础设施和工具。这些工具的目标是帮助数据科学家、机器学习工程师和运维团队更有效地协作,以便更快地开发、部署和维护机器学习应用程序。

  1. 数据管道管理:用于整理、清洗和转换数据的工具,如Apache NiFi、Luigi和Apache Airflow。
  2. 版本控制:用于跟踪代码、数据和模型变化的工具,如Git、DVC(Data Version Control)和MLflow。
  3. 模型训练:用于在多种硬件环境下训练模型的工具和平台,如TensorFlow、PyTorch、Keras和Apache MXNet。
  4. 模型验证和测试:用于评估模型性能和准确性的工具,如TensorFlow Extended(TFX)和MLflow。
  5. 模型部署:用于将模型部署到生产环境的工具和平台,如TensorFlow Serving、NVIDIA Triton Inference Server、AWS SageMaker和Microsoft Azure Machine Learning。
  6. 模型监控:用于实时跟踪模型性能和健康状况的工具,如Grafana、Prometheus和ELK Stack(Elasticsearch、Logstash、Kibana)。
  7. 自动化和持续集成/持续部署(CI/CD):用于自动化机器学习工作流程的工具,如Jenkins、GitLab CI/CD和GitHub Actions。
  8. 容器化和编排:用于简化部署和管理的容器技术,如Docker和Kubernetes。
  9. 云服务提供商:提供各种机器学习服务和基础设施的云平台,如Amazon Web Services(AWS)、Microsoft Azure和Google Cloud Platform(GCP)。
五、MLOps平台的发展与应用

MLOps平台是指一站式的AI算法生产平台,面向算法生产的用户,为AI算法生产实现降本增效的目标。算法本身是理论,比如要给用户推送感兴趣视频的算法,可以被表达为一系列的数学表达式,但表达式仅仅是定义规则而已,如果要将其落地,那么它本身会变成一个复杂的工程问题。

一站式的AI算法生产平台针对AI业务生产的全生命周期,针对数据集、模型编码、模型训练、模型优化、模型推理服务部署等步骤,提供相关的工具,助力用户低成本生产高质量的AI业务。

目前,国内外最具代表性和影响力的AI平台有:

  1. 华为ModelArts
  2. 阿里PAI
  3. 百度BML
  4. 字节火山机器学习平台
  5. Google Vertex
  6. 微软Azure AI
  7. Amazon SageMaker

这些平台提供先进生产工具,持续提供优秀的AI业务生产全流程所需要的工具;流程规范化,关键生产步骤规范化,保证生产流程的可观测性,以促进全链路生产效率,完成MLOps的建立,并为成本优化机制的实施提供基础;针对特殊的重要场景(例如LLM),提供专门的产品能力支持。

六、MLOps的未来展望

MLOps是一个快速发展的领域,它正在改变机器学习的开发和部署方式。通过采用MLOps的最佳实践和工具,企业可以显著提高机器学习项目的成功率,加速AI的落地应用。然而,MLOps不仅仅是工具的堆砌,更重要的是建立一种文化,鼓励跨职能团队协作,持续改进流程。

MLOps的未来展望包括更加智能和自动化的MLOps平台,以及AutoML的广泛应用,进一步简化模型开发流程。同时,提高模型的可解释性和可信度也是未来的重要方向。相信在不久的将来,MLOps将成为每个数据科学团队的标准实践。

MLOps是一个充满机遇的领域,欢迎更多开发者和研究者加入,共同推动机器学习工程化的发展。通过MLOps,可以加速机器学习应用程序的开发、部署和维护,实现更高效的工作流程、利用数据分析进行决策和改善客户体验,从而解锁以前未开发的收入来源、节省时间并降低成本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/56548.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《深度学习》Dlib、OpenCV 轮廓绘制

目录 一、Dlib轮廓绘制 1、什么是轮廓绘制 2、步骤 1)导入所需的库和模型 2)加载人脸检测器 3)读取图像 4)人脸检测 5)关键点定位 6)绘制轮廓线条 7)展示结果 二、案例实现 1、完整代码 运…

《Spring Cloud 微服务:构建高效、灵活的分布式系统》

《Spring Cloud 微服务:构建高效、灵活的分布式系统》 一、引言 在当今快速发展的数字化时代,软件系统的规模和复杂性不断增加。为了应对这种挑战,微服务架构应运而生。Spring Cloud 作为构建微服务架构的强大工具集,提供了一系…

【华为】静态NAT、动态NAT、NAPT、Easy IP、NAT Server

静态 NAT:将内网主机的私网 IP地址一对一映射到公网 IP 地址。动态 NAT:将内网主机的私有地址转换为公网地址池里面的地址。由于静态NAT严格地一对一进行地址映射,这就导致即便内网主机长时间离线或者不发送数据时,与之对应的公有…

Mac 电脑安装redis

1、首先检查电脑是否安装 brew 命令: #打开Mac自带的终端,输入下面命令 brew --version如下图,可以看到我的 brew 正常的,且对应版本是4.0.17-63-g32f2258 如果你的电脑执行上面命名报错:zsh: command not found: br…

一个很恶心但发顶会很牛的方向!【小样本学习+目标检测】

【小样本学习目标检测】致力于通过有限的标注样本实现高效的目标检测,以应对数据匮乏的挑战。这一领域的研究对于缩小人工智能与人类学习系统之间的差异、增强模型对新类别的适应能力、推动智能识别系统在实际场景中的应用具有重要意义。 为了帮助研究人员深入理解…

【可答疑】基于51单片机的智能衣柜(含仿真、代码、报告、演示视频等)

✨哈喽大家好,这里是每天一杯冰美式oh,985电子本硕,大厂嵌入式在职0.3年,业余时间做做单片机小项目,有需要也可以提供就业指导(免费)~ 🐱‍🐉这是51单片机毕业设计100篇…

多进程编辑

使用父子进程完成两个文件的拷贝&#xff0c;父进程拷贝前一半&#xff0c;子进程拷贝后一半&#xff0c;两个进程同时进行 #include <myhead.h> int main(int argc, const char *argv[]) {//用于保存pid号pid_t pid -1;//创建子进程pid fork();//打印一下进程号print…

在vue中v-show不起作用

在vue中v-show不起作用 1、应用场景描述 表单分步骤提交&#xff0c;需要保存用户所填写过的信息&#xff0c;在点击上一步的时候&#xff0c;回显所填信息&#xff0c;所以不可以使用v-if来进行步骤切换&#xff0c;要使用v-show&#xff0c;但是当使用v-show的时候出现了另…

SpringBoot接收LocalDateTime参数

一、通过RequestBody接收 方式1&#xff1a;实体类上加上 JsonFormat&#xff0c;并通过 pattern 属性指定时间格式 public class Time {JsonFormat(pattern "yyyy-MM-dd HH:mm:ss")LocalDateTime localDateTime;JsonFormat(pattern "yyyy-MM-dd")Loca…

C语言 | Leetcode C语言题解之第491题非递减子序列

题目&#xff1a; 题解&#xff1a; int** ans; int ansSize; int* temp; int tempSize;void dfs(int cur, int last, int* nums, int numsSize, int** returnColumnSizes) {if (cur numsSize) {if (tempSize > 2) {ans[ansSize] malloc(sizeof(int) * tempSize);memcpy(…

985研一学习日记 - 2024.10.16

一个人内耗&#xff0c;说明他活在过去&#xff1b;一个人焦虑&#xff0c;说明他活在未来。只有当一个人平静时&#xff0c;他才活在现在。 日常 1、起床6:00√ 2、健身1个多小时 今天练了二头和背部&#xff0c;明天练胸和三头 3、LeetCode刷了3题 旋转图像&#xff1a…

oracle归档日志爆满问题处理

最近客户单位的oracle数据库出了问题&#xff0c;经常出现无法连接,报错提示 ORA-00257: archiver error, Connect internal only, until freed.&#xff0c;手动清除归档日志后可以恢复访问&#xff0c;但是过不了几天依旧会爆满&#xff0c;每日生成的归档日志很大。经过详细…

(K)MP有限状态自动机

模式匹配自动机 什么是有限状态自动机&#xff1f; 定义 n 个不同状态&#xff0c;记为 {1,2…n}&#xff0c;在状态 i 时输入 s&#xff0c;达到状态 j&#xff0c;记为 goto (i,s)j 对于字符串 s 而言&#xff0c;在一个状态 i 下输入一个字符 ch&#xff0c;也会达到一个指…

ssh连接慢的问题或zookeeper远程连接服务超时

问题原因&#xff1a; 在SSH登录过程中&#xff0c;服务器会通过反向DNS查找客户端的主机名&#xff0c;然后与登录的IP地址进行匹配&#xff0c;以验证登录的合法性。如果客户端的IP没有域名或DNS服务器响应缓慢&#xff0c;这可能导致SSH登录过慢。为了解决这个问题&#xf…

尤雨溪都打赏的虚拟列表组件,到底有多强

尤雨溪都打赏的虚拟列表组件&#xff0c;到底有多强&#xff1f; 在前端开发中&#xff0c;性能优化永远是绕不开的主题。今天就带你看看 vue-virtual-scroller&#xff0c;一款让你滚动页面时流畅得像火箭一样的 Vue 组件。本文将简单介绍这个组件的主要功能、技术特点&#x…

理解和检测横向运动

希望对组织发起勒索软件攻击的威胁行为者能够使用被盗的凭据进入用户的电子邮件帐户。利用鱼叉式网络钓鱼技术和侦察&#xff0c;威胁行为者向 IT 部门发送电子邮件&#xff0c;要求提供重要网络应用程序的凭据。他们获得凭据&#xff0c;深入网络&#xff0c;并开始发起勒索软…

JavaWeb合集07-MyBatis

七、MyBatis MyBatis是一款优秀的持久层&#xff08;dao&#xff09;框架&#xff0c;用于简化JDBC的开发。 MyBatis本是Apache的一个开源项目iBatis, 2010年这个项目由apache迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。 官网&#xff1a;https://mybati…

Axure重要元件三——中继器查询和统计

亲爱的小伙伴&#xff0c;在您浏览之前&#xff0c;烦请关注一下&#xff0c;在此深表感谢&#xff01; 本节课&#xff1a;中继器查询页数 课程内容&#xff1a;查询中继器页面、自动统计页数、自动统计数据条数、上一页下一页 应用场景&#xff1a;表单的查询、表单的基本…

10秒钟用Midjourney画出国风味的变形金刚

上魔咒 Optimus Prime comes from the movie Transformers, Chinese style, Wu ShanMing, Ink Painting Halo Dyeing, Conceptual of the Digita Art, MasterComposition, Romantic Ancient Style, Inspired by traditional patterns and symbols, Minimalism, do not con…

【数据分享】全国资源和环境-环境污染治理投资(1998-2021年)

数据介绍 一级标题指标名称单位指标解释资源和环境环境污染治理投资总额亿元环境污染治理投资指在污染源治理和城市环境基础设施建设的资金投入中&#xff0c;用于形成固定资产的资金&#xff0c;其中污染源治理投资包括工业污染源治理投资和“三同时”项目环保投资两部分。环…