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

【ML on Kubernetes】第 1 章:机器学习的挑战

 🔎大家好,我是Sonhhxg_柒,希望你看完之后,能对你有所帮助,不足请指正!共同学习交流🔎

📝个人主页-Sonhhxg_柒的博客_CSDN博客 📃

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​

📣系列专栏 - 机器学习【ML】 自然语言处理【NLP】  深度学习【DL】

 🖍foreword

✔说明⇢本人讲解主要包括Python、机器学习(ML)、深度学习(DL)、自然语言处理(NLP)等内容。

如果你对这个系列感兴趣的话,可以关注订阅哟👋

文章目录

了解机器学习

提供机器学习价值

选择正确的方法

数据的重要性

面临采用 ML 的挑战

着眼于大局

打破孤岛

快速失败的文化

机器学习平台概述

概括

进一步阅读


许多人认为,人工智能AI ) 完全是关于人形机器人或接管人类的智能计算机程序的想法。令人震惊的消息是,我们甚至还没有接近这一点。这种令人难以置信的机器的更好术语是类人智能或通用人工智能AGI )。

那么,什么是人工智能?一个更直接的答案是使用数据和算法组合进行预测的系统。AI 从业者称之为机器学习ML。ML 算法的一个特定子集称为深度学习DL ),是指使用一系列计算步骤或层的 ML 算法(Goodfellow、Bengio 和 Courville,2017 年)。该技术采用深度神经网络DNNs) 具有模仿人脑结构的多层人工神经元。尽管听起来很复杂,但这并不总是意味着所有 DL 系统与其他 AI 算法甚至传统编程方法相比都会具有更好的性能。

ML 并不总是关于 DL。有时,基本统计模型可能比复杂的 DNN 更适合您尝试解决的问题。实施 ML 的挑战之一是选择正确的方法。此外,交付 ML 项目还会带来其他挑战,不仅在业务和技术方面,而且在人员和流程方面。这些挑战是大多数机器学习计划未能实现其预期价值的主要原因。

在本章中,我们将重新审视对 ML 的基本理解,并了解交付 ML 项目可能导致项目无法实现其承诺价值的挑战。

将涵盖以下主题:

  • 了解机器学习
  • 提供机器学习价值
  • 选择正确的方法
  • 面临采用 ML 的挑战
  • 机器学习平台概述

了解机器学习

在传统计算机编程,人类程序员必须编写一组清晰的指令,以便计算机程序执行操作或提供问题的答案。然而,在 ML 中,人类(通常是 ML 工程师或数据科学家)使用数据和算法来确定模型的最佳参数集,以产生可用的答案或预测。虽然传统计算机程序使用精确逻辑(/正确/错误)提供答案,但机器学习算法涉及模糊性(/可能/80% 确定不确定我不知道等)。

换句话说,ML 是一种通过使用数据以及算法、统计模型或神经网络来推断或预测问题的期望答案来解决问题的技术。我们没有明确地编写如何解决问题的说明,而是使用一堆示例,让算法找出解决问题的最佳方法(最佳参数集)。当不可能或极难编写一组指令来解决问题时,ML 很有用。ML大放异彩的典型示例问题计算机视觉CV)。尽管任何普通人都可以轻松识别猫,但手动编写代码来识别给定图像是否是猫是不可能或极其困难的。如果您是程序员,请尝试考虑如何在没有 ML 的情况下编写此代码。这是一个很好的心理锻炼。

下图说明了 DL 和 ML 在 AI 方面的位置:

图 1.1 – AI、ML 和 DL 之间的关系

人工智能是一个涵盖任何可以取代人类的基本、基于规则的代理系统的广泛主题运算符、ML 和 DL。但是机器学习单独是另一个广泛的主题。它涵盖了几种算法,从基本的线性回归到非常深度卷积神经网络CNN )。在传统编程,无论我们使用哪种语言或框架,开发和构建应用程序的过程都是相同的。相比之下,ML 有各种各样的算法,有时,它们需要完全不同的方法来利用和构建模型。例如,生成对抗网络GAN),它是一种用于许多用于生成假人脸的创造性 ML 模型的训练方式与基本决策树模型不同。

