什么是MLOps?为什么要使用MLOps进行机器学习实践

news2024/11/17 7:19:02

随着数字化和计算能力的发展,机器学习(Machine Learning)技术在提高企业生产力方面所涌现的潜力越来越被大家所重视,然而很多机器学习的模型及应用在实际的生产环境并未达到预期,大量的ML项目被证明是失败的。从机器学习的发展历程来看,早期ML社区广泛关注的是ML模型的构建,确保模型能在预定义的测试数据集上取得较好的表现,但对于如何让模型从实验室走向用户的桌面,并未大家所关注。

机器学习的生命周期涉及众多的流程,如数据的获取、数据准备、模型训练、模型的调整、模型的部署、模型监控、模型的可解释性等,不同的流程涉及不同的流程工具和人员,需要跨团队的协作和交接,从数据工程到数据科学再到ML工程。在此背景下,如何保障生产中以下诸多目标是我们亟待解决的。譬如实现更快的模型开发、交付更高质量的 ML 模型以及更快的部署和生产;同时监督、控制、管理和监视数千个模型,以实现持续集成、持续交付和持续部署;加强对模型的监管审查,提高模型透明度,确保更好地遵守组织或行业的政策。

尤其是LLM模型时代,伴随着AGI的到来,机器学习模型的规模和复杂性也在不断增加。这意味着将这些模型部署到生产环境的难度也在上升,需要更加专业化的工具和方法来管理和监控。

什么是MLOps?
MLOps(Machine Learning Operations)是一种将机器学习(ML)模型整合到生产环境中的实践,目的是确保模型在生产过程中的有效性和可靠性。通过采用 MLOps 方法,数据科学家和机器学习工程师可以协作并加快模型开发和生产的步伐,方法是实施持续集成和部署 (CI/CD) 实践,并对 ML 模型进行适当的监控、验证和治理。使得机器学习模型从实验室走向生产环境,加速了机器学习的落地和商业化。

与DevOps的区别
MLOps 是一组特定于机器学习项目的工程实践,借鉴了软件工程中更广泛采用的 DevOps 原则。 DevOps 为交付应用程序带来了一种快速、持续迭代的方法,而 MLOps 则借用了相同的原则将机器学习模型投入生产。 在这两种情况下,结果都是更高的软件质量、更快的补丁和发布以及更高的客户满意度。

MLOps 和 DevOps 都是旨在简化和自动化软件应用程序开发和部署的方法。 DevOps 专注于一般软件开发流程和 IT 运营,但 MLOps 专门针对机器学习应用程序的独特挑战和复杂性。 但这两种方法都旨在提高软件应用程序开发、部署和管理中的协作、自动化和效率。

MLOps工作流程
数据准备和特征工程 - 通过创建可重现、可编辑和可共享的数据集、表格和可视化,为机器学习生命周期迭代探索、共享和准备数据。迭代地转换、聚合和删除重复数据以创建改进的特征。 重要的是,利用特征存储,使特征在数据团队之间可见和共享。

模型训练和调优 - 使用流行的开源库来训练和提高模型性能。 作为一种更简单的替代方法,使用自动化机器学习工具(例如 AutoML)自动执行试运行并创建可审查和可部署的代码。

模型管理 - 跟踪模型沿袭、模型版本,并管理模型工件和整个生命周期的转换。 借助 MLflow 等开源 MLOps 平台,跨 ML 模型发现、共享和协作。

模型推理和服务 - 管理模型刷新频率、推理请求时间以及测试和 QA 中的类似生产细节。 使用 repos 和 orchestrators(借用 devops 原则)等 CI/CD 工具来自动化预生产管道。

模型部署和监控 - 自动化权限和集群创建以生产注册模型。 启用 REST API 模型端点。

自动模型重训练 - 收集模型监控的指标信息针对性对模型进行重新训练

MLOps基础设施和工具
MLOps(机器学习运维)是一种方法,旨在加速机器学习应用程序的开发、部署和维护。为了实现这一目标,MLOps使用了许多基础设施和工具。

数据管道管理:用于整理、清洗和转换数据的工具,如 Apache NiFi, Luigi 和 Apache Airflow。

版本控制:用于跟踪代码、数据和模型变化的工具,如 Git, DVC (Data Version Control) 和 MLflow。

模型训练:用于在多种硬件环境下训练模型的工具和平台,如 TensorFlow, PyTorch, Keras 和 Apache MXNet。

模型验证和测试:用于评估模型性能和准确性的工具,如 TensorFlow Extended (TFX) 和 MLflow。

模型部署:用于将模型部署到生产环境的工具和平台,如 TensorFlow Serving, NVIDIA Triton Inference Server, AWS SageMaker 和 Microsoft Azure Machine Learning。

模型监控:用于实时跟踪模型性能和健康状况的工具,如 Grafana, Prometheus 和 ELK Stack (Elasticsearch, Logstash, Kibana)。

自动化和持续集成/持续部署(CI/CD):用于自动化机器学习工作流程的工具,如 Jenkins, GitLab CI/CD 和 GitHub Actions。

