机器学习系统架构的10个要素

news2024/9/27 23:32:06

这是一个AI赋能的时代,而机器学习则是实现AI的一种重要技术手段。那么,是否存在一个通用的通用的机器学习系统架构呢?

在老码农的认知范围内,Anything is nothing,对系统架构而言尤其如此。但是,如果适用于大多数机器学习驱动的系统或用例,构建一个可扩展的、可靠的机器学习系统架构还是可能的。从机器学习生命周期的角度来看,这个所谓的通用架构涵盖了关键的机器学习阶段,从开发机器学习模型,到部署训练系统和服务系统到生产环境。我们可以尝试从10个要素的维度来描述这样的一个机器学习系统架构。

bde1928863220d5bb6e99009ff13c87c.png

1.数据和特征工程流水线

在给定的时间内提供高质量的数据,并以可伸缩和灵活的方式生成有用的机器学习特征。一般来说,数据流水线可以与特征工程流水线分离。数据流水线是指提取、转换和加载(ETL)的流水线,其中,数据工程师负责将数据传输到存储位置,比如建立在对象存储之上的数据湖,特征工程流水线侧重于将原始数据转换成可以帮助机器学习算法更快、更准确地学习的机器学习特征。

特征工程一般分为两个阶段。在第一阶段,特征工程逻辑通常由数据科学家在开发阶段通过各种实验创建,以便找到最佳的特征集合,而数据工程师或机器学习工程师则负责特征工程流水线的生产,为模型训练和在生产环境中服务提供高质量的特征数据。

2. 特征存储

存储机器学习的特征数据,进行版本管理,用于发现、共享和重用,并为模型训练和服务提供一致的数据和机器学习特征,从而提高机器学习系统的可靠性。

面对机器学习的特征数据,特征存储是特征工程流水线创建的持久化存储方案。特性存储支持模型训练和服务。因此,它是一个非常重要的部分,是端到端机器学习系统架构的一个重要组件。

3.机器学习模型训练和再训练流水线

对于机器学习训练运行不同的参数和超参数,以一种简单和可配置的方式进行实验,并记录这些训练所运行的各种参数和模型性能指标。自动评估、验证、选择性能最好的模型并将其记录到机器学习模型库中。

4.训练与模型的元存储

存储并记录机器学习的运行,包括参数、指标、代码、配置结果和经过培训的模型,并提供模型的生命周期管理、模型注释、模型发现和模型重用等功能。

对于一个完整的机器学习系统来说,以工程、模型训练和模型服务为特征,可以从数据中生成大量的元数据。所有这些元数据对于了解系统如何工作非常有用,可以从数据-> 特征-> 模型-> 服务端来提供可跟踪性,并在模型停止工作时提供用于调试的有用信息。

5.机器学习模型服务流水线

为在生产环境中使用机器学习模型提供适当的基础设施,既考虑到全程服务,也要考虑延迟。

一般来说,有三种服务模式: 批量服务、流式服务和online服务。每种服务类型都需要完全不同的基础设施。此外,基础设施应该是容错和自动扩展的,以响应请求和吞吐量波动,特别是对于关键业务的机器学习系统。

6.监控生产中的 ML 模型

在生产环境中,在发现数据和模型漂移及异常时,提供数据收集、监控、分析、可视化和通知功能,并提供必要的信息协助系统调试。

7.机器学习流水线

与特定的机器学习工作流相比,机器学习流水线提供了一个可重用的框架,使数据科学家能够更快地开发和迭代,同时保持高质量的代码并减少生产时间。一些机器学习流水线框架还提供了编排和架构抽象的功能。

8.工作流编排

工作流编排是集成端到端机器学习系统的关键组件,协调和管理所有这些关键组件的依赖项。工作流编排工具还提供诸如日志记录、缓存、调试和重试等功能。

9.持续集成/持续培训/持续交付(CI/CT/CD)

持续测试和持续集成是指持续用新数据培训新模型,在需要时升级模型性能,并以安全、敏捷和自动化的方式持续为生产环境提供服务并部署模型。

10.针对数据和模型的端到端质量控制

在端到端机器学习工作流的各个阶段,需要嵌入可靠的数据质量检查、模型质量检查、数据和概念漂移检测,以确保机器学习系统本身是可靠且可信的。这些质量控制的检查包括描述统计学、整体数据形状、数据缺失、数据重复、几乎恒定的特征、统计测试、距离指标和模型预测质量,等等。

