架构师机器学习操作 (MLOps) 指南

news2024/9/27 7:24:12

MLOps 是机器学习操作的缩写,是一组实践和工具,旨在满足工程师构建模型并将其投入生产的特定需求。一些组织从一些自主开发的工具开始,这些工具在每次实验后对数据集进行版本控制,并在每个训练周期后对检查点模型进行版本控制。另一方面,许多组织选择采用具有实验跟踪、协作功能、模型服务功能甚至用于处理数据和训练模型的管道功能的正式工具。

若要为组织做出最佳选择,应了解业界领先的 MLOps 工具提供的所有功能。如果你走本土路线,你应该明白你正在放弃的能力。对于需要快速行动且可能没有时间评估新工具的小型团队来说,自主开发的方法很好。如果选择实施第三方工具,则需要选择与组织的工程工作流最匹配的工具。这可能很棘手,因为当今的顶级工具在方法和功能上有很大差异。无论您选择哪种方式,您都需要能够处理大量数据并以高性能方式提供训练集的数据基础架构。检查点模型和版本控制大型数据集需要可扩展的容量,如果您使用昂贵的 GPU,您将需要高性能的基础设施来充分利用您的投资。

在这篇文章中,我将介绍一个功能列表,架构师无论选择哪种方法或工具,都应该考虑该列表。此功能列表来自我对当今三家顶级 MLOps 供应商 KubeFlow、MLflow 和 MLRun 的研究和实验。对于选择从自主开发解决方案开始的组织,我将介绍一个可以扩展和执行的数据基础架构。(剧透警报 - 您在这里需要的只是 MinIO。当谈到第三方工具时,我注意到我研究的供应商有一种模式。对于选择采用 MLOps 工具的组织,我将介绍此模式,并将其与现代数据湖参考体系结构联系起来。

在深入探讨功能和基础结构要求之前,让我们更好地了解 MLOps 的重要性。为此,将模型创建与传统应用程序开发进行比较会很有帮助。

模型与应用的区别

传统的应用程序开发,例如实现向应用程序添加新功能的新微服务,从查看规范开始。首先设计新的数据结构或对现有数据结构的更改。编码开始后,数据的设计不应更改。然后实现服务,编码是此过程中的主要活动。单元测试和端到端测试也进行了编码。这些测试证明代码没有错误,并且正确地实现了规范。在部署整个应用程序之前,它们可以由 CI/CD 管道自动运行。

创建模型和训练它是不同的。第一步是了解原始数据和所需的预测。机器学习工程师确实需要编写一些代码来实现他们的神经网络或设置算法,但编码并不是主要活动。主要活动是重复实验。在实验过程中,数据的设计、模型的设计和使用的参数都会发生变化。每次试验后,都会创建指标,以显示模型在训练时的表现。此外,还会生成指标,以确定模型性能,以针对验证集和测试集。这些指标用于证明模型的质量。每次试验后都应保存模型,每次更改数据集时,也应保存数据集。一旦模型准备好合并到应用程序中,就必须对其进行打包和部署。

总而言之,MLOps 之于机器学习,就像 DevOps 之于传统软件开发一样。两者都是一组旨在改善工程团队(开发或 ML)和 IT 运营 (Ops) 团队之间协作的实践和原则。目标是使用自动化来简化开发生命周期,从规划和开发到部署和运营。这些方法的主要好处之一是持续改进。

让我们更深入地了解 MLOps,并查看要考虑的特定功能。

要考虑的 10 个 MLOps 功能

实验跟踪和协作是与 MLOps 最相关的功能,但当今更现代的 MLOps 工具可以执行更多功能。例如,有些可以为您的实验提供运行时环境。其他人可以在模型准备好集成到应用程序后打包和部署模型。

下面是当今 MLOps 工具中发现的功能的超集。此列表还包括其他需要考虑的事项,例如支持和数据集成。

1 . 来自主要参与者的支持 - MLOps 技术和功能在不断发展。您需要一个由主要参与者(分别为 Google、Databricks 或麦肯锡公司支持 Kubeflow、MLflow 和 MLRun)支持的工具,以确保持续开发和改进。举个具体的例子,今天许多流行的工具都是在大型语言模型();LLMs因此,许多公司正在添加新功能来支持生成式 AI。

2 . 现代数据湖集成 - 试验会生成大量结构化和非结构化数据。与现代数据湖(或数据湖仓一体)完美集成的 MLOps 工具将非结构化数据存储在数据湖中(直接称为 MinIO),结构化数据将进入数据仓库。不幸的是,许多 MLOps 工具在产生现代数据湖的开放表格式之前就已经存在,因此大多数工具都会为其结构化数据提供单独的解决方案。这通常是数据基础架构需要支持的开源关系数据库。关于非结构化数据(数据集和模型检查点),自 2014 年以来,业内所有主要工具都使用 MinIO。

3 . 实验跟踪 - MLOps 工具最重要的功能可能是跟踪每个实验的数据集、模型、超参数和指标。实验跟踪还应该促进可重复性 - 如果在五年前的实验中获得了理想的结果,而之后的实验降低了模型的性能,那么您应该能够使用 MLOps 工具返回并获取确切的超参数,以及用于产生理想结果的数据集特征。

4 . 促进协作 - MLOps 工具的一个重要组件是用于显示每个实验结果的门户或 UI。所有团队成员都应该可以访问此门户,以便他们可以看到彼此的实验并提出建议。一些 MLOps 工具具有花哨的图形功能,允许创建自定义图形来比较实验结果。

5 . 模型打包 - 此功能打包模型,以便可以从其他编程环境(通常作为微服务)访问模型。这是一个很好的功能。经过训练的模型只不过是一个序列化对象。许多组织可能已经弄清楚了这一点。

6 . 模型服务 - 将模型打包为服务后,此功能将允许将包含模型的服务自动部署到组织的正式环境中。如果您拥有能够跨环境管理所有软件资产的成熟 CI/CD 管道,则不需要此功能。

7 . 模型注册表 - 模型注册表提供 MLOps 工具当前管理的所有模型的视图。毕竟,创建生产级模型是所有 MLOps 的目标。此视图应显示已部署到生产环境的模型以及从未投入生产的模型。应以这样一种方式标记已投入生产的模型,以便您还可以确定它们部署到的应用程序或服务的版本。

8 . 无服务器函数 - 某些工具提供允许对代码进行批注的功能,以便可以将函数或模块部署为容器化服务,以便在群集中运行试验。如果您决定使用此功能,请确保您的所有工程师都熟悉此技术。这可能是一个学习曲线 - 具有DevOps背景的工程师将更容易,而以前学习机器学习的工程师几乎没有编码经验。

9 . 数据管道功能 - 某些 MLOps 工具旨在提供完整的端到端功能,并具有特定于构建数据管道以检索、处理和存储干净数据的功能。管道通常被指定为有向无环图 (DAG) - 某些工具还具有调度功能。当与无服务器函数结合使用时,它可以成为开发和运行数据管道的强大低代码解决方案。如果您已经在使用管道或工作流工具,则不需要此功能。

10 . 训练管道功能 - 这类似于数据管道,但训练管道会从数据管道中断的位置开始。训练管道允许您调用数据访问代码,将数据发送到训练逻辑,并注释数据工件和模型,以便自动保存它们。与数据管道类似,此功能可以与无服务器函数结合使用,以创建 DAG 和计划实验。如果您已经在使用分布式训练工具,那么您可能不需要此功能。可以从训练管道开始分布式训练,但这可能太复杂了。

MLOps 和存储

在了解了传统应用程序开发和机器学习之间的差异之后,应该很清楚,要想在机器学习方面取得成功,您需要某种形式的 MLOps 以及能够实现性能和可扩展容量的数据基础架构。

如果你需要快速启动一个项目,并且没有时间评估正式的 MLOps 工具,那么自主开发的解决方案是很好的选择。如果您采用这种方法,好消息是您的数据基础架构只需要 MinIO。MinIO 与 S3 兼容,因此如果您从其他工具开始并使用 S3 接口访问您的数据集,那么您的代码就可以工作了。如果您刚开始,那么您可以使用我们的 Python SDK,它也与 S3 兼容。考虑使用 MinIO 的企业版,它具有缓存功能,可以大大加快训练集的数据访问速度。查看 AI 建立在对象存储上的真正原因,我们将深入探讨 MinIO 如何以及为什么用于支持 MLOps。选择自主开发解决方案的组织仍应熟悉上述十个功能。您最终可能会超出自主开发的解决方案,最有效的方法是采用 MLOps 工具。

对于拥有多个 AI/ML 团队创建不同类型的模型的大型组织来说,采用第三方 MLOps 工具是最佳方法。具有最多功能的 MLOps 工具不一定是最好的工具。查看上面的功能,并记下您需要的功能、当前作为现有 CI/CD 管道一部分的功能,最后,您不需要的功能,这将帮助您找到最合适的功能。MLOps 工具对大 PB 级对象存储有着浓厚的兴趣。其中许多会在每次实验中自动对数据集进行版本控制,并在每个时期后自动检查模型。同样,MinIO 可以提供帮助,因为容量不是问题。与自主开发的解决方案类似,请考虑使用 MinIO 的企业版。缓存功能在为存储桶配置后自动工作,因此即使 MLOps 工具不请求使用缓存,MinIO 也会自动缓存经常访问的对象,如训练集。

未来的愿望清单

目前市场上的许多 MLOps 工具都使用开源关系数据库来存储模型训练期间生成的结构化数据,这些数据通常是指标和超参数。不幸的是,这将是一个需要组织支持的新数据库。此外,如果组织正在向新式数据湖(或数据湖仓一体)迁移,则不需要额外的关系数据库。对于主要的 MLOps 供应商来说,最好考虑使用基于 OTF 的数据仓库来存储他们的结构化数据。

所有主要的 MLOps 供应商都在后台使用 MinIO 来存储非结构化数据。遗憾的是,这通常部署为一个单独的小型实例,该实例作为 MLOps 工具的整体大型安装的一部分进行安装。此外,它通常是 MinIO 的旧版本,这违背了我们始终运行最新和最好的精神。对于现有的 MinIO 客户,最好允许 MLOps 工具使用现有安装中的存储桶。对于不熟悉 MinIO 的客户,MLOps 工具应支持最新版本的 MinIO。安装后,MinIO 还可以用于组织内 MLOps 资源以外的用途,即任何需要对象存储优势的地方。

结论

在这篇文章中,我通过调查 MLOps 功能和支持这些功能所需的数据基础结构,介绍了 MLOps 的架构师指南。在较高级别上,组织可以构建自行开发的解决方案,也可以部署第三方解决方案。无论选择哪个方向,了解当今行业中可用的所有功能都很重要。自主开发的解决方案允许您快速启动项目,但您可能很快就会超出您的解决方案。了解你的特定需求以及 MLOps 将如何与现有 CI/CD 管道配合使用也很重要。许多 MLOps 工具功能丰富,包含你可能永远不会使用的功能,或者你已作为 CI/CD 管道的一部分拥有的功能。

若要成功实现 MLOps,需要一个可以支持它的数据基础结构。在这篇文章中,我为那些选择自主开发解决方案的人提供了一个简单的解决方案,并描述了对第三方工具的期望及其所需的资源。

最后,我列出了一份愿望清单,希望进一步开发 MLOps 工具,帮助他们更好地与现代数据湖集成。

有关使用现代数据湖支持 AI/ML 工作负载的详细信息,请查看现代数据湖中的 AI/ML。

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

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

相关文章

The First项目报告:引领L2解决方案新纪元的模块化协议AltLayer

在区块链演进中,可扩展性与定制化成为开发者核心诉求。ZK Rollups与Optimistic Rollups虽显著提升以太坊等区块链性能,却面临访问性、定制难、中心化风险及流动性分散等挑战。AltLayer以Rollups-as-a-Service创新模式,赋予开发者直接管理roll…

使用 MinIO 赢得 RAG 权利

人们常说,在人工智能时代,数据是你的护城河。为此,构建生产级 RAG 应用程序需要合适的数据基础架构来存储、版本控制、处理、评估和查询构成专有语料库的数据块。由于 MinIO 采用数据优先的 AI 方法,因此对于此类项目,…

前端面试代码题

1. 变量提升 2. 数组相关的方法 注意返回true值是保留不是过滤,别记反。 3. 引用相关 引用类型变量的等于号赋值,不会相互影响。但是通过a.b的方式会影响,此时算浅复制。 3. 宏任务微任务 2 4 5同步代码,3微任务,1宏…

【排序 - 直接选择排序】

选择排序(Selection Sort)是一种简单直观的排序算法,虽然不如快速排序或归并排序高效,但它易于理解和实现,适用于小型数据集合。 选择排序原理 选择排序的基本思想是每次从未排序的数据中选出最小(或最大…

【Unity2D 2022:NPC】制作NPC

一、创建NPC角色 1. 创建JambiNPC并同时创建Jambi站立动画 (1)点击第一张图片,按住shift不松,再选中后两张图片,拖到层级面板中 (2)将动画资源文件保存到Animation Clips文件夹中 (…

全栈业务开发入门——登录业务接口

业务已上传则资源 实现登录业务的前后端联调,前端点击登录按钮向后端发送一个请求,后端调用接口向前端响应结果 效果如下: 设计环境:springbootmybatisvue3axios 一.前端设计 1.基于vue3脚手架创建项目,搭建项目结构…

快问快答,一套源码的价格在多少钱左右?

购买一套商城源码的价格大致在几千元到几十万不等,具体取决于多种因素。下面将详细分析影响商城源码价格的主要因素: 商城类型 B2B2C商城:这类商城支持平台自营和多商户入驻,功能相对复杂,价格较高。一般价格在8-15万…

移动UI:发现页面,是什么,有啥作用,该如何设计呢?

移动应用中的“发现页面”通常用于向用户展示新的内容、功能、活动或推荐信息,以帮助用户发现和探索应用中的新内容或功能。设计一个好的发现页面可以提升用户对应用的兴趣和粘性。 以下是设计发现页面时可以考虑的一些要点: 1. 推荐内容: …

【网络安全科普】网络安全指南请查收

随着社会信息化深入发展,互联网对人类文明进步奖发挥更大的促进作用。但与此同时,互联网领域的问题也日益凸显。网络犯罪、网络监听、网络攻击等是又发生,网络安全与每个人都息息相关,下面,一起来了解网络安全知识吧。…

如何保障生物制药中试验网和办公网之间的跨网安全文件交换数据?

在针对数据化大环境下,生物制药企业的数据安全尤为关键,尤其是试验网与办公网之间的数据交换。这些数据不仅包含新药品研发成果、临床试验数据,还有健康医疗数据等,都是企业的核心竞争力和商业秘密 。因此,安全地进行跨…

代码随想录(day3)有序数组的平方

暴力求解法: 注意:需要确定范围,比如nums.sort()是在for循环之外,根据函数的功能来确定 return返回的是nums,而不是nums[i]因为返回的是整个数组 class Solution(object):def sortedSquares(self, nums):for i in r…

【Linux】:程序替换

朋友们、伙计们,我们又见面了,本期来给大家解读一下有关Linux程序替换的相关知识点,如果看完之后对你有一定的启发,那么请留下你的三连,祝大家心想事成! C 语 言 专 栏:C语言:从入门…

AWS-WAF-Log S3存放,通过Athena查看

1.创建好waf-cdn 并且设置好规则和log存储方式为s3 2. Amazon Athena 服务 使用 (注意s3桶位置相同得区域) https://docs.aws.amazon.com/zh_cn/athena/latest/ug/waf-logs.html#waf-example-count-matched-ip-addresses 官方文档参考,建一个分区查询表…

批量发送定制邮件内容

需要给以下学员发送作业反馈邮件(文件名为:学员作业反馈.xlsx) 学员序号学员姓名学员邮箱作业反馈20090001海龙3177261496qq.com第1题:少了一个a20090002真达3177261496qq.com第2题:少了一个b20090003张三3177261496…

Python: 分块读取文本文件

在处理大文件时,逐行或分块读取文件是很常见的需求。下面是几种常见的方法,用于在 Python 中分块读取文本文件: 1、问题背景 如何分块读取一个较大的文本文件,并提取出特定的信息? 问题描述: fopen(blank.txt,r) quot…

昇思25天学习打卡营第17天|应用实践之SSD目标检测

基本介绍 今天要学习的内容是计算机视觉领域中的目标检测任务。与图像分类相比,目标检测更难,因为目标检测不仅要检测出图片中的物体的类别,还要检测出该物体的位置。现主流的目标检测算法大致可分为两种,一种是基于CNN的&#xf…

Type-C/DP1.4到HDMI2.0替代龙讯LT8711HE,集睿智远CS5262

NCS8622是一款高性能低功耗的Type-C/DP1.4到HDMI2.0转换器,设计为连接USB Type-C源或DP1.4源到HDMI2.0。 NCS8622集成了符合DP1.4标准的接收器,以及符合HDMI2.0标准的发射器。此外,CC控制器用于将CC通信到实现DP Alt模式。DP接收器集成了HDCP…

软考五个高级科目怎么选?如何一口气拿下证书!

软考高级包括: 信息系统项目管理师、系统分析师、系统架构设计师、网络规划设计师、系统规划与管理师等五个考试。 一、各科特点: 信息系统项目管理师 特点:主要从事信息系统项目管理方面的工作,要求掌握项目管理的知识体系和实…

类与对象-继承-构造和析构顺序

构造和析构顺序 #include<iostream> using namespace std;class Base { public:Base(){cout << "Base构造函数" << endl;}~Base(){cout << "Base析构函数" << endl;} };class Son :public Base { public:Son(){cout <&l…

C#开发:下载node.js指定版本

一、打开官网 二、找到指定版本 三、选择程序包msi下载 四、验证下载是否成功 cmd输入&#xff1a; node -v npm -v