容器化和编排:用于简化部署和管理的容器技术,如 Docker 和 Kubernetes。

云服务提供商:提供各种机器学习服务和基础设施的云平台,如 Amazon Web Services (AWS), Microsoft Azure 和 Google Cloud Platform (GCP)。

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

为什么要使用星鲸科技(starwhale.ai)这样的专业MLOps平台来进行机器学习实践。
Starwhale是一个服务于模型训练师和机器学习研发人员的开源MLOps平台,可以非常容易的构建、部署和维护ML系统,提高AI从业者、团队和企业的合作和工作效率,

模型评估
Starwhale 从模型评估开始 MLOps 之旅,模型评估在机器学习中起着重要作用。模型评估量化了模型在测试数据集上的性能。评估指标有助于数据科学家了解机器学习模型的性能。因此,模型的弱点和优点是众所周知的。通过比较模型的指标,可以选择并发布表现最佳的模型。

Starwhale支持多种类型的模型评估,评测结果可视化,简化模型评估过程。

1、多评估结果并行对比,提示指标变化情况,辅助模型调优。

2、可视化的评估结果,支持自定义图标可视化展示评测结果

3、Starwhale拥有组件化的可视化工具,支持嵌入页面,满足多种模型评测场景的需求。

4、搜索和筛选直观易用,同时支持SQL式高级搜索,符合研发人员习惯,提升搜索体验。

在这里插入图片描述

数据管理
Starwhale的数据集管理功能十分强大,支持多种格式数据可视化和版本管理,关注数据理解和洞察,提升标注效率。

1、主流视觉、音视频、NLP等数据及标注信息在线可视化

2、线性记录数据集版本,支持自定义版本标签,支持版本回退。

3、通过SDK批量管理数据标签,提高标注效率。

在这里插入图片描述

模型管理
Starwhale关注模型迭代和调试过程管理,解决复现和追溯痛点。

1、灵活性:Starwhale 模型可以剥离冗余信息以获得更小的包,支持与生产团队的协作,而无需显示 python 推理代码以避免危害。

2、评测结果可视化:通过组件化的可视化工具,更显性的展示评测结果,便于理解和分析数据

3、版本差异可视化:支持不同版本模型对比,洞察代码变化和影响,辅助调试。

4、在线预测快:用小批量数据验证或调试模型,操作方便,效果直观。
在这里插入图片描述

环境管理
Starwhale关注模型开发和评测体验,降低开发和调试门槛

支持一键将运行时环境共享给他人使用,支持将运行时环境保存为镜像,方便分享和使用。

支持多种主流环境,关注模型开发和评测体验,降低开发和调试门槛。

在这里插入图片描述

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

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

相关文章

【Red Hat7.9安装Oracle11g】---调用图形化界面的几种方式

【Red Hat7.9安装Oracle11g】---调用图形化界面的几种方式 🔻 一、续上一篇[【Red Hat 7.9---详细安装Oracle 11g---图形化界面方式】](https://blog.csdn.net/qq_41840843/article/details/131198718?spm1001.2014.3001.5501)⛳ 1.1 前言⛳ 1.2 方式一、使用Xmana…

MIT 6.S081 Lab Five

MIT 6.S081 Lab Five 引言xv6 lazy page allocationEliminate allocation from sbrk() (easy)代码解析 Lazy allocation (moderate)代码解析 Lazytests and Usertests (moderate)代码解析 可选的挑战练习 引言 本文为 MIT 6.S081 2020 操作系统 实验五解析。 MIT 6.S081课程前…

从C语言到C++_21(模板进阶+array)+相关笔试题

目录 1. 非类型模板参数 1.1 array 1.2 非类型模板参数的使用场景 1.3 注意事项 2. 模板的特化 2.1 函数模板的特化 2.2 类模板的特化 2.3 全特化和偏特化(半特化) 3. 模板关于分离编译 4. 模板优缺点 5. 模板相关笔试题 本章完。 1. 非类型模板参数 对于函数模板…

dhtmlx Event Calendar JavaScript new Crack

DHTMLX Event Calendar可帮助您开发类似 Google 的 JavaScript 事件日历,以高效地组织约会。用户可以通过拖放来管理事件,并以六种不同的模式显示它们。 JavaScript 事件日历功能 轻的 简单的 JavaScript API 六个默认视图:日、周、月、年、议…

Java并发编程学习16-线程池的使用(中)

线程池的使用(中) 引言1. 配置 ThreadPoolExecutor1.1 线程的创建与销毁1.2 管理队列任务1.3 饱和策略1.4 线程工厂1.5 定制 ThreadPoolExecutor 2. 扩展 ThreadPoolExecutor总结 引言 上篇分析了在使用任务执行框架时需要注意的各种情况,并…

死锁的成因以及解决方案(简析)

目录 一.为什么会产生死锁? 二.死锁产生的几个场景 一个线程一把锁的情况 关于可重入和不可重入锁的简单举例 两个线程两把锁的情况 多线程多把锁 如何解决死锁 一.为什么会产生死锁? 简单来说,就是进程加锁之后,没有被解锁而处于一直等待的状态 二.死锁产生的几个场景…

深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):BERT的结构

