当前位置: 首页 > news >正文

当 ML 遇到 DevOps:如何理解 MLOps

近年来,人工智能 (AI) 和机器学习 (ML) 已经席卷全球,几乎成为任何行业的重要组成部分,从零售和娱乐到医疗保健和银行业。这些技术能够通过分析大量数据实现运营自动化、降低成本和促进决策,从而从根本上改变企业。最近,AI 和 ML 项目的数量急剧增加,这给有效的 ML 项目管理带来了困难。这就是 MLOps 进入科技行业中心舞台的方式。

什么是 MLOps?

MLOps,即机器学习操作,是一种优化 ML 生命周期的方法,以加速 AI 驱动的应用程序的创建。它遵循类似 DevOps 的技术,用于在 ML 领域进行快速可靠的软件开发。MLOps 与 DevOps 一样,可以促进协作思维,使数据科学家、软件工程师和数据专家之间能够持续沟通。它涵盖了 ML 过程的所有方面,从数据收集和模型创建到最终部署和持续的项目增强。

人工智能和机器学习到底是什么?

尽管它们关系密切,但 AI 和 ML 是两个不同的概念,不应混淆。人工智能是一个总称,涵盖了使计算机系统模仿人类智能的各种方法和技术。反过来,ML是AI的一个子领域,它允许计算机自动从结构化数据中学习。它专注于使用大型数据集训练算法,以创建复杂的 ML 模型,这些模型能够执行复杂的任务,例如分析大数据、对图像进行排序和生成类似人类的语音。

ML 生命周期包括哪些内容?

几乎所有的ML项目在其周期性生命周期中都会经历以下阶段:

  • 数据采集: 创建高质量的数据集是 ML 生命周期的重要组成部分,其中包括收集文本、图像、声音或视频等数据。
  • 数据准备和整理:随机化,将数据组织到数据集中,删除错误和重复项,并将其转换为可用的格式。
  • 模型开发:选择有效的模型架构,创建模型,在数据集上训练模型,对其进行调整和评估。
  • 模型部署:将经过训练的机器学习模型引入现实生活中的系统,并确定它是否使用可用数据提高其性能。
  • 监测:观察系统,通过早期检测和纠正来确保和保持所需的性能水平。

MLOps 如何改进 ML 生命周期?

MLOps 采用 DevOps 技术来创建最佳的标准化 ML 方法。在 ML 过程的所有阶段,它都严重依赖于以下实践:

  • 版本控制: 它广泛用于软件工程,涉及跟踪、存储和管理随时间推移对代码所做的更改。在 ML 中,它更进一步,专注于关键的 ML 组件(数据和模型),以确保可追溯性、可重复性、回滚、调试和协作。数据版本控制对于模型开发至关重要,而模型版本控制在模型的整个生命周期中都是必不可少的。
  • 持续集成和持续部署 (CI/CD):这些实践围绕着审查、重新评估和识别 ML 模型问题的持续过程展开,这允许在收到新数据时更改模型。CI/CD 还可以自动执行 ML 管道的各个部分,例如开发、构建和测试阶段。
  • 监控和日志记录:ML 模型监控负责持续跟踪已部署模型在生产中的性能,提供关键反馈,并确保模型准确预测并随着时间的推移提供价值。日志记录创建应用程序事件的记录,可用于识别在模型开发的任何阶段发生的性能问题的根源。
  • 模型治理和合规性: 这些做法旨在降低与模型性能不佳相关的风险,这可能导致各种问题,从糟糕的决策和糟糕的客户体验到违反国家和国际法律法规。例如,许多企业必须遵守许多国家/地区严格的个人数据安全法规。
  • 基础架构和可扩展性:构建、训练和运行 ML 模型所需的资源、工具和流程的组合称为 ML 基础设施。它通过协助数据科学家和工程团队管理和操作各种资源,以及简化训练和部署流程,确保 ML 工作流程的每个阶段的成功实施。ML 可扩展性是指 ML 应用程序处理任何数量数据的能力,同时在为数百万用户提供服务的同时保持成本效益和节省时间。
  • 自动化测试: 通过自动化单元和集成测试,MLOps 从业者可以产生长期影响。自动化加速了单元测试,单元测试基于将代码划分为多个块并单独测试每个块的概念。它还改进了集成测试,用于查看组件如何相互交互。其主要目标是确保组合单元相互交互,并且系统符合所有模型标准。

