Azure 机器学习:MLOps - 使用 Azure 机器学习进行模型管理、部署和监视

本文介绍如何在 Azure 机器学习中应用机器学习运营 (MLOps) 做法,以管理模型的生命周期。 应用 MLOps 做法可改善机器学习解决方案的质量和一致性。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

什么是 MLOps?

MLOps 基于可提高工作流效率的 DevOps 原理和做法。 例如持续集成、持续交付和持续部署。 MLOps 将这些原理应用到机器学习过程,其目标是:

  • 更快地试验和开发模型。
  • 更快地将模型部署到生产环境。
  • 质量保证和端到端世系跟踪。

机器学习中的 MLOps

机器学习提供以下 MLOps 功能:

  • 创建可重现的机器学习管道。 使用机器学习管道可为数据准备、训练和评分过程定义可重复且可重用的步骤。
  • 创建可重用的软件环境。 使用这些环境训练和部署模型。
  • 从任意位置注册、打包和部署模型。 还可以跟踪使用模型时所需的关联元数据。
  • 捕获端到端机器学习生命周期的监管数据。 记录的世系信息可以包括模型的发布者和做出更改的原因。 还包括在生产环境中部署或使用模型的时间。
  • 针对机器学习生命周期中的事件发出通知和警报。 事件示例包括试验完成、模型注册、模型部署和数据偏移检测。
  • 监视机器学习应用程序中的操作和机器学习相关问题。 比较训练与推理之间的模型输入。 探索特定于模型的指标。 提供有关机器学习基础结构的监视和警报信息。
  • 使用机器学习和 Azure Pipelines 自动化端到端机器学习生命周期。 通过使用管道,可以经常更新模型。 还可以测试新模型。 可以连同其他应用程序和服务持续推出新的机器学习模型。

创建可重现的机器学习管道

使用机器学习中的机器学习管道,将模型训练过程中的所有步骤汇聚到一起。

机器学习管道可以包含从数据准备、到特征提取、到超参数优化、再到模型评估的所有步骤。 有关详细信息,请参阅机器学习管道。

如果使用设计器来创建机器学习管道,可以随时选择设计器页面右上角的“…”图标。 然后选择“克隆”。 克隆管道可以迭代管道设计,且不会丢失旧版本。

创建可重用的软件环境

使用机器学习环境,可对不断演进的项目软件依赖项进行跟踪和再现。 使用环境,无需进行手动软件配置,就能确保生成项目可以再现。

环境描述项目的 pip 和 conda 依赖项。 可以使用它们来训练和部署模型。 有关详细信息,请参阅什么是机器学习环境?。

从任意位置注册、打包和部署模型

以下部分讨论如何注册、打包和部署模型。

注册和跟踪机器学习模型

可以使用模型注册在 Azure 云的工作区中存储模型并控制模型版本。 使用模型注册表,可轻松组织和跟踪定型的模型。

提示

已注册的模型是构成模型的一个或多个文件的逻辑容器。 例如,如果你有一个存储在多个文件中的模型,可以在机器学习工作区中将这些文件作为一个模型注册。 注册后,可以下载或部署已注册的模型,并接收注册的所有文件。

按名称和版本标识已注册的模型。 每次使用与现有名称相同的名称来注册模型时,注册表都会将版本递增。 在注册期间可以提供其他元数据标记。 然后,可以在搜索模型时使用这些标记。 机器学习支持可以使用 Python 3.5.2 或更高版本加载的任何模型。

重要

  • 在 Azure 机器学习工作室的“模型”页上使用“按 Tags 筛选”选项时,请使用 TagName=TagValue(无空格),而不是使用 TagName : TagValue
  • 无法删除在活动部署中使用的已注册模型。

有关详细信息,请参阅在 Azure 机器学习中使用模型。

打包和调试模型

在将模型部署到生产环境之前,需将其打包成 Docker 映像。 大多数情况下,映像创建操作会在部署期间在后台自动发生。 可以手动指定映像。

如果部署时遇到问题,可以在本地开发环境中部署,以进行故障排除和调试。

有关详细信息,请参阅如何对联机终结点进行故障排除。

转换和优化模型

将模型转换为 Open Neural Network Exchange (ONNX) 可以提高性能。 一般情况下,转换为 ONNX 可将性能提高两倍。

有关包含机器学习的 ONNX 的详细信息,请参阅创建和加速机器学习模型一文。

使用模型

已训练的机器学习模型将在云中或本地部署为终结点。 部署使用 CPU 或 GPU 进行推理。

将模型部署为终结点时,请提供以下项:

  • 用于对提交到服务或设备的数据进行评分的模型。
  • 一个入口脚本。 此脚本接受请求,使用模型对数据评分,然后返回响应。
  • 一个描述模型和入口脚本所需 pip 和 Conda 依赖项的机器学习环境。
  • 模型和入口脚本所需的任何其他资产,例如文本、数据等。