以上,可以称之为机器学习系统架构的10个要素。在我们的实践中,整个工作流应该保持大致相同,但可能需要对其中某些要素进行调整和定制。

如何对机器学习的系统架构进行调整呢?

如何在产品设计之初精简架构要素呢?

如何在引入机器学习系统系统时,保持原有系统架构的持续性呢? 

在这里,推荐《持续架构实践》一书, 书中给出了许多建设性的意见和参考方案,希望对大家有所帮助。

68784ebf8c917980e1c6b099536f700a.jpeg

【关联阅读】

  • 一文弄清混合云架构模式

  • 软件架构的10个质量属性

  • 端边云协同:从云到边缘

  • 浅析面向云架构的SLA

  • 面向数据架构的云演变

  • IoT云服务连接性的方式

  • 在传感器与云之间

  • 10行Python代码的词云

  • 理解一下混合云

  • 架构软件工程的未来(精要版)

  • 软件架构的10个常见模式

  • 回顾Bob大叔的简洁架构

  • 解读六边形架构

  • 老曹眼中的面向数据架构

  • 从应用架构看大数据

  • 架构大数据应用

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

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

相关文章

风力发电机组浪涌保护器安全防护方案

风机的庞大与危险高空作业注定了其在基建和维护中不易操作,风机设备的主电源、过程控制、网络与通讯、现场设备需要高等级的防雷浪涌保护器冲击保护,提高系统及设备的可靠性和可用性。风电场的主要发电设备风力发电机组“大风车”是风电场的主要发电设备…

【数据分析】缺失数据如何处理?pandas

本文目录1. 基础概念1.1. 缺失值分类1.2. 缺失值处理方法2. 缺失观测及其类型2.1. 了解缺失信息2.2. 三种缺失符号2.3. Nullable类型与NA符号2.4. NA的特性2.5. convert_dtypes方法3. 缺失数据的运算与分组 3.1. 加号与乘号规则3.2. groupby方法中的缺失值4. 填充与剔除4.1. fi…

什么是让ChatGPT爆火的大语言模型(LLM)

什么是让ChatGPT爆火的大语言模型(LLM) 更多精彩内容: https://www.nvidia.cn/gtc-global/?ncidref-dev-876561 文章目录什么是让ChatGPT爆火的大语言模型(LLM)大型语言模型有什么用?大型语言模型如何工作?大型语言模型的热门应用在哪里可以找到大型语言…

王道操作系统课代表 - 考研计算机 第一章 计算机概述 究极精华总结笔记

本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结。希望对新一届的计算机考研人提供帮助!!! 关于对 “计算机概述” 章节知识点总结的十分全面,涵括了《操作系统》课程里的全…

(五十七)插入数据时到底是如何维护好不同索引的B+树的?

之前我们已经给大家彻底分析清楚了MySQL数据库的索引结构了,大家都知道不同索引的结构是如何的,大致是如何建立的,然后搜索的时候是如何根据不同的索引去查找数据的。 那么今天我们来给大家彻底讲清楚,你在插入数据的时候&#x…

JavaSE学习笔记day17

零、 复习昨日 File: 通过路径代表一个文件或目录 方法: 创建型,查找类,判断类,其他 IO 输入& 输出字节&字符 try-catch代码 一、作业 给定路径删除该文件夹 public static void main(String[] args) {deleteDir(new File("E:\\A"));}// 删除文件夹public s…

openjdk:8镜像中安装工具命令的方法

文章目录前言一、获取openjdk:8环境1.下载并运行openjdk:82.获取当前镜像的基础环境信息3.更换源并安装软件二、更新Dockerfile1.增加命令2.尝试构建3.测试镜像是否可用总结前言 记录一下openjdk:8镜像安装命令的方法 同事使用openjdk:8作为基础镜像构建业务镜像,但…

蚂蚁CTO线五年测试开发,年后被优化,跟大家唠几句

夙兴夜寐,回顾从毕业出来到现在的这五年,也是在这里给大家抛砖引玉了。先简单交代一下背景吧,某不知名 985 的本硕,17 年毕业加入蚂蚁金服,以“人员优化”的名义无情被裁员,之后跳槽到了有赞,一…

软件测试的主要工作内容是什么

