IBM Developer 博客

通过 IBM Developer 关注最新动态并获取信息

使用 Kubeflow Pipelines DSL 创建机器学习管道,并将其编译为 Tekton YAML。


需要以更快速、可重复且一致的方式以及恰当的管理方法在生产环境中部署更多的机器学习模型。

在 2018 年 3 月举办的 Strata Data Conference 大会上,IBM 副总裁 Dinesh Nirmal 提到了机器学习梯队中的一个普遍说法):“关于企业机器学习的故事 —— 我花 3 周开发了模型,但已经超过 11 个月了,仍未部署。”

作为这种观点的回应,Forrester 在其 2020 年报告中指出:“数据科学、应用程序开发和交付 (AD&D) 团队以及越来越多的业务线领导者最为头疼的一件事是部署、监视和管理生产环境中机器学习模型时所面临的挑战。人工交接、疯狂的监视和松散的管理使组织无法部署更多的 AI 用例。”

MLOps 和 Kubeflow Pipelines 可加速部署

为了解决这个问题,数据科学家、数据工程师和 DevOps 人员共同努力,以严格的工程技术(而非科学理论)推动了这一学科的发展。为响应此需求还兴起了 MLOps 和 DataOps 领域,因此数据和机器学习管道成为驱动这些领域的主要工具。

Kubeflow 成为满足 MLOps 需求的领先解决方案。Kubeflow 是一个端到端的机器学习平台,专注于分布式训练、超参数优化、生产模型服务和管理以及带有元数据和沿袭跟踪(lineage tracking)的机器学习管道。

不用说,Kubeflow Pipelines 已成为满足 DevOps 工程师和数据科学家需求的主要工具。

  • 对于 DevOps 人员来说,Kubeflow 打入了 Kubernetes 生态系统,并充分利用其可扩展性和容器化原则
  • 对于数据科学家,Kubeflow Pipelines 提供了一个 Python 接口来定义和部署 Pipelines,从而支持元数据收集和沿袭跟踪
  • 对于 DataOps 人员,Kubeflow Pipelines 通过提供对多个 ETL 组件和用例的支持,引入了 ETL 绑定以更全面地参与同对等方之间的协作。

鉴于 IBM 在 Kubernetes 方面的标准化以及在 Kubeflow 社区中的领导地位,IBM 已将 Kubeflow Pipelines 作为定义我们端到端数据和机器学习管道策略的不二之选。

宣布:Tekton 上的 Kubeflow Pipelines

我们决定采用 Kubeflow Pipelines 是因为内部需要重新设计 Kubeflow Pipelines,以在 Tekton(Kubernetes 原生 CI/CD 引擎)而不是 Argo 之上运行。Tekton 提供用于声明 CI/CD 风格管道的 Kubernetes 风格资源,并引入了数个新的定制资源定义 (CRD),包括 Task、Pipeline、TaskRun 和 PipelineRun。在 IBM 内部,我们已将 Tekton 标准化为云 CI/CD 引擎,OpenShift Pipelines 基于 Tekton。此外,Tekton 中的 Task 可以独立于管道进行管理和执行,这对我们很有价值。

鉴于与 Tekton 的战略和技术契合,我们的团队很自然地选择在 Tekton 之上重写和运行 Kubeflow Pipelines。在着手设计和执行这项工作时,我们得到了 Google Kubeflow Pipelines 团队、CD Foundation MLOps Sig 和 Red Hat 的大力支持。经过大量的努力,我们使 在 Tekton 上端到端运行的 Kubeflow 管道可在开源中使用。阅读我们的设计文档以了解我们的流程和需求。

有了这个里程碑,您可以:

  • 使用 Kubeflow Pipelines DSL 创建管道并将其编译为 Tekton YAML。
  • 将已编译的 Tekton YAML 上传到 Kubeflow Pipeline 引擎(API 和 UI),并在启用日志记录和工件跟踪的情况下端到端地运行。

有关此项目的更多详细信息,可查看这些幻灯片

Tekton 上的 Kubeflow Pipeles

