机器学习运维(MLOps)

news2024/10/24 18:17:50

机器学习运维(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.coloradmin.cn/o/2222603.html

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

相关文章

uniapp:uni.createSelectorQuery函数结合vue的watch函数使用实例

提醒 本文实例是使用uniapp进行开发演示的。 一、需求场景 在开发详情页面时,不同产品描述文案不同,有的文案比较长,需求上要求描述文案最多展示4行文案,少于4行文案,全部显示,此UI高度自动适配&#xff0c…

智慧城管综合管理系统源码,微服务架构,基于springboot、vue+element+uniapp技术开发,支持二次开发

智慧城管源码,智慧城管执法办案系统源码 智慧城管综合执法办案平台是智慧城市框架下,依托物联网、云计算、多网融合等现代化技术,运用数字基础资源、多维信息感知、协同工作处置、智能化辅助决策分析等手段,形成具备高度感知、互联…

pikachu靶场-Cross-Site Scripting(XSS)

sqli-labs靶场安装以及刷题记录-dockerpikachu靶场-Cross-Site Scripting pikachu靶场的安装刷题记录反射型xss(get)反射型xss(post)存储型xssDOM型xssDOM型xss-xxss盲打xss之过滤xss之htmlspecialcharsxss之href输出xss之js输出 pikachu靶场的安装 刷题记录 反射型xss(get) …

《什么是大模型、超大模型和 Foundation Model?》

前言 大模型旨在解决人类面临的各种问题,提高人类的生产力和生活质量。是一门涉及计算机科学、数学、哲学、心理学等多个领域的交叉学科,旨在研究如何使计算机能够像人类一样思考、学习、推理和创造。大模型的出现,让很多产业人士认为这项技术会改变信息产业格局,即基于数…

解码专业术语——应用系统开发项目中的专业词汇解读

文章目录 引言站点设置管理具体要求包括: Footer管理基于URL的权限控制利用数据连接池优化数据库操作什么是数据连接池?优化的优势 利用反射改造后端代码,AJAX反射的作用及其在后端代码中的应用AJAX 实现前后端无刷新交互 引言 创新实践项目二…

ThingsBoard规则链节点:Delete Attributes节点详解

引言 删除属性节点简介 用法 含义 应用场景 实际项目运用示例 智能家居安全系统 物流跟踪解决方案 工业自动化生产线 结论 引言 ThingsBoard是一个开源的物联网平台,它提供了设备管理、数据收集与处理以及实时监控等功能。其中,规则引擎是其核心…

Clickhouse 笔记(一) 单机版安装并将clickhouse-server定义成服务

ClickHouse 是一个高性能的列式数据库管理系统(DBMS),主要用于在线分析处理(OLAP)场景。它由俄罗斯搜索引擎公司 Yandex 开发,并在 2016 年开源。ClickHouse 以其卓越的查询性能和灵活的扩展性而闻名&#…

模拟信号采集显示器+GPS同步信号发生器制作全过程(焊接、问题、代码、电路)

1、制作最小系统板 在制作最小系统板的时候,要用USB转TTL给板子供电,留了一个电源输入的四个接口,同时又用排针引出来VCC和GND用于后续其他外设的电源供应,电源配有电源指示灯和保护电容, 当时在焊接的时候把接口处的…

云计算实验1——基于VirtualBox的Ubuntu安装和配置

实验步骤 1、VirtualBox的安装 本实验使用VirtualBox-7.0.10 进行演示。对于安装包,大家可以前往 VirtualBox官网下载页面(https :/ / www. virtualbox.org/wiki/Downloads)下载其7.0版本安装包进行安装,或者直接使用QQ群的安装包VirtualBox-7.0.10-15…

基于开源Jetlinks物联网平台协议包-MQTT自定义主题数据的编解码

目录 前言 1.下载官方协议包 2.解压 3.自定义主题 4.重写解码方法 5.以下是我解析后接收到的数据 前言 最近这段时间,一直在用开源的Jetlinks物联网平台在学习,偶尔有一次机会接触到物联网设备对接,在协议对接的时候,遇到了…

Spring面试题——第五篇

1. Spring的优点 轻量级和非侵入性:不需要引入大量的依赖和配置。面向切面编程:Spring提供了强大的面向切面编程,允许用户定义横切关注点,并将其与核心业务逻辑分离,提高了灵活性。依赖注入(DI&#xff09…

java对接钉钉发送消息(纯萌新文档解惑)

java对接钉钉(纯萌新文档解惑) 注意:不是其他直接给你个写好的钉钉工具类,但不知道它怎么来的。是以钉钉官方文档为准,流程是什么,你想要什么可以自己在文档找(所有文档都有只是萌新看着懵&…

Kafka高可用性原理深度解析

在分布式系统中,高可用(High Availability, HA)是指系统在面对硬件故障、网络分区、软件崩溃等异常情况时,仍能继续提供服务的能力。对于消息队列系统而言,高可用性尤为重要,因为它通常作为数据流通的中枢&…

SSD | (十)PCIe介绍(上)

文章目录 📚从PCIe的速度说起📚PCIe拓扑结构🐇PCI——总线型拓扑结构🐇PCIe——树形拓扑结构📚PCIe分层结构📚PCIe TLP类型📚PCIe TLP结构🐇通用结构🐇具体TLP的Header📚从PCIe的速度说起 PCIe发展至今,速度一代比一代快。 连接速度所示1、2等是指PCIe链接…

Python 打包成 EXE 的方法详解

#1024程序员节|征文# 日常开发中,python由于其便捷性成为了很多人的首选语言,但是python的环境配置也是有点麻烦的,那么我们如何让其变得更加友好呢?没错,就是打包成exe可执行文件。 一、PyInstaller 简介…

修改windows11的hosts,配置127.0.0.1域名(最清晰)

这里记录的是学习短链接项目,通过配置127.0.0.1域名,达到可以通过域名代替127.0.0.1访问127.0.0.1下的某个端口的服务,达到短链接的前缀的效果,这里展示windows11的更改过程。 一、hosts文件路径 C:\Windows\System32\drivers\e…

【Java数据结构】---哈希表

乐观学习,乐观生活,才能不断前进啊!!! 我的主页:optimistic_chen 我的专栏:c语言 ,Java 欢迎大家访问~ 创作不易,大佬们点赞鼓励下吧~ 前言 在顺序结构以及平衡树中&…

littlefs源码分析1-设计思考

1.littlefs设计目的 littlefs 最初是作为一个实验而构建的,目的是在微控制器的环境中了解文件系统设计。目的是:构建一个在不使用无限制内存的情况下对电源丢失和闪存磨损具有弹性的文件系统。 这对嵌入式文件系统littlefs提出了三个主要要求&#xff1…

【Linux】 exit 和 _exit 的区别

在Linux系统中&#xff0c;exit(int status) 和 _exit(int status) 都是用来终止进程的函数&#xff0c;都能通过参数 int status传递一个整型的退出状态码给父进程&#xff0c;但它们之间有一些重要的区别。 1. 头文件不同 exit() 函数定义在 <unistd.h> 中 _exit() 函…

【Python爬虫实战】高效解析和操作XML/HTML的实用指南

&#x1f308;个人主页&#xff1a;https://blog.csdn.net/2401_86688088?typeblog &#x1f525; 系列专栏&#xff1a;https://blog.csdn.net/2401_86688088/category_12797772.html 目录 前言 一、lxml的安装 &#xff08;一&#xff09;使用 pip 安装 &#xff08;二&…