由于 ML 项目的性质,软件工程中的一些实践可能并不总是适用于 ML,并且必须发明一些传统编程中不存在的实践、流程和工具。

提供机器学习价值

有许多关于 ML 及其相关主题的书籍、视频和讲座。在本书中,我们将介绍一种更具适应性的方法,并展示开源软件OSS ) 如何能够为您和您的组织从 AI 革命中受益提供基础。

在后面的章节中,我们将通过在 Kubernetes 上部署和使用开源工具链来解决实施 ML 项目背后的挑战。在本书的最后,我们将构建一个可重用的 ML 平台,该平台提供的基本功能将有助于交付一个成功的 ML 项目。

在深入研究软件之前,我们必须具备基础知识,并且必须了解通过 ML 计划成功交付业务价值所需的实际步骤。有了这些知识,我们将能够解决实施 ML 平台的一些挑战,并确定它们将如何帮助实现我们的 ML 项目的预期价值。这些承诺的价值没有实现的主要原因是它们没有投入生产。例如,假设您构建了一个出色的 ML 模型来预测世界杯足球赛的结果,但在锦标赛期间没有人可以使用它。结果,即使该模型成功,它也未能实现其预期的商业价值。大多数组织的 AI 和 ML 计划处于同一状态。这数据科学或 ML 工程团队可能已经构建了一个完美运行的 ML 模型,该模型可以帮助组织的业务和/或其客户;但是,这些模型通常不会部署到生产环境中。那么,团队面临哪些阻碍他们将 ML 模型投入生产的挑战呢?

选择正确的方法

决定将 ML 用于给定项目,首先了解问题并评估是否可以通过 ML 解决。花足够的时间与合适的利益相关者合作,看看他们的期望是什么。有些问题可能更适合传统方法,例如当您为给定系统预定义业务规则时。编写规则比训练模型更快、更容易,而且您不需要大量数据。

在决定是否使用 ML 时,您可以考虑基于模式的结果是否适用于您的问题。如果您正在构建一个系统,该系统从航空公司的常旅客数据库中读取数据以查找您想要向其发送促销活动的客户,那么基于规则的系统也可能会为您提供良好且可接受的结果。基于 ML 的系统可能会在某些情况下为您提供更好的匹配,但是花在构建这个系统上的时间值得吗?

数据的重要性

ML 模型的效率取决于数据的质量和准确性,但不幸的是,数据收集和处理活动没有得到应有的关注,这在项目的后期阶段证明成本很高,因为模型不够适合给定的任务。

“每个人都想做模型工作,而不是数据工作。”

– 高风险 AI 中的数据级联,Sambasivan 等人。(见延伸阅读部分)

这里引用的论文讨论了这一挑战。论文中引用的一个有趣的例子是一个团队构建了一个模型来检测患者扫描中的特定模式,该模型与测试数据非常配合。然而,该模型在生产中失败了,因为输入到模型上的扫描包含微小的灰尘颗粒,导致模型性能不佳。这个例子是一个团队专注于模型构建而不是如何在现实世界中使用的经典案例。

一样东西团队应该关注的是数据验证和清理。很多时候,数据经常丢失或不正确——例如,数字列中的字符串字段、同一字段中的不同日期格式或相同的标识符ID )如果记录来自不同的系统,则不同的记录。所有这些数据异常都可能导致模型效率低下,从而导致性能下降。

一旦你经历了这个过程并做出决定,是的,ML 是要走的路……下一步是什么?

面临采用 ML 的挑战

组织渴望采用机器学习来推动他们的业务增长。在许多项目中,团队过于专注于技术才华,而没有提供 ML 计划所期望的业务价值。这可能会导致早期故障,从而可能导致未来项目的投资减少。这是企业在使 ML 在业务的所有各个部分成为主流时面临的两个主要挑战,如下所述:

  • 保持对大局的关注
  • 孤立的团队

着眼于大局

首先组织面临的挑战是建立一个生态系统,让 ML 模型为业务创造价值。具有挑战性的部分是团队通常不会专注于项目的所有方面,而是只专注于特定领域,从而导致业务价值低下。

