MLOps:机器学习世界中的 DevOps

2018年,MLOps的概念出现在专业界和人工智能专题会议上,并迅速在业界占据主导地位,目前正在作为一个独立的方向发展。 未来,MLOps可能会成为IT领域最热门的领域之一。 它是什么以及和什么一起吃呢?下面我们就来了解一下。

MLOps:机器学习世界中的 DevOps

什么是 MLOps

MLOps(将机器学习技术和流程以及将开发的模型实施到业务流程中的方法相结合)是业务代表、科学家、数学家、机器学习专家和 IT 工程师在创建人工智能系统时的一种新协作方式。

换句话说,它是将机器学习方法和技术转变为解决业务问题的有用工具的一种方式。 

有必要了解生产力链早在模型开发之前就开始了。 其第一步是定义业务问题、关于可以从数据中提取的价值的假设以及应用它的业务理念。 

MLOps 的概念是与机器学习模型和技术相关的 DevOps 概念的类比。 DevOps 是一种软件开发方法,允许您提高单个变更的实施速度,同时使用多种方法保持灵活性和可靠性,包括持续开发、将功能划分为多个独立的微服务、自动化测试和部署单个变更变化、全球健康状况监控、检测到的故障的快速响应系统等。 

DevOps 定义了软件生命周期,社区提出了将相同方法应用于大数据的想法。 DataOps 是一种尝试,考虑到在多样化和可互操作的平台中存储、传输和处理大量数据的特点,对方法进行调整和扩展。
  
随着在企业业务流程中实施的机器学习模型达到一定临界量,人们注意到数学机器学习模型的生命周期与软件生命周期之间存在很强的相似性。 唯一的区别是模型算法是使用机器学习工具和方法创建的。 因此,自然而然地出现了应用和调整已知的机器学习模型软件开发方法的想法。 因此,机器学习模型的生命周期可以分为以下关键阶段:

  • 定义经营理念;
  • 模型训练;
  • 将模型测试并实施到业务流程中;
  • 模型的运行。

当在操作过程中需要根据新数据更改或重新训练模型时,循环会再次开始 - 模型被细化、测试,并部署新版本。

撤退。 为什么要再培训而不是再培训? “模型再训练”一词有双重含义:在专家看来,它意味着模型缺陷,当模型预测良好时,实际上在训练集上重复了预测参数,但在外部数据样本上表现却差很多。 当然,这样的模型是一个缺陷,因为这个缺陷不允许它使用。

在这个生命周期中,使用 DevOps 工具似乎是合乎逻辑的:自动化测试、部署和监控,以单独的微服务的形式设计模型计算。 但也有许多功能阻止在没有额外 ML 绑定的情况下直接使用这些工具。

MLOps:机器学习世界中的 DevOps

如何使模型发挥作用并盈利

作为演示 MLOps 方法使用的示例,我们将采用机器人化银行(或任何其他)产品的聊天支持的经典任务。 通常,聊天支持业务流程如下所示:客户在聊天中输入带有问题的消息,并在预定义的对话树中接收来自专家的响应。 自动化此类聊天的任务通常是使用专家定义的规则集来解决的,而这些规则的开发和维护非常耗费人力。 根据任务的复杂程度,这种自动化的效率可以达到 20-30%。 自然而然地,人们就会想到实施人工智能模块(一种使用机器学习开发的模型)会更有利可图,该模块:

  • 能够在没有操作员参与的情况下处理大量请求(根据主题,在某些情况下效率可以达到70-80%);
  • 更好地适应对话中的非标准措辞——能够根据不明确的请求确定用户的意图和真正的愿望;
  • 知道如何确定何时模型的答案是充分的,以及何时对该答案的“认知度”有疑问并且您需要提出额外的澄清问题或转向操作员;
  • 可以进行额外的自动训练(该模型不是由一组开发人员不断调整和纠正响应脚本,而是由数据科学专家使用适当的机器学习库进行额外的训练)。 

MLOps:机器学习世界中的 DevOps

如何让如此先进的模型发挥作用? 

与解决任何其他问题一样,在开发此类模块之前,有必要定义业务流程并正式描述我们将使用机器学习方法解决的具体任务。 此时,操作化过程(由缩写 Ops 表示)开始。 

下一步是数据科学家与数据工程师合作,检查数据的可用性和充分性以及有关业务理念可行性的业务假设,开发原型模型并测试其实际有效性。 只有经过业务确认后,才能开始从开发模型到将其集成到执行特定业务流程的系统中的过渡。 端到端的实施规划,即对每个阶段如何使用模型以及它将带来什么经济效果的深入了解,是将 MLOps 方法引入公司技术环境的过程中的一个基本点。

随着人工智能技术的发展,机器学习可以解决的问题的数量和种类呈指数级增长。 由于大量员工的劳动自动化(呼叫中心、检查和整理文档等),每个此类业务流程都为公司节省了开支,通过添加新的有吸引力且方便的功能来扩展客户群,它由于优化使用和重新分配资源等而节省资金。 最终,任何流程都以创造价值为重点,因此必须带来一定的经济效应。 在这里,明确制定经营理念并计算在公司整体价值创造结构中实施该模型的预期利润非常重要。 在某些情况下,实施模型并不能证明其合理性,并且机器学习专家花费的时间比执行此任务的操作员的工作场所要昂贵得多。 这就是为什么有必要在创建人工智能系统的早期阶段尝试识别此类情况。