分类目录:《深入理解深度学习》总目录 相关文章: BERT(Bidirectional Encoder Representations from Transformers):基础知识 BERT(Bidirectional Encoder Representations from Transformers&#xff09…

软件架构模式—分层架构

这是软件架构模式博客系列第 2 章,我们将讨论分层架构模式。 分层架构模式是一种n层模式,其中组件按照水平层次进行组织。这是设计大多数软件的传统方法,旨在实现自我独立。这意味着所有组件之间相互连接,但彼此之间不相互依赖。…

测试体系与测试方案设计

如果我们想要测试一个系统,我们得先需要了解被测系统架构 业务架构:业务模型分析技术架构:技术组件、通讯协议分析数据架构:数据模型、数据存储引擎分析 电子商城 Mall 开源项目技术架构 经典技术架构 网关产品 Nginx Apache HttpdWeb 应用开发 Vue.js React移动应…

福州大学学报退稿率【爬虫+数据处理】

目录 一、爬虫 二、数据处理 2.1 历年投稿总数: 2.2 各稿件状态比例: 2.3 历年退稿率 三、总结(福州大学学报退稿率) 一、爬虫 从福州大学学报微信公众号可以发现稿件状态的查询接口, 根据测试可知稿件号由年份与当…

Linux共享内存

博客内容:共享内存 文章目录 一、认识共享内存结构二、如何创建共享内存?1.创建共享内存2.关联进程,取消进程3.释放共享内存 三、代码示例总结 一、认识共享内存结构 共享内存 共享内存指 (shared memory)在多处理器的计算机系统中&#xff…

新手速成!如何使用ChatGPT成为你的导师

1. 写在前面 最近我发现咱们的团队现在是人手ChatGPT,不光是我们团队,我整个行业的人都在用它解决生活跟工作中遇到的问题。可以看到的是大家也都是对它赞赏度很高 本文我将为大家介绍如何更加高效的使用ChatGPT提高工作效率,面向ChatGPT编程…

JavaScript高级学习总结

函数作用域 函数内部声明的变量,在函数外部无法被访问函数的参数也是函数内部的局部变量不同函数内部声明的变量无法互相访问函数执行完毕之后,函数内部的变量实际被清空了 块作用域 let声明的变量会产生块作用域,var不会产生块作用域cons…

QT +OpenSSL配置

QT OpenSSL配置 1 查看自己QT支持的OPenSSL版本号1.1 查看版本号1.2 是否配置了OPenSSL 2 安装OPenSSL2.1 下载已经编译好的库2.2 自己编译代码2.2.1 下载perl2.2.1 下载OPenSSL源码 1 查看自己QT支持的OPenSSL版本号 1.1 查看版本号 新建项目testOpenSSLpro文件中加入QT ne…

(贪心) 649. Dota2 参议院 ——【Leetcode每日一题】

❓ 649. Dota2 参议院 难度:中等 Dota2 的世界里有两个阵营:Radiant(天辉)和 Dire(夜魇) Dota2 参议院由来自两派的参议员组成。现在参议院希望对一个 Dota2 游戏里的改变作出决定。他们以一个基于轮为过…

Debian11 dhclient 不自动执行问题

这两天用U盘安装Debian11,在”安装软件“一直提示失败,但可以跳过这一步继续往下安装,好在基本系统及grub能正常安装,最后系统也能正常起来了,但发现系统起来后没有ip地址,需要手动执行 dhclient 来获取ip。…

Java的第十二篇文章——集合

目录 第十二章 集合 学习目标 1. 集合框架的由来 2. 集合框架的继承体系 3. Collection接口 3.1 Collection接口的常用方法 4. Iterator接口 4.1 Iterator接口的抽象方法 4.2 获取迭代器接口实现类 4.3 迭代器的实现原理 4.4 并发修改异常 4.5 集合存储自定义对象并…

【Git常用命令及在IDEA中的使用】

Git常用命令及在IDEA中的使用 Git常用命令及在IDEA中的使用1 Git 概述1.1 Git 简介1.2 Git 下载与安装 2 Git 代码托管服务2.1 常用的Git 代码托管服务2.2 使用码云代码托管服务 3 Git 常用命令3.1 Git 全局设置3.2 获取 Git 仓库3.3 工作区、暂存区、版本库 概念3.4 Git工作区…

MyBatis面试题总结

1.概念/使用方法向的问题 1.1 什么是Mybatis? (1)Mybatis是一个半ORM框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。 (2&a…

​​​​SpringBoot 监控神器——Actuator 保姆级教程

pom.xml info beans conditions heapdump shutdown mappings threaddump loggers 端点 metrics 端点 自定义Endpoint 自定义监控端点常用注解 使用Filter对访问actuator做限制 Spring Boot Monitor做监控页面 SpringBoot自带监控功能Actuator,可以帮助…