开展 MLOps 职业需要什么?

任何想要在 2023 年接受挑战,将自己的职业生涯转向这个充满活力的 AI 领域的人都应该熟悉 MLOps 中使用的基本实践、概念、工具和平台。它们如下:

  • 数据工程、机器学习和软件开发:了解 Python 编程语言的基础知识以及 ML 框架 TensorFlow 和 PyTorch 至关重要。
  • DevOps:了解 DevOps 原则、版本控制系统、CI/CD 管道以及 AWS 或 Google Cloud 等云平台至关重要。
  • MLOps 工具:熟悉用于管理端到端 ML 工作流的工具(包括 MLflow、Kubeflow 和 Apache Airflow)至关重要。
  • 实践:若要在 MLOps 中取得成功,必须在实际场景中构建、测试和部署 ML 机器学习模型。从小型个人项目开始可以帮助为在大型科技公司工作铺平道路。
  • 社区:沉浸在社区生活中,参加比赛和黑客马拉松,并与其他专业人士合作,对于及时了解 MLOps 开发、学习新技能和取得成功至关重要。
  • 认证:从云提供商处获得 ML 和 DevOps 认证至关重要,这样才能建立强大的简历并找到一份理想的工作。

结论:为什么 MLOps 很重要?

MLOps 是一组高效的做法,代表了向优化 ML 生命周期的转变,从而更快、更敏捷地开发、测试和维护 AI 应用程序。它的主要好处是效率、可扩展性和降低风险。


更多技术干货请关注公号【云原生数据库

squids.cn,云数据库RDS,迁移工具DBMotion,云备份DBTwin等数据库生态工具。

irds.cn,多数据库管理平台(私有云)。

相关文章:

当 ML 遇到 DevOps:如何理解 MLOps

近年来,人工智能 (AI) 和机器学习 (ML) 已经席卷全球,几乎成为任何行业的重要组成部分,从零售和娱乐到医疗保健和银行业。这些技术能够通过分析大量数据实现运营自动化、降低成本和促进决策&…...

vue+element+springboot实现多张图片上传

1.需求说明 2.实现思路 3.el-upload组件主要属性说明 4.前端传递MultipartFile数组与服务端接收说明 5.完整代码 1.需求说明 动态模块新增添加动态功能,支持多张图片上传.实现过程中对el-upload组件不是很熟悉,踩了很多坑,当然也参考过别的文章,发现处理很…...

react使用useState更新数组失败

失败案例: const [addBox, setAddBox] useState([])const itemAdd (item) >{addBox.push(item);setAddBox(addBox)console.log(addBox,点击添加按钮)} 原因:react的useState hook监听的是浅监听 在 React 中,使用 useState Hook 来更新…...

《LIO-SAM阅读笔记》3.后端优化

前言: LIO-SAM后端优化部分写在了mapOptimization.cpp文件中,本部分主要进行了激光帧的scan-to-map匹配,回环检测以及关键帧的因子图优化。本部分主要有两个环节同步进行,一个单独开辟了回环检测线程,另外一个是lidar…...

mac下jd-gui提示没有找到合适的jdk版本

mac下jd-gui提示jdk有问题 背景解决看一下是不是真有问题了方法一:修改启动脚本方法二:设置launchd环境变量 扩展动态切jdk脚本(.bash_profile) 背景 配置了动态jdk后,再次使用JD-GUI提示没有找到合适的jdk版本。 解决 看一下是不是真有问题…...

FlinkSQL窗口实例分析

