AI程序三个支柱:什么是 MLOps?DataOps?为什么它们很重要?

借助构成AI应用程序的三个不同支柱,出现了三个不同的学科,以使每个支柱尽可能高效地运行:DataOps、MLOps 和 DevOps。

AI程序三个支柱:什么是 MLOps?DataOps?为什么它们很重要?

让我们看看三个不同的学科——DevOps、MLOps 和 DataOps。 2011 年,马克·安德森 (Marc Andreessen) 著名地宣称软件正在“吞噬世界”。十多年后,几乎不可能与他的预感争论,因为软件已经嵌入到几乎每个行业。

但现在另一个转变正在进行中,人工智能正在吞噬我们所知道的软件。我们的电子邮件可以为我们完成我们的句子,联网汽车帮助我们在路上保持安全,预测技术帮助最大限度地减少 COVID-19 造成的供应链中断。在不久的将来,我们与之交互的几乎每一个软件都将内置智能,随着人工智能的接受和新用例的推出,应用程序只会继续变得更加智能。向支持 ML 的软件的广泛发展有可能像 Andreessen 预测的那样具有变革性和深远意义。

但创新不是那么容易或者简单——智能应用也不例外。虽然传统软件只涉及一件事——代码——没有其他东西,但智能软件依赖于三个相互关联变量的复杂关系。

三个方面:DevOps、MLOps 和 DataOps

Model:一个或多个 AI/ML 模型(例如,线性回归、规则、深度神经网络等)经过训练以识别数据中的模式并做出决策,是使应用程序“智能”的原因。

Data:大多数情况下,模型会根据历史数据进行训练并通过编程来模拟它。因此,应用程序的行为在很大程度上取决于数据——原始输入数据、标签和特征,以及应用模型的新数据和这些数据的真实数据。

Code:代码是应用程序用来运行的语言。在智能应用程序的上下文中使用时,代码是业务逻辑的一种反应、对模型的调用、接收输出、作出决策和对其他数据系统的调用。

一个真实的例子

要了解AI如何在现实生活中发挥作用,请考虑自动驾驶汽车感知系统的示例。此类系统使用数据(由离线源和实时摄像头和传感器提供)、模型和代码来确定无数不断变化的变量(例如,道路上是否有障碍物、车道标记的样子、汽车的速度)可以安全旅行等)虽然下图被大大简化,但它概述了构建和部署此类系统所需的基本步骤,并指出每个步骤属于哪个支柱。

‌                                                              Upload

无论应用程序类型如何,智能应用程序的立足点始终相同:模型、数据和代码。而且,如果您尝试删除其中任何一个,应用程序就会崩溃。

‌                                                              Upload

借助构成智能应用程序的三个不同支柱,出现了三个不同的学科,以使每个支柱尽可能高效地运行:DataOps、MLOps 和 DevOps。这篇文章的其余部分将检查使每个学科在模型生命周期中与众不同和必要的细节。

‌                                                              Upload

DevOps

曾几何时,公司使用瀑布流程来开发软件。这个过程往往进展得如此缓慢,以至于产品在死亡或被替换之前没有意识到它们的潜力。 2000 年,引入了敏捷,使开发人员能够在他们不断交付的紧凑 sprint 中快速迭代地工作。例如,到 2009 年,Flickr 成为业界羡慕的对象,每天执行 10 次以上的部署。寻求提高自身生产力的公司将软件开发与既定的运营原则相结合,并创造了“DevOps”一词。

正如下面熟悉的循环图所示,DevOps 周期从规划阶段到创建、测试/验证、打包、发布、配置、监控,然后重新开始规划。在过去的二十年中,出现了许多独特的工具来支持 DevOps 生命周期中的各个步骤——通过从一开始就构建持续集成和持续测试来帮助开发人员确保质量,并通过工作流自动化帮助加快上市时间。DevOps 生态系统是强大的、经过深思熟虑的并且总是在迭代改进。

MLOps

MLOps 帮助团队在模型生命周期中更快速、更有效地移动——一个涉及六个不同步骤的循环,每个步骤都包含独特的考虑因素。

‌                                                              Upload

由于 MLOps 与 DevOps 相关,企业有时会尝试调整用于编写传统软件的流程来执行机器学习操作化的不熟悉任务。但这种方法行不通,因为这两个学科实际上完全不同。

MLOps 主要处理模型,而不是代码——模型与代码完全不同。例如,模型训练和测试看起来与代码构建和测试非常不同。 (“测试用例”对模型意味着什么?)监控模型性能与监控传统软件完全不同。 (DevOps 着眼于 CPU 利用率、延迟和吞吐量,而 MLOps 着眼于模型质量、漂移和数据质量。)

此外,MLOps 工程师为其构建的人与他们的 DevOps 同行完全不同。正如人们所预料的那样,模型的主要用户是数据科学家,而 DevOps 通常为软件开发人员服务。大多数情况下,MLOps 工程师具有 ML 和数据科学背景或学习 ML 的软件工程师。

与 DevOps 一样,不存在单一的包罗万象的 MLOps 平台。相反,不同的工具支持模型生命周期中不同的单个步骤,并提供一定数量的工作流自动化来加速流程。不同的工具支持 ML 生命周期的特定部分——但生态系统仍然有些分散。理想情况下,MLOps 将发展为提供更多类似 DevOps 的工具,这些工具可以很好地协同工作并提供更多自动化。对于希望构建 MLOps 平台的公司,构建一套考虑到速度、安全性和自动化的支持工具。

DataOps

我们已经看到上面讨论的其他两个支柱的生命周期非常明确;但是,对于 DataOps,生命周期仍在定义中。但 DataOps 的总体目标听起来应该很熟悉:DataOps 涉及频繁发送高质量数据的流程和工具——这需要数据工程、数据质量、数据安全和数据集成的结合。

‌                                                              Upload

与 DevOps 和 MLOps 一样,DataOps 平台或 DataOps 工程师正在做的是支持有助于执行其中一项活动并帮助构建工作流的工具。例如,工作流可以从数据库中获取数据,对其进行一些转换,然后使其可用于商业智能 (BI) 工具。这就是 DataOps 所涉及的自动化。

正如您可能想象的那样,DataOps 所需的技能和工具与 MLOps 和 DevOps 所需的技能和工具有很大不同——因此期望 DevOps 工程师同时成为 DataOps 专家似乎有点不切实际。虽然 MLOps 需要比 DevOps 历史上需要更紧密的数据集成,但 MLOps 与 DataOps 不同。与支持智能应用程序的其他支柱相比,DataOps 往往非常独立和独特。

结论

从感知系统到企业级金融科技软件,每个智能应用程序都依赖于三个不同的学科:DevOps、MLOps 和 DataOps。这就是开发智能产品的复杂性。这些领域中的每一个都是不同的,在 ML 生命周期中处理一组不同的问题和目标,并且需要不同类型的人员和工具。然而,它们都被一个共同的目标从根本上结合在一起:优化 ML 生命周期的迭代质量和速度。将上升到顶端工具、实践和组织将使不同的 ML 团队之间实现更无缝的协作,帮助他们快速有效地完成 ML 生命周期。