我们知道有多少组织在他们的机器学习之旅中取得了成功?除了世界上的谷歌、Metas(以前的 Facebook)和 Netflix,几乎没有成功案例。第一个原因是团队专注于构建模型。所以呢算法之外还有吗?谷歌发表了一篇关于机器学习项目中隐藏的技术债务的论文(参见本章末尾的进一步阅读部分),它很好地总结了我们需要考虑成功的事情。

看看下面的图表:

图 1.2 – 机器学习系统的组件

你能看到图 1.2中的小方块吗?图片中标注为ML的块是 ML 模型开发部分,您可以看到 ML 项目涉及的过程更多。让我们了解其中的几个,如下:

数据分析线索更好地理解数据,但特征提取另一件事。这是一个通过实验识别一组影响模型输出准确性的数据属性并识别哪些属性被认为不相关或被认为是噪声的过程。例如,在对银行交易是否欺诈进行分类的 ML 模型中,账户持有人的姓名被认为是无关紧要的或噪音,而交易金额可能是一个重要特征。此过程的输出是数据集的转换版本,其中仅包含相关特征,并被格式化以在 ML 模型训练过程或适应度函数中使用。这有时被称为一个功能集。团队需要一种工具来执行此类分析并将数据转换为可用于模型训练的格式。数据采集​​、特征提取和分析也统称为特征工程FE)。

总之,您将需要一个能够为以下所有构建块提供解决方案组件的生态系统。这个单一平台将通过团队内部一致的经验来提高团队的速度,以满足 ML 系统的所有需求:

  • 获取、存储和处理数据
  • 训练、调整和跟踪模型
  • 部署和监控模型
  • 自动化重复性任务,例如数据处理和模型部署

但是我们如何才能让不同的团队协作并使用一个通用的平台来完成他们的任务呢?

打破孤岛

至完成一个 ML 项目,您需要有一个包含各种角色的团队。然而,由于角色不同,沟通、团队动态和相互冲突的优先级都面临挑战。在企业中,这些角色往往属于不同的团队在不同的业务部门BUs )。

ML 项目需要各种团队和角色才能成功。以下屏幕截图显示了完成一个简单的 ML 项目所需的一些角色和职责:

图 1.3 – 机器学习项目中涉及的孤岛

让我们在这里更详细地了解这些角色:

当然,即使构建块到位,您也不太可能在第一次尝试时成功。

快速失败的文化

建立一个跨职能团队是不够的。确保团队有权做出自己的决定,并且可以轻松地尝试不同的方法。数据和 ML 领域正在快速发展,团队可能会根据给定的成功标准选择采用最新的技术或流程,或者放弃现有的技术或流程。

组建一个对工作充满热情的人的团队,当你给他们自主权时,你会得到最好的结果。使您的团队能够快速适应变化并为您的业务创造价值。建立一个迭代和快速的反馈周期,团队可以在其中收到关于迄今为止已交付的工作的反馈。快速的反馈循环将更多地专注于解决业务问题。

然而,这种方法也带来了自己的挑战。采用现代技术可能既困难又耗时。想想亚马逊市场:如果您想销售一些新的热门产品,通过使用亚马逊市场,您可以更快地将您的产品推向市场,因为市场负责销售所需的大量活动部件。您将在本书中学习的 ML 平台通过为您的团队提供基本的通用服务和沙箱环境来快速试验,使您能够轻松地试验现代方法和现代技术。

属于不同组的团队组成一个跨职能和自治的团队对于项目的成功至关重要。这个新团队将在没有内部摩擦的情况下以更高的速度移动,并避免繁琐的流程和延误。跨职能团队至关重要有权推动自己的决策并得到自助服务平台的支持,因此它可以以独立的方式工作。您将在本书中看到的 ML 平台将为团队可以协作和共享的一个此类平台提供基础。

现在,让我们看看什么样的平台可以帮助您解决我们讨论过的挑战。

机器学习平台概述

在本节中,我们将讨论您需要考虑的 ML 平台的功能。目的是让您了解可以为您的团队构建生态系统以帮助您完成 ML 之旅的基本构建块。可以将 ML 平台视为一组组件,有助于更快地开发和部署 ML 模型和数据管道。