Windowing TVFs Windowing table-valued functions (Windowing TVFs),即窗口表值函数 注意:窗口函数不可以单独使用,需要聚合函数,按照 window_start、window_end 分区,即存在:group by window_start,wind…...

18-网络安全框架及模型-信息系统安全保障模型

信息系统安全保障模型 1 基本概念 信息系统安全保障是针对信息系统在运行环境中所面临的各种风险,制定信息系统安全保障策略,设计并实现信息系统安全保障架构或模型,采取工程、技术、管理等安全保障要素,将风险减少至预定可接受的…...

Android 提取(备份)apk(安装包)

Android 提取(备份)apk(安装包) 一、通过安卓代码的方式 主要分三步: 根据应用找到包名根据包名获得apk提取apk 提取apk代码 private static final String BACKUP_PATH "/sdcard/backup1/"; private static final String APK ".apk";pri…...

gRPC-Go基础(4)metadata和超时设置

文章目录 0. 简介1. metadata1.1 metadata结构1.2 metadata创建1.3 客户端处理metadata1.4 服务端处理metadata1.5 metadata的传输 2. 超时设置2.1 客户端输出超时信息2.2 服务端端接收超时信息 3. 小结 0. 简介 Go在多个go routine之间传递数据使用的是Go SDK提供的context包…...

语言模型:从n-gram到神经网络的演进

目录 1 前言2 语言模型的两个任务2.1 自然语言理解2.2 自然语言生成 3 n-gram模型4 神经网络语言模型5 结语 1 前言 语言模型是自然语言处理领域中的关键技术之一,它致力于理解和生成人类语言。从最初的n-gram模型到如今基于神经网络的深度学习模型,语言…...

docker compose 部署 grafana + loki + vector 监控kafka消息

Centos7 随笔记录记录 docker compose 统一管理 granfana loki vector 监控kafka 信息。 当然如果仅仅是想通过 Grafana 监控kafka,推荐使用 Grafana Prometheus 通过JMX监控kafka 目录 1. 目录结构 2. 前提已安装Docker-Compose 3. docker-compose 自定义服…...

kubeadm创建k8s集群

kubeadm来快速的搭建一个k8s集群: 二进制搭建适合大集群,50台以上。 kubeadm更适合中下企业的业务集群。 部署框架 master192.168.10.10dockerkubelet kubeadm kubectl flannelnode1192.168.10.20dockerkubelet kubeadm kubectl flannelnode2192.168.1…...

鸿蒙开发之android对比开发《基础知识》

基于华为鸿蒙未来可能不再兼容android应用,推出鸿蒙开发系列文档,帮助android开发人员快速上手鸿蒙应用开发。 1. 鸿蒙使用什么基础语言开发? ArkTS是鸿蒙生态的应用开发语言。它在保持TypeScript(简称TS)基本语法风…...

2702 高级打字机

因为Undo操作只能撤销Type操作,所以Undo x 实际上就是删除文章末尾x个字母。用一个栈即可解决(每个字母最多进出一次)。 这种情况下只需要设计一个合理的数据结构依次执行操作即可。 版本树:Undo x撤销最近的x次修改操作&#xf…...

yolov5旋转目标检测-遥感图像检测-无人机旋转目标检测-附代码和原理

综述 为了解决旋转目标检测问题,研究者们提出了多种方法和算法。以下是一些常见的旋转目标检测方法: 基于滑动窗口的方法:在图像上以不同的尺度和角度滑动窗口,通过分类器判断窗口中是否存在目标。这种方法简单直观,…...

Qt学习:Qt的意义安装Qt

Qt 的简介 QT 是一个跨平台的 C图形用户界面应用程序框架。它为程序开发者提供图形界面所需的所有功能。它是完全面向对象的,很容易扩展,并且允许真正地组件编程。 支持平台 xP 、 Vista、Win7、win8、win2008、win10Windows . Unix/Linux: Ubuntu 等…...

Anylogic Pro 8.8.x for Mac / for Linux Crack

