译者:朱先忠
本文将介绍把机器学习基础设施、员工和流程融合的方式,以实现适用于企业的MLOps(面向人工智能系统的运维管理)。本文希望对旨在以高效人工智能团队开发强大的人工智能/机器学习(AI/ML)项目的经理和主管提供启发。
本文的经验来自Provectus公司的人工智能团队,该团队在人工智能技术的不同发展阶段先后与多家客户有过成功的合作。
几年前,AI/ML(人工智能/机器学习)项目中相当一部分工作是由数据科学家负责完成的。虽然有些团队依赖更先进的角色与工具的组合来完成任务,但是由数据科学家通过自己的笔记本电脑来处理相关模型已经成为行业常态。
如今,仅仅雇佣一名数据科学家已经不足以快速、高效、大规模地将一个可行的AI/ML项目交付生产。更现实的方案是,这些项目最好由一个具有多个角色的跨职能、高绩效的团队来协作完成——每个角色仅负责处理自己的ML基础设施和MLOps部分。
在现代团队中,数据科学家或公民数据科学家仍然是不可或缺的成员。数据科学家是负责从整体上理解数据及相关业务的主题专家。他们是数据挖掘、数据建模和数据可视化方面的实际操作人员,此外还关注数据质量和数据偏差问题、分析实验和模型输出、验证假设并为ML工程路线蓝图出谋划策。
一支平衡的人工智能团队还应包括一名ML工程师,但其技能与数据科学家不同。他们应该在特定的AI和ML应用程序与案例方面拥有深厚的专业知识。比如你想要构建一款计算机视觉应用程序,那么ML工程师应该了解计算机视觉方面前沿而广泛的深度学习模型知识。
理论上讲,每个ML工程师都应该具备MLOps专业知识,但对于ML/MLOps基础设施本身(包括相关工具和组件)来说,所有这些都交由专门的MLOps专业人员负责会更好。
项目经理还应接受执行ML和AI项目的培训。传统的Scrum或Kanban项目工作流已不适用于ML项目。例如,在Provectus公司中,我们采用一种特定的方法来管理ML项目的范围和时限,并设定公司各业务利益相关者的期望值。
下文中会更详细地探讨这其中(以及其他)的每一个角色,并解释它们如何映射到ML基础设施、MLOps支持流程和ML交付方面。这里要传达的信息是,人工智能团队迫切需要一种平衡的组成,以实现MLOps并加速人工智能技术的采用杏鑫平台平台好不好。
有兴趣的读者可参阅“Provectus和GoCheck Kids公司如何在视觉筛查中共同协作构建ML基础设施以提高可用性。
除了实际的团队组成之外,有效的管理对于使AI团队与ML基础设施和MLOps基础同步是至关重要的。
从管理角度来看,一个典型的组织结构应该包括以下成员:
负责向工程副总裁汇报的业务部门和传统软件工程师
负责向基础设施副总裁汇报的DevOps专业人士和基础设施专家
处理数据的数据科学家,通常直接与商业利益相关者合作
数据工程师,他们构建的系统旨在将原始数据转换为数据科学家和业务分析师可用的信息
从上图不难看出,这种组织结构很容易带来部门孤岛等挑战,例如:
1. 由于公司对ML工作流和AI项目管理的理解有限,上述团队中没有人完全理解如何将业务目标转化为在生产中推出的AI产品。因此,无法管理项目的界限和KPI(关键绩效指标),导致无法满足业务利益相关者的期望。
2. 一些公司试图将人工智能项目委托给现有的数据科学团队。然而,这些团队过去一直在自己的孤岛上工作,而且他们依赖于不适用于人工智能/机器学习项目的数据科学方法。结果是,他们开发出的是未成形产品以及根本无法部署到生产中的项目。
3. 其他一些公司则通常选择将人工智能项目或者分配给传统的Java和.NET程序员或者利用第三方ML API。这种方法往往也会失败,因为他们仍然需要深入了解数据及其底层算法才能有效地使用这些API。结果,他们最终以数据科学代码的形式背负着越来越大的技术债务,而这些代码永远不会投入生产。
其实,解决这些挑战的办法在于找到一种人与工具之间的适当的平衡。在本文所提供的方案中,这意味着需要一个平衡的AI团队,他们能够利用端到端的MLOps基础设施进行协作和迭代开发。
切不可简单地雇佣MLOps专家或购买MLOps平台,我们需要的是让一个强大的基础设施和一个平衡的人工智能团队两者结合,只有二者共同努力才能让你的AI/ML项目最终落地。
在一支平衡的人工智能团队和MLOps基础设施之间,一些具体角色的协同作用可以通过下面这个三层生态系统来形象展示:
1. 最底部的第一层是MLOps的基础设施主干,由云端与安全专家和DevOps支持。这一层承载基本的基础设施组件,如访问、网络、安全和CI/CD管道。
2. 第二层是MLOps的可共享和可重用的资源部分。这一层由ML工程师和MLOps专业人员管理,包括配备有各种图像软件、内核及模板应用的Notebook;包含被视为共享资源的组件和库组成的管道;实验;数据集和特征数据;还有模型部分。这一层的每一项资源都可以被不同的团队使用和重用,从而加快人工智能的开发和采用。
3. 第三层是人工智能项目,由数据科学家、全栈工程师和项目经理负责。这一层独立于其他两层,但由这两层启用。
请注意,云端与安全、DevOps、ML工程师和MLOps角色位于不同的层之间,并为彼此做出贡献。例如:
云端及安全部分拥有基础设施主干网,但它们也负责重用资源层,确保所有组件和检查都到位。
DevOps专业人员负责底部两层的自动化任务,具体包括从自动构建到管理环境等任务。
ML工程师拥有MLOps基础设施和项目专业知识。他们负责重用资源层的各个组件。
MLOps专家与ML工程师携手合作,但他们拥有整个基础设施(例如亚马逊的机器学习平台服务SageMaker以及谷歌发布的机器学习工具库Kubeflow等),最终目标是把一切都融合在一起。
与此同时,公民数据科学家可以优先实施特定的AI/ML项目,主要通过Notebook工作。他们可以拥有ML管道的特定部分,但不会被迫进入MLOps“凌乱”的部分。全栈工程师负责实现AI产品从UI到API的常规软件部分,受过ML培训的项目经理则负责产品的实施。
当然,上面仅是一个抽象的表述。下图给出的是一个可供参考的基础设施,其中主要展示了基础设施中主干部分的组成部件。
在这里,我们看到数据科学家可以通过工具来处理原始数据,在他们的Notebook中进行数据分析并完成检验假设。他们可以在ML工程师管理的实验环境中轻松运行实验。实验环境由共享和重用的组件组成,如特征存储、数据集生成、模型训练、模型评估和预配置的数据访问模式等。这使得繁琐、容易出错的任务能够自动化,同时又不会把数据科学家逼出他们的舒适工作区。
另一方面,ML工程师负责将ML模型产品化。这意味着,他们能够开发出将在生产环境中使用的算法代码和数据预处理代码。另外,他们还可以为实验环境搭建和运行各种管道。
最后,DevOps专业人员可以帮助高效地管理所有基础设施组件。例如,在我们的参考体系架构中,通过从1到4的简单的几个数字即可以演示出由DevOps处理的CI工作流。
真正使MLOps在企业中落地需要时间和资源。最重要的是,你需要理解MLOps与人和流程的关系,就像它和实际技术的关系一样。如果你能够组织特定的角色和功能,并将它们与机器学习基础设施的相应组件相匹配,问题就不会过于复杂。记住:人员+基础设施= MLOps。
在Provectus公司,我们已经成功地帮助企业构建出先进的AI/ML解决方案,同时培养了高效的AI团队,并为MLOps提供强大的基础设施支持。
【注】本文作者Stepan Pushkarev是Provectus公司的CEO、CTO和联合创始人。Provectus是一家人工智能咨询和解决方案提供商,目标是帮助企业加快人工智能技术的采用并促进增长。Pushkarev在Provectus公司率先提出了针对特定行业的人工智能解决方案的愿景,该解决方案有助于重塑企业运营、竞争和提供客户价值的方式。此外,Pushkarev还是一位在机器学习、云计算和分布式数据处理系统方面拥有深厚专业知识的意见领袖,他在开发专业的服务业务和创建SaaS技术方面都有过出色的业绩。
举报/反馈