【问题标题】:Kubeflow vs Vertex AI PipelinesKubeflow 与 Vertex AI 管道
【发布时间】:2022-01-18 07:50:48
【问题描述】:

我正在探索 kubeflow 管道和 Vertex AI 管道。据我了解,Vertex AI 管道是 kubeflow 管道的托管版本,因此不需要部署完整的 kubeflow 实例。在这方面,抛开定价不谈,Vertex AI 管道是一个更好的选择。但是,在 kubeflow 中,可以创建 experiments,这是我在 Vertex AI 管道中没有找到的等价物。我在documentation 中发现的唯一 Vertex AI 不支持的 kubeflow 功能是“缓存过期”和“递归”,但它们没有提及任何关于实验的内容。让我想知道在两者之间做出决定时是否还有其他值得考虑的差异。

【问题讨论】:

    标签: google-cloud-platform google-ai-platform kubeflow-pipelines google-cloud-vertex-ai google-cloud-ai-platform-pipelines


    【解决方案1】:

    在过去的几个月里,我所在的团队一直在研究 Vertex AI 并与 KubeFlow 进行比较。正如您所指出的,Vertex AI 实验与 KubeFlow 的不同。 Vertex的实验只是Tensorboard instancesVizier hyperparameter tuning的一个接口。

    在 Vertex AI 中似乎没有用于将管道运行分组到实验中的等效项。然而,正如KubeFlow for Machine Learning 的作者所指出的那样,KubeFlow 自己的实验跟踪功能非常有限,这就是为什么他们更喜欢将 KubeFlow 与 MLflow 一起使用。

    我注意到的其他一些差异:

    • 低级访问: Vertex 作为托管服务,不会公开运行管道步骤的实例,而在 KubeFlow 中它们是 Kubernetes 内部的普通 Pod,因此理论上您应该拥有更多低级控制。
    • 管道注册表/管道版本:在 KubeFlow 中,您可以在工具本身内存储管道并跟踪已编译管道的版本,以及更改的描述。在 Vertex 中,没有等价物,您必须将管道对象存储在 GCS 中(但我认为您最好还是在版本控制系统中跟踪管道代码)。
    • Vertex 尚不支持计划/定期管道运行

    除了这些以及您已经提到的之外,Vertex 似乎在管道执行功能方面与 KubeFlow 的功能相当,并且具有无需管理 Kubernetes 集群的巨大优势。

    【讨论】:

    • 我很确定我之前已经创建了一个计划/重复的 Vertex AI 管道,请参阅这个stackoverflow.com/questions/68793294/…,它基本上在后台使用了 Cloud Scheduler。但是当我现在查看文档时,没有提到这个,也许他们删除了这个支持。
    • 您的体验如何?速度。管道应该对实验有用,尝试不同的模型、策略等。用于简单玩具流的 Vertex AI 管道让我花费了 2 分钟到 10 分钟,比在本地运行要慢得多。尚未能够试验 kubeflow,所以不知道它是否更快(本地独立部署或完整的 kubernetes 部署)。
    • 根据我的经验,KubeFlow 管道阶段的设置时间比 Vertex 少得多(几秒钟对几分钟)。这是意料之中的,因为阶段只是 KF 中的容器,而在 Vertex 中似乎已经配置了完整的实例来运行容器。对于生产场景它可以忽略不计,但对于小型实验绝对不值得。我正在考虑的一种替代方法是在 minikube 上使用 KF 在本地测试管道,然后使用 VAI 来测试更大的东西。要么在本地 docker 上单独测试容器。
    【解决方案2】:

    实际上,Vertex AI 是一个用于执行内置管道的无服务器平台:

    Kubeflow Pipelines SDK v1.8.9 或更高版本,或 TensorFlow Extended v0.30.0 或更高版本。

    事实上,几乎所有你用来创建的 Kubeflow 管道都可以在 Vertex AI 中运行得很好,你只需要考虑你在文档中已经提到的方面(io、dsl 和 storge)(其中一种常识,因为您不能从磁盘中获取并且必须使用外部文件源)

    所以,基本上就是你运行它的地方。如果您使用 kubeflow(即 import kfp ),开发实际上不会改变。

    更新:几乎所有功能都支持实验。只需在此处查看:Experiments – Vertex AI – Google Cloud Platform

    一些参考资料:

    Building a pipeline  |  Vertex AI  |  Google Cloud

    Running an Experiment | Kubeflow

    Experiments – Vertex AI – Google Cloud Platform

    【讨论】:

    • 我理解,但我想知道的是,根据大家的经验,Vertex AI 管道中可能缺少哪些功能,比如在 kubeflow 中,可以将管道运行组织成逻辑组。 Vertex AI 中没有提及这方面的内容。
    • 还支持实验。请检查答案@racerX 上的更新
    • 不一样,kubeflow中的实验允许你对管道进行分组,即当你在kubeflow中运行一个管道时,你可以将它与特定的实验相关联,没有找到方法在顶点中也是如此。此外,顶点实验专门用于张量板
    猜你喜欢
    • 2022-10-06
    • 2023-01-03
    • 2022-01-19
    • 2021-09-21
    • 2021-11-11
    • 2022-08-23
    • 2022-10-06
    • 2023-02-18
    • 2022-10-06
    相关资源
    最近更新 更多