主要有三个特点一个 ML 平台,如下所述:

下图显示了各种组件为不同角色提供服务的 ML 平台,允许他们在一个通用平台上进行协作:

图 1.4 – 角色及其与平台的交互

除了图 1.4 所示的特性外,平台还必须具备以下特性:技术能力:

已经有一些平台产品具有您刚刚了解的大部分(如果不是全部)功能。你将在本书后面的章节中学到的是如何在 Kubernetes 之上基于 OSS 构建一个这样的平台。

概括

尽管 ML 并不是什么新鲜事物,但最近在相对便宜的计算能力方面取得的进步已经让许多公司开始投资它。硬件的这种广泛可用性带来了其自身的挑战。通常,团队不会将重点放在大局上,这可能会导致 ML 计划无法实现他们承诺的价值。

在本章中,我们讨论了企业在机器学习之旅中面临的两个常见挑战。挑战从技术采用到团队以及他们如何协作。在您的 ML 之旅中取得成功需要时间、精力和实践。期望它不仅仅是技术变革。这将需要改变和改进您协作和使用技术的方式。让您的团队自主并为适应变化做好准备,营造快速失败的文化,投资于技术,并时刻关注业务成果。

我们还讨论了 E2E ML 平台的一些重要属性。我们将在本书的后面部分深入讨论这个话题。

在下一章中,我们将介绍 ML 项目中的一个新兴概念,即ML 操作MLOps )。通过这一点,业界正试图将软件工程实践的好处带到 ML 项目中。让我们深入挖掘。

进一步阅读

如果您想了解有关机器学习挑战的更多信息,您可能也会对以下文章感兴趣。

  • 机器学习中隐藏的技术债务Sculley 等人。, 2015: https://papers.nips.cc/paper/5656-hidden-technical-debt-in-machine-learning-systems.pdf
  • 高风险 AI 中的数据级联Sambasivan 等人。, 2021: https://storage.googleapis.com/pub-tools-public-publication-data/pdf/0d556e45afc54afeb2eb6b51a9bc1827b9961ff4.pdf

相关文章:

  • Ubuntu20.04安装 nginx1.23.1
  • 深度学习基础:循环神经网络中的Dropout
  • ShardingSphere-JDBC快速入门
  • 智慧安防视频监控EasyCVR视频汇聚平台无法自动播放视频的原因排查与解决
  • 复杂算子onnx导出(3): 将sparseconv导出onnx
  • 软件项目经理需要具备这 11 个能力
  • C语言从入门到实战——预处理详解
  • LiveGBS流媒体平台GB/T28181功能-查看国标设备下通道会话列表直播|回放|对讲|播放|录像|级联UDP|TCP|H264|H265会话
  • 【Linux】进程信号 --- 信号的产生 保存 捕捉递达
  • 2024智慧城市革命:人工智能、场景与运营的融合之力
  • 牛客前端八股文(每日更新)
  • SQL注入漏洞解析--less-7
  • 技巧分享-电脑版微信如何登录多个账号
  • 精品微信小程序springboot居家养老服务+后台管理前后分离
  • GBase 8c 系统表之DB4AI.SNAPSHOT
  • 高频故障-文件扩展名消失(windows)
  • 冲突域与广播域(详解 + 区别)
  • 国庆征文获奖名单公布
  • java毕业设计大学生创新创业项目管理Mybatis+系统+数据库+调试部署
  • Mysql在可重复读事务隔离级别下怎么解决幻读的
  • 【数据结构Java版】链表之单链表的实现
  • C++的RAII思想以及在智能指针上的应用
  • #include <iostream> 和#include <iostream.h>
  • 【硬件开源电路】STM32G070RBT6开发板
  • 登录页面案例
  • Hudi源码|bootstrap源码分析总结(写Hudi)
  • JavaEE——网络通信基础
  • Odoo | 页面视图的跳转逻辑
  • tf.name_scope
  • 【让你从0到1学会c语言】程序环境和预处理指令
  • 什么是CMMI能力成熟度模型?企业为什么要做?
  • 嵌入式 Linux 入门(十、Linux 下的 C 编程)