【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 项目涉及的过程更多。让我们了解其中的几个,如下:

  • 数据收集和数据验证:为了有一个可靠和值得信赖的模型,我们需要一个很好的数据集。机器学习就是寻找模式在数据中并使用这些模式预测看不见的数据结果。因此,数据质量越好,模型的性能就越好。然而,数据有各种形状和大小。其中一些可能驻留在文件中,一些可能驻留在专有数据库中;数据集可能来自数据流,并且可能需要收集一些数据来自物联网IoT ) 设备。最重要的是,数据可能由具有不同安全和监管要求的不同团队拥有。因此,您需要考虑允许您收集、转换和处理来自各种来源和各种格式的数据的技术。
  • 特征提取和分析:通常,关于数据质量和完整性的假设是不正确的。数据科学团队执行一项称为探索性数据分析EDA ) 的活动,其中他们尽可能快地从各种来源读取和处理数据。团队在投入时间大规模处理数据并进入模型构建阶段之前,会进一步提高对数据的理解。想想您的团队或组织如何促进数据探索以加快您的机器学习之旅。

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

  • 基础设施、监控和资源管理:您需要计算机过程探索数据、构建和训练模型,以及部署 ML 模型以供使用。所有这些活动都需要以尽可能低的成本进行处理能力和存储容量。考虑一下您的团队将如何以自助方式按需访问硬件资源。您需要计划数据科学家和工程师如何将会能够请求所需的资源最快的方式。同时,您仍然需要能够遵守组织的政策和程序。您还需要系统监控以优化资源利用率并提高 ML 平台的可操作性。
  • 模型开发:一旦您以可消费特征的形式获得数据,您就可以需要建立你的模型。模型构建需要使用不同算法和不同参数进行多次迭代。考虑如何跟踪不同实验的结果以及存储模型的位置。通常,不同的团队可以重用彼此的工作以进一步提高团队的速度。想想团队如何分享他们的发现。团队必须有一个工具来促进模型训练和实验运行、记录模型性能和实验元数据、存储模型以及管理模型的标记和提升到可接受和可部署的状态。
  • 流程管理:如您所见,要创建一个有用的模型需要做很多事情。考虑自动化模型部署的过程和监控过程。不同的角色将从事不同的事情,例如数据任务、模型任务、基础设施任务等等。团队需要协作和共享以实现特定的结果。现实世界不断变化:一旦您的模型部署到生产环境中,您可能需要定期使用新数据重新训练您的模型。所有这些活动都需要明确定义的流程和自动化阶段,以便团队可以继续从事高价值任务。

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

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

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

打破孤岛

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

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

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

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

  • 数据科学家:这个角色是最了解的。这个角色或团队负责探索数据并运行实验迭代以确定哪种算法适合给定问题。
  • 数据工程师这个角色的角色或团队是负责从各种来源获取数据、清理数据并使其对数据科学团队有用。
  • 开发人员和运营:一次模型建立了,这个团队是负责获取模型并将其部署以供使用。这运营团队负责确保计算机和存储可供其他团队执行数据处理、模型生命周期操作和模型推理。
  • 一位业务主题专家 (SME):尽管数据科学家构建了ML模型,理解数据和业务领域对于构建正确的模型至关重要。想象一下,一位数据科学家正在构建一个模型来预测 COVID-19,而无需了解不同的参数。在进入模型构建阶段之前,需要一名 SME(在这种情况下是一名医生)协助数据科学家理解数据。

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

快速失败的文化

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

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

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

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

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

机器学习平台概述

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

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

  • 完整的生态系统:平台应提供端到端E2E ) 解决方案,包括数据生命周期管理、ML 生命周期管理、应用程序生命周期管理和可观察性。
  • 建立在开放标准上:平台应该提供一种扩展和构建现有基线的方法。由于该领域发展迅速,因此您可以进一步增强、定制和优化平台以满足您的特定需求,这一点至关重要。
  • 自助服务:平台应该能够自动和按需提供团队所需的资源,从硬件请求到在生产中部署软件。平台基于企业资源自动调配作业完成后控制和恢复它们。资源可以是中央处理器CPU )、内存或磁盘,也可以是集成开发环境IDE ) 等软件,编写代码或这些的组合。

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

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

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

  • 工作流程自动化平台应该具有某种形式的工作流自动化能力,数据工程师可以创建执行重复任务的工作,例如数据摄取和准备,数据科学家可以协调模型训练和自动化模型部署。
  • 安全:平台必须加以保护,以防止可能对业务产生负面影响的数据泄漏和数据丢失。
  • 可观察性:我们不想运行没有可观察性的应用程序,无论是传统应用程序或 ML 模型。在没有可观察性的情况下在生产中部署应用程序就像蒙着眼睛骑自行车一样。该平台应具有良好的可观察性,您可以近乎实时地监控整个系统或子系统的运行状况和性能。这还应该包括警报功能。
  • 记录:记录在理解系统开始以意外方式运行时发生的情况方面发挥着关键作用。该平台必须具有可靠的日志记录机制,以允许运营团队更好地支持 ML 项目。
  • 数据处理和流水线:因为 ML 项目依赖大量数据,平台必须包括可水平扩展的可靠的全功能数据处理和数据流水线解决方案。
  • 模型打包和部署:并非所有数据科学家都是经验丰富的软件工程师。虽然一些可能有编写应用程序的经验,但假设所有数据科学家都可以编写生产级应用程序并将其部署到生产环境中是不安全的。因此,平台必须能够自动将 ML 模型打包到应用程序中并为其提供服务。
  • 机器学习生命周期平台还必须能够管理 ML 实验、跟踪性能、存储训练和实验元数据和功能集以及版本控制模型。这不仅可以让数据科学家高效地工作,还可以让他们协同工作。
  • 按需资源分配:一ML 平台应具备的重要功能是允许数据科学家和数据工程师自动按需配置他们自己的运行时资源的能力。这消除了无需手动申请资源并消除浪费在等待和移交上的时间运营团队。该平台必须允许平台用户创建自己的环境并分配他们完成工作所需的适量计算资源。

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

概括

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

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

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

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

进一步阅读

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

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sonhhxg_柒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值