因此,只有在 MLOps 流程中正确表述业务问题、设定优先级,并在开发早期制定将模型引入系统的流程时,模型才开始产生利润。

新流程-新挑战

为了全面回答有关 ML 模型如何适用于解决问题的基本业务问题,人工智能的信任问题是开发和实施 MLOps 方法过程中的关键挑战之一。 最初,企业对将机器学习引入流程持怀疑态度——在以前人们工作的地方很难依赖模型。 对于商业来说,程序就像一个“黑匣子”,答案的相关性仍需要证明。 此外,在银行业、电信运营商等业务中,都有政府监管机构的严格要求。 银行流程中实施的所有系统和算法均需接受审计。 为了解决这个问题,向企业和监管机构证明人工智能响应的有效性和正确性,监控工具与模型一起被引入。 此外,还有一个独立的验证程序,对于监管模型是强制性的,符合央行的要求。 独立专家组会根据输入数据审核模型获得的结果。

第二个挑战是在实施机器学习模型时评估并考虑模型风险。 即使一个人不能百分百确定地回答同一件衣服是白色还是蓝色的问题,那么人工智能也有犯错误的权利。 还值得考虑的是,数据可能会随着时间的推移而变化,并且需要重新训练模型才能产生足够准确的结果。 为了确保业务流程不会受到影响,有必要管理模型风险并监控模型的性能,定期使用新数据对其进行重新训练。

MLOps:机器学习世界中的 DevOps

但在第一阶段的不信任之后,相反的效果开始出现。 在流程中成功实施的模型越多,企业对人工智能使用的兴趣就越大——不断发现可以使用机器学习方法解决的新问题。 每个任务都会触发一个需要特定能力的整个流程:

  • 数据工程师准备和处理数据;
  • 数据科学家使用机器学习工具并开发模型;
  • IT将模型实施到系统中;
  • ML 工程师根据模型应用模式的要求,考虑请求流、响应时间等,确定如何正确地将模型集成到流程中、使用哪些 IT 工具。 
  • 机器学习架构师设计如何在工业系统中物理实现软件产品。

整个周期需要大量高素质的专家。 在机器学习模型的开发和渗透到业务流程中的某个阶段,事实证明,与任务数量的增加成比例地线性扩展专家的数量变得昂贵且无效。 因此,出现了自动化 MLOps 流程的问题 - 定义机器学习问题的几个标准类别、开发标准数据处理管道和额外的模型训练。 在理想情况下,解决此类问题需要同样精通大数据、数据科学、DevOps 和 IT 交叉能力的专业人员。 因此,数据科学行业最大的问题和组织 MLOps 流程的最大挑战是现有培训市场缺乏这种能力。 目前,满足这些要求的专家在劳动力市场上很少见,而且价值不菲。

关于能力问题

理论上,所有 MLOps 任务都可以使用经典的 DevOps 工具来解决,而无需诉诸角色模型的专门扩展。 然后,正如我们上面提到的,数据科学家不仅必须是数学家和数据分析师,而且是整个管道的大师——他负责开发架构,根据架构用多种语言编程模型,准备数据集市并部署应用程序本身。 然而,创建端到端 MLOps 流程中实施的技术框架需要花费高达 80% 的劳动力成本,这意味着一名合格的数学家(即优质数据科学家)只会将 20% 的时间投入到自己的专业上。 因此,界定参与实施机器学习模型过程的专家的角色变得至关重要。 

角色划分的详细程度取决于企业的规模。 当一家初创公司拥有一位专家、一位能源储备方面的勤奋工作者、他自己的工程师、架构师和 DevOps 时,这是一回事。 当在大型企业中,所有模型开发流程都集中在少数高级数据科学专家身上时,情况就完全不同了,而程序员或数据库专家(劳动力市场上更常见且更便宜的能力)可以承担大部分工作、日常任务。

因此,所开发模型的速度和质量、团队的生产力以及其中的小环境直接取决于支持 MLOps 流程的专家选择的边界以及如何组织所开发模型的操作化流程。

我们的团队已经做了什么

我们最近开始构建能力结构和 MLOps 流程。 但我们关于模型生命周期管理和使用模型即服务的项目已经处于 MVP 测试阶段。

我们还确定了大型企业的最佳能力结构以及过程中所有参与者之间互动的组织结构。 组织了敏捷团队来为整个业务客户解决问题,并建立了与项目团队互动创建平台和基础设施的流程,这是正在建设中的 MLOps 大楼的基础。

对未来的疑问

MLOps 是一个不断发展的领域,目前正在经历能力短缺,但未来将获得发展势头。 与此同时,最好以 DevOps 开发和实践为基础。 MLOps 的主要目标是更有效地使用 ML 模型来解决业务问题。 但这引发了许多问题:

  • 如何缩短模型投入生产的时间?
  • 如何减少不同能力团队之间的官僚摩擦并加强合作?
  • 如何跟踪模型、管理版本并组织有效的监控?
  • 如何为现代机器学习模型创建真正的循环生命周期?
  • 如何标准化机器学习流程?

这些问题的答案将在很大程度上决定 MLOps 能够以多快的速度充分发挥其潜力。

来源: habr.com

添加评论