还需要提供目标部署平台的配置。 例如,VM 系列类型、可用内存和核心数。 创建映像时,还会添加 Azure 机器学习所需的组件。 例如,运行 Web 服务所需的资产。

批评分

通过批处理终结点支持批评分。 有关详细信息,请参阅终结点。

联机终结点

可以将模型与联机终结点配合使用。 联机终结点可以使用以下计算目标:

  • 托管联机终结点
  • Azure Kubernetes 服务
  • 本地开发环境

若要将模型部署到终结点,必须提供以下项:

  • 模型或模型系综。
  • 使用模型所需的依赖项。 例如,接受请求并调用模型、conda 依赖项的脚本。
  • 用于描述如何以及在何处部署模型的部署配置。

有关详细信息,请参阅部署联机终结点。

受控推出

部署到联机终结点时,可以使用受控推出来实现以下方案:

  • 为部署创建终结点的多个版本
  • 通过将流量路由到终结点中的不同部署来执行 A/B 测试。
  • 通过在终结点配置中更新流量百分比,在终结点部署之间进行切换。

有关详细信息,请参阅机器学习模型的受控推出。

分析

Microsoft Power BI 支持使用机器学习模型进行数据分析。 有关详细信息,请参阅 Power BI 中的机器学习集成(预览版)。

捕获 MLOps 所需的治理数据

机器学习提供使用元数据跟踪所有机器学习资产的端到端审核线索的功能。 例如:

  • 机器学习数据集可帮助你跟踪、分析数据及控制其版本。
  • 借助可解释性,可以解释模型、满足法规要求,并了解模型如何针对特定输入来提供结果。
  • 机器学习作业历史记录存储用于训练模型的代码、数据和计算的快照。
  • 机器学习模型注册表捕获与模型关联的所有元数据。 例如,元数据包括已训练它的试验、正在部署的位置以及该模型的部署是否正常。
  • 通过与 Azure 集成,可以对机器学习生命周期中的事件进行操作。 例如,模型注册、部署、数据偏移和训练(作业)事件。

提示

系统会自动捕获有关模型和数据集的某些信息,同时你可以使用“标记”添加其他信息。 在工作区中查找已注册的模型和数据集时,可以使用标记作为筛选器。

针对机器学习生命周期中的事件自动发出通知和警报

机器学习将关键事件发布到 Azure 事件网格。使用事件网格可以针对机器学习生命周期中的事件发出通知并自动采取措施。 有关详细信息,请参阅使用事件网格。

自动化机器学习生命周期

可以使用 GitHub 和 Azure Pipelines 来创建用于训练模型的持续集成过程。 在典型方案中,当数据科学家将某项更改签入项目的 Git 存储库时,Azure 管道将启动训练作业。 然后,可以检查该作业的结果,以了解已训练模型的性能特征。 还可以创建一个管道用于将模型部署为 Web 服务。

安装机器学习扩展可以更轻松地使用 Azure Pipelines。 该扩展为 Azure Pipelines 提供以下增强:

  • 在定义服务连接时启用工作区选择。
  • 使发布管道可由训练管道中创建的已训练模型触发。

关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。

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

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

相关文章

project打开文件时,显示无法识别此文件格式?