如果您要在包含开源代码库的社区中使用 Kubeflow Pipelines,您会有相同的体验!您可以使用:

  • 我们发布的 Python SDK 编译您的 Pipelines Python DSL
  • 在 Kubeflow Pipelines UI 上,在 Tekton YAML 的支持下,您将获得相同的 KFP DAG 体验

WML Tekton Pipeline

另外,实时日志流、工件跟踪和沿袭跟踪可以根据需要充分发挥作用。

使用工件运行 Pipelines

Red Hat OpenShift 和 IBM Cloud Kubernetes Service (IKS) 上使用 Tekton 的 Kubeflow Pipelines

OpenShift Pipelines 在 OpenShift 上提供云原生 CI/CD,可跨本地和公共云平台自动构建、测试和部署应用程序。遵循在 OpenShift Container Platform 上使用 Tekton 后端部署 Kubeflow Pipelines 中的说明,了解如何在 OpenShift 上使用 Tekton 运行 Kubeflow Pipelines。根据您的情况,您可以选择以下两种方法之一:

  1. 以 OpenShift Pipelines(基于 Tekton 构建)为核心。
  2. 在部署期间安装 Tekton。

我们需要做的下一步是将带有 Tekton 的 Kubelflow Pipelines 集成到 Red Hat 的 OpenDataHub 项目中,因为其章程已将其作为 OpenShift 上的开源 AI / ML 平台。

此外,在即将发布的 Kubeflow 1.2 版本中,带有 Tekton 的 Kubeflow Pipelines 可在 IBM Cloud Kubernetes Service 上部署,并且默认情况下包含在 IBM Cloud 上的 Kubeflow 部署中。

即将推出:Watson AI Platform Pipelines

更进一步,我们将在此堆栈上推出 Watson AI Platform Pipelines,即端到端机器学习和数据管道。我们正在添加其他功能,以便能够通过与 IBM Watson Studio、Watson AutoAI、Watson Knowledge Catalog、Notebook 等集成,更轻松地使用拖放画布、管道组件注册表、生产级日志记录和管理功能来构建管道。继续关注,提供反馈并申请提前使用

Watson OFlow

与我们一起使用 Kubeflow Pipelines 和 Tekton 构建云原生的机器学习管道

通过带有 Tekton GitHub 代码库的 Kubeflow Pipelines 加入我们,进行试用,提供反馈并提出问题。此外,您可以通过以下方式与我们联系:

  • 要在 OpenShift 和 Kubernetes 上构建企业级端到端机器学习平台并做出贡献,可加入 Kubeflow 社区并提出任何问题、意见和反馈!
  • 要提前使用 Watson AI Pipelines 并提供反馈,需填写此调查
  • 如果您需要获得有关在本地 Kubernetes 平台、OpenShift 或 IBM Cloud 上部署和管理 Kubeflow 的帮助,可联系我们
  • 要使用拖放画布运行基于 Notebook 的管道,可在社区中查看 Elyra 项目,该项目为 JupyterLab 提供以 AI 为中心的扩展。
  • 如果您对 Data and AI 组合中的开源项目(即 Kubeflow、Kafka、Hive、Hue 和 Spark)感兴趣并想要了解如何以云原生方式将它们组合在一起,可查看 OpenDataHub

感谢为基于 Tekton 的 Kubeflow Pipelines 做出贡献的人员,即 Tommy Li、Christian Kadner、Adam Massachi、Rafal Bigaj、Feng Li、Andrew Butler、Michalina Kotwica、Andrea Fritolli、Priti Desai、Peng Li,以及在项目各方面做出贡献的其他内部和外部人员。此外,感谢 Red Hat 的 OpenShift Pipelines 和 Tekton 团队以及 Elyra 团队 (Luciano Resende) 的反馈。最后不能不提的是,感谢 Pavel Dournov、Jeremy Lewi 以及 Google 的 Kubeflow Pipelines 团队帮助促成此项目并提供支持。

本文翻译自:Kubeflow Pipelines meets Tekton and Watson(2020-11-16)