Digital twins – a step towards a digital enterprise AnyLogic是唯一一个支持创建模拟模型的方法的模拟建模工具:面向过程(离散事件)、系统动态和代理,以及它们的任何组合。AnyLogic提供的建模语言的独特性、灵活性和强大性使…...

ROS无人机初始化GPS定位漂移误差,确保无人机稳定飞行

引言: 由于GPS在室外漂移的误差比较大,在长时间静止后启动,程序发布的位置可能已经和预期的位置相差较大,导致无法完成任务,尤其是气压计的数据不准,可能会导致无人机不能起飞或者一飞冲天。本文主要是在进…...

k8s网络类型

k8s中的通信模式: pod内部之间容器与容器之间的通信。 在同一个pod中的容器共享资源和网络,使用同一个网络命名空间。可以直接通信的。 同一个node节点之内,不同pod之间的通信。 每一个pod都有一个全局的真实的IP地址,同一个n…...

Seata 中封装了四种分布式事务模式,分别是: AT 模式, TCC 模式, Saga 模式, XA 模式,

文章目录 seata概述Seata 中封装了四种分布式事务模式,分别是:AT 模式,TCC 模式,Saga 模式,XA 模式, 今天我们来聊聊seata seata 概述 在微服务架构下,由于数据库和应用服务的拆分&#xff0c…...

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …...

Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)

概述 在 Swift 开发语言中&#xff0c;各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过&#xff0c;在涉及到多个子类派生于基类进行多态模拟的场景下&#xff0c;…...

在四层代理中还原真实客户端ngx_stream_realip_module

一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡&#xff08;如 HAProxy、AWS NLB、阿里 SLB&#xff09;发起上游连接时&#xff0c;将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后&#xff0c;ngx_stream_realip_module 从中提取原始信息…...

【HarmonyOS 5 开发速记】如何获取用户信息(头像/昵称/手机号)

1.获取 authorizationCode&#xff1a; 2.利用 authorizationCode 获取 accessToken&#xff1a;文档中心 3.获取手机&#xff1a;文档中心 4.获取昵称头像&#xff1a;文档中心 首先创建 request 若要获取手机号&#xff0c;scope必填 phone&#xff0c;permissions 必填 …...

《C++ 模板》

目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板&#xff0c;就像一个模具&#xff0c;里面可以将不同类型的材料做成一个形状&#xff0c;其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式&#xff1a;templa…...

MFC 抛体运动模拟:常见问题解决与界面美化

在 MFC 中开发抛体运动模拟程序时,我们常遇到 轨迹残留、无效刷新、视觉单调、物理逻辑瑕疵 等问题。本文将针对这些痛点,详细解析原因并提供解决方案,同时兼顾界面美化,让模拟效果更专业、更高效。 问题一:历史轨迹与小球残影残留 现象 小球运动后,历史位置的 “残影”…...

宇树科技,改名了!

提到国内具身智能和机器人领域的代表企业&#xff0c;那宇树科技&#xff08;Unitree&#xff09;必须名列其榜。 最近&#xff0c;宇树科技的一项新变动消息在业界引发了不少关注和讨论&#xff0c;即&#xff1a; 宇树向其合作伙伴发布了一封公司名称变更函称&#xff0c;因…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)

macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 &#x1f37a; 最新版brew安装慢到怀疑人生&#xff1f;别怕&#xff0c;教你轻松起飞&#xff01; 最近Homebrew更新至最新版&#xff0c;每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

tomcat指定使用的jdk版本

说明 有时候需要对tomcat配置指定的jdk版本号&#xff0c;此时&#xff0c;我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...

uniapp 实现腾讯云IM群文件上传下载功能

UniApp 集成腾讯云IM实现群文件上传下载功能全攻略 一、功能背景与技术选型 在团队协作场景中&#xff0c;群文件共享是核心需求之一。本文将介绍如何基于腾讯云IMCOS&#xff0c;在uniapp中实现&#xff1a; 群内文件上传/下载文件元数据管理下载进度追踪跨平台文件预览 二…...