环境: Win 10 专业版 project 2021 问题描述: project打开文件时,显示无法识别此文件格式? 解决方案: 1.测试新建文件,打开都是这样,检查文件都不是旧版本创建(未解决&#xff…

Linux之输入输出重定向和管道

一、是什么 linux中有三种标准输入输出,分别是STDIN,STDOUT,STDERR,对应的数字是0、1、2: STDIN 是标准输入,默认从键盘读取信息STDOUT 是标准输出,默认将输出结果输出至终端STDERR 是标准错误…

做作业用台灯好还是不用台灯?高口碑护眼台灯分享

相信大家在生活着也遇到过这个问题,就是孩子在写作业时需不需要使用台灯。有些家长可能认为家里室内的亮度已经很足了,没必要使用台灯。 其实这个想法是错误的,孩子在书写作业时是需要使用台灯的!室内灯源照到书桌时时远远不够的&…

UDP主要丢包原因及具体问题分析

一、主要丢包原因 1、接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失。对于这种情况可以修改接收端,将包接收后存入…

Python【寻找缺失元素】

要求: 给定一个非负整数数组A,该数组的元素都是从1~N的元素组成,现在发现其中缺失一个,请找出这个缺失的元素 代码如下: def find_missing_element(arr):"""找出缺失的元素:param arr: 包含1~N之间的整数的数组&…

试论轮回的证据(欢迎讨论)

这几天看了几个鸟类筑巢的视频,十分惊叹。 一个鸟找个平台或树杈,用几个树枝搭个简陋的窝,这个确实是理所当然的事情,没什么奇怪的。 而有些鸟类的窝,十分的精巧,需要智商和技术。那么这些鸟类是怎么学会的…

jupyter lab配置列表清单

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

数据结构上机实验——图的实现(以无向邻接表为例)、图的深度优先搜索(DFS)、图的广度优先搜索(BFS)

文章目录 数据结构上机实验1.要求2.图的实现(以无向邻接表为例)2.1创建图2.1.1定义图的顶点、边及类定义2.1.2创建无向图和查找2.1.3插入边2.1.4打印函数 2.2图的深度优先搜索(DFS)2.3图的广度优先搜索(BFS&#xff09…

c/c++反汇编 | 逆向 | 初级小牛犊

c语言,难学不是没有道理的,不过能够更深层次了解底层,也不是没有理论支持的 之前简单的理解为,为什么C/C的程序能效率高?“应用层”我们写的屎山一样的代码,其实在编译的时候,编译器都会帮我们优…

Android的亮灯逻辑辨析

Android手机的亮灯逻辑由三层结构&#xff1a; 1. framework层控制行为逻辑 2. hardware提供HAL接口 3. 驱动层负责亮灯。 首先在/framework/base/core/res/res/values/config.xml中定义了灯的颜色和亮灯阈值 <!-- Display low battery warning when battery level dip…

竞赛 题目:垃圾邮件(短信)分类 算法实现 机器学习 深度学习 开题

文章目录 1 前言2 垃圾短信/邮件 分类算法 原理2.1 常用的分类器 - 贝叶斯分类器 3 数据集介绍4 数据预处理5 特征提取6 训练分类器7 综合测试结果8 其他模型方法9 最后 1 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 基于机器学习的垃圾邮件分类 该项目…

技术贴 | SQL 执行 - 执行器优化

本期技术贴主要介绍查询执行引擎的优化。查询执行引擎负责将 SQL 优化器生成的执行计划进行解释&#xff0c;通过任务调度执行从存储引擎里面把数据读取出来&#xff0c;计算出结果集&#xff0c;然后返回给客户。 在关系型数据库发展的早期&#xff0c;受制于计算机 IO 能力的…

前端JS解构数组对象

// 3. 对象数组解构const arr [{username: 小明,age: 18,agw:19},{username: 小ha,age: 18,agw:19}]arr.map(item>item.age)//js结构数组对象console.log( arr.map(item>{return {aaa:item.age,bbb:item.username}}))

搜维尔科技:【软件篇】TechViz是一款专为工程设计的专业级3D可视化软件

在沉浸式房间内深入研究您自己的 3D 数据 沉浸式房间是一个交互式虚拟现实空间&#xff0c;其中每个表面&#xff08;墙壁、地板和天花板&#xff09;都充当投影屏幕&#xff0c;创造高度沉浸式的体验。这就像您的 3D 模型有一个窗口&#xff0c;您可以在其中从不同角度走动、…

bclinux aarch64 ceph 14.2.10 文件存储 Ceph File System, 需要部署mds: ceph-deploy mds

创建池 [rootceph-0 ~]# ceph osd pool create cephfs_data 64 pool cephfs_data created [rootceph-0 ~]# ceph osd pool create cephfs_metadata 32 pool cephfs_metadata created cephfs_metadata 64 报错 官方说明&#xff1a; 元数据池通常最多可容纳几 GB 的数据。为…

php使用正则表达式和翻译字典json文件做翻译

需求&#xff1a;把页面中的中文翻译成越南文。 思路&#xff1a;在框架渲染页面的地方&#xff08;这个地方能获取到页面渲染后的所有html数据&#xff0c;设为$str&#xff09;&#xff0c;使用以下方法。 //翻译中文 读取json文件&#xff0c;使用正则表达式替换中文 publi…

haproxy端口耗尽no free ports

用haproxy配置负载均衡时出现端口不足错误&#xff1b;后端服务连接一会高一会儿低&#xff0c;从0到1w、2w跳变&#xff1b;实际连接数为4w左右&#xff1b; haproxy[8765]: Connect() failed for backend 09e581: no free ports. 问题描述 在请求很少的时候&#xff0c;工作…

人工智能与大数据:驱动现代业务转型的双引擎

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;和大数据已成为驱动业务和技术创新的关键力量。它们的结合不仅重塑了传统行业&#xff0c;也催生了新的商业模式和服务方式。 AI与大数据在零售行业的应用 在零售行业&#xff0c;AI和大数据的应用已经成为提…

排序 算法(第4版)

本博客参考算法&#xff08;第4版&#xff09;&#xff1a;算法&#xff08;第4版&#xff09; - LeetBook - 力扣&#xff08;LeetCode&#xff09;全球极客挚爱的技术成长平台 本文用Java实现相关算法。 我们关注的主要对象是重新排列数组元素的算法&#xff0c;其中每个元素…

No208.精选前端面试题,享受每天的挑战和学习

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云课上架的前后端实战课程《Vue.js 和 Egg.js 开发企业级健康管理项目》、《带你从入…