平时说起程序员印象中大都是做Java、做前端、做后端,用着非常晦涩难懂的语言。在电脑前哐哐哐,没一会满屏代码显现出来。然而程序员并不全是印象中这样,还有一部分:他们不常写代码,主要去检查代码,是不是出…

人工智能前置研究-神经元/离子通道

专栏目录: 高质量文章导航_GZVIMMY的博客-CSDN博客 前言: 《生命是什么》:来自有序中的有序,非周期性晶体!有机体内在生命及其外部世界的相互作用,都能被精确的定律所概述,但前提是它自身必须有一个巨大结构,分子数目太少的话,定律也就不准确了。 《神秘的量子生命…

基于RT-Thread完整版搭建的极简Bootloader

项目背景Agile Upgrade: 用于快速构建 bootloader 的中间件。example 文件夹提供 PC 上的示例特性适配 RT-Thread 官方固件打包工具 (图形化工具及命令行工具)使用纯 C 开发,不涉及任何硬件接口,可在任何形式的硬件上直接使用加密、压缩支持如下&#xf…

Python抓取数据具体流程

之前看了一段有关爬虫的网课深有启发,于是自己也尝试着如如何过去爬虫百科“python”词条等相关页面的整个过程记录下来,方便后期其他人一起来学习。 抓取策略 确定目标:重要的是先确定需要抓取的网站具体的那些部分,下面实例是…

MySQL Buffer Pool 详解

1. Buffer Pool 概述 Buffer Pool 到底是什么?从字面上看是缓存池的意思,没错,它其实也就是缓存池的意思。它是MySQL当中至关重要的一个组件,可以这么说,MySQL的所有的增删改的操作都是在 Buffer Pool 中执行的。 但…

90%的人都不算会爬虫,这才是真正的技术,从0到高手的进阶

很多人以为学会了urlib模块和xpath等几个解析库,学了Selenium就会算精通爬虫了,但到外面想靠爬虫技术接点私活,才发现寸步难行。 龙叔我做了近20年的程序员,今天就告诉你,真正的爬虫高手应该学哪些东西,就…

相向双指针 leetcode 15 16 18 611

简单介绍 与同向双指针区别就是&#xff0c;同向查找的是子串最明显得区别就是两侧进行搜索比较快 基本得模板如下 while(left < right) {if( ){}else if(){}else{ // left与right得遍历while(){}} }具体以题目为例 两数之和比较简单 不展示了 leetcode 15 三数之和 这个…

NOC·核桃编程马拉松复赛低年级组 A 卷真题

1. 舞台区如下所示,角色足球的初始坐标为(0,0)。等待下图程序运行完毕后,足 球的坐标是多少?( ) A(100,100) B(-100,100) C(100,-100) D(0,0) 2. 亮亮设计了一个“击落陨石”的游戏。点击开始按钮后,陨石会出现在舞台区的随机位置,碰到炸弹后就会消失…

webrtc处理视频丢包的机制

1.摘要WebRTC是一个开源的实时交互式音频和视频通信框架。本文讨论了WebRTC中用于处理视频通信路径中数据包丢失的一些机制。讨论了各种系统细节&#xff0c;提出了一种基于时间层的自适应混合NACK/FEC方法。结果显示了该方法如何控制实时视频通信的质量权衡2.介绍WebRTC[1]是一…

特征工程——Tabular Data Features multimodal features

一、前言 机器学习时期&#xff0c;要花费大量的时间在特征设计上&#xff0c;好的输入数据可以让训练事半功倍。而有了深度学习后&#xff0c;神经网络可以自动实现特征提取&#xff0c;解放了手工(理论上是这样&#xff0c;实际也是要进行特征筛选的&#xff0c;因为在应用中…

小程序容器技术在微服务架构中的应用

随着移动互联网的发展&#xff0c;小程序已经成为了一种非常流行的应用方式&#xff0c;它可以在不安装任何应用的情况下&#xff0c;直接在移动终端设备&#xff08;如&#xff1a;App&#xff0c;iPad等&#xff09;中运行。微服务架构则是一种的分布式系统架构&#xff0c;可…

Ubuntu16.04 源码安装nginx

nginx源码包&#xff1a;http://nginx.org/download/ 目录1.可联网设备直接通过apt-get安装2.不可联网设备通过安装包编译和移植2.1 首先选择一台可联网的设备2.2 将编译好的文件夹拷贝到目标设备上问题&#xff1a;nginx启动 nginx: [emerg] bind() to 0.0.0.0:80 failed (98:…