GCP Kubeflow 和 GCP Cloud Composer 之间有什么区别?

Niz*_*zam 5 google-cloud-platform google-cloud-composer kubeflow

我正在学习 GCP,并遇到了 Kuberflow 和 Google Cloud Composer。
据我了解,两者似乎都用于编排工作流程,使用户能够调度和监控 GCP 中的管道。
我能弄清楚的唯一区别是 Kuberflow 部署和监控机器学习模型。我对么?在这种情况下,由于机器学习模型也是对象,我们不能使用 Cloud Composer 来编排它们吗?在管理机器学习模型方面,Kubeflow 如何提供比 Cloud Composer 更好的帮助?

谢谢

Ark*_*kun 7

Kubeflow 和 Kubeflow 管道

Kubeflow 与 Kubeflow Pipelines 并不完全相同。Kubeflow 项目主要开发用于分布式 ML 训练的 Kubernetes 算子(TFJob、PyTorchJob)。另一方面,Pipelines 项目开发了一个用于在 Kubernetes 上编写和运行管道的系统。KFP也有一些示例组件,主要产品是管道创作SDK和管道执行引擎

Kubeflow Pipelines 与 Cloud Composer

这些项目非常相似,但也存在差异:

  • KFP 使用 Argo 进行执行和编排。Cloud Composer 使用 Apache Airflow。
  • KFP/Argo 专为 Kubernetes 上的分布式执行而设计。Cloud Composer/Apache Airflow更适合单机执行。
  • KFP/Argo 与语言无关 - 组件可以使用任何语言(组件描述容器化命令行程序)。Cloud Composer/Apache Airflow 使用 Python(Airflow 运算符定义为 Python 类)。
  • KFP/Argo 有数据传递的概念。每个组件都有输入和输出,管道将它们连接成数据传递图。Cloud Composer/Apache Airflow 并没有真正的数据传递(Airflow 有全局变量存储和 XCom,但它与显式数据传递不是一回事),管道是一个任务依赖图,而不是主要的数据依赖图(KFP 也可以有任务依赖性,但通常不需要)。
  • KFP 支持执行缓存功能,可以跳过之前已经执行过的任务的执行。
  • KFP 在 ML 元数据数据库中记录管道运行产生的所有工件。
  • KFP 有实验性适配器,允许使用气流操作器作为组件。
  • KFP 拥有庞大且快速增长的定制组件生态系统。


Pie*_*vis 5

直接从kubeflow.org获取

Kubeflow 项目致力于使 Kubernetes 上的机器学习 (ML) 工作流程的部署变得简单、可移植且可扩展。我们的目标不是重新创建其他服务,而是提供一种简单的方法,将最佳的 ML 开源系统部署到不同的基础设施。无论您在哪里运行 Kubernetes,都应该能够运行 Kubeflow。

正如您所看到的,它是由许多在机器学习模型的生命周期中有用的软件组成的套件。它配备了 TensorFlow、Jupiter 等。现在,当谈到 Kubeflow 时,真正的问题是“在 Kubernetis 集群上轻松大规模部署 ML 模型”。

然而,在 GCP 上,您已经在云、数据实验室、云构建等中拥有了 ML 套件。因此,如果您不需要“可移植性”因素,我不知道 Kubernetes 集群的效率会有多高。

Cloud Composer在编排工作流程时发挥了真正的作用。它是 Apache Airflow 的“托管”版本,非常适合任何变化很大的“简单”工作流程,因为您可以通过可视化 UI 和 Python 来更改它。

它也是自动化基础设施操作的理想选择:

在此输入图像描述


rsa*_*ago 5

  • Kubeflow 是一个用于开发和部署机器学习 (ML) 系统的平台其组件专注于创建旨在构建机器学习系统的工作流程。
  • Cloud Composer 提供了运行Apache Airflow 工作流的基础设施。其组件称为Airflow Operators,工作流程是这些称为 DAG 的操作员之间的连接。

这两个服务都运行在 Kubernetes 上,但它们基于不同的编程框架;因此,你是对的,Kuberflow 部署并监控机器学习模型。您的问题请参阅下面的答案:

  1. 在这种情况下,由于机器学习模型也是对象,我们不能使用 Cloud Composer 来编排它们吗?

您需要找到满足您需求的运算符,或者使用创建模型所需的结构创建自定义运算符,请参阅此示例。即使可以执行,这也可能比使用 Kubeflow 更困难。

  1. 在管理机器学习模型方面,Kubeflow 如何提供比 Cloud Composer 更好的帮助?

Kubeflow 隐藏了复杂性,因为它专注于机器学习模型。专门用于机器学习的框架使这些事情比使用 Cloud Composer 更容易,在这种情况下,Cloud Composer 可以被视为通用工具(专注于链接 Airflow Operators 支持的现有服务)。