是否可以将 kubeflow 组件与 tensorflow 扩展组件混合使用?

问题描述

看起来 Kubeflow 已弃用其所有 TFX 组件。我目前有一些自定义 Kubeflow 组件可以帮助启动我的一些数据管道,我希望我可以在同一个 kubeflow 管道中使用一些 TFX 组件。是否有将 Kubeflow 和 Tfx 组件混合在一起的推荐方法

我看到 Kubeflow 的一个旧 PR 弃用了他们的 TFX 组件: https://github.com/kubeflow/pipelines/issues/3853

它指出:

创建这些组件是为了允许用户使用 TFX 组件 在他们的 KFP 管道中,能够混合 KFP 和 TFX 组件。如果 您的管道仅使用 TFX 组件,请使用官方 TFX 开发工具包。

但我确实需要混合使用 KFP 和 TFX 组件,有没有办法做到这一点?

解决方法

简单的答案是否定的,长的答案是你可以,如果你破解它。不过体验不会太好。

当您查看示例 TFX 管道时,它有自己的 Python DSL。作为用户,您可以按照自己希望的方式定义管道组件,最后您可以更改目标运行器(Airflow、Beam 和 KFP)。 TFX 将编译它的中间表示,然后将其提交给您选择的运行器。

接下来的问题是如何将其与其他工具混合使用。 TFX 编译 Argo 工作流 DAG,类似于您使用 KFP SDK 或 Couler。当您使用 KubeflowDAG 运行器时,您可以找到 output Argo YAML for the pipeline。如果您对 KFP 原生管道重复相同的编译过程,您将拥有两个 Argo YAML,您可以针对所需的特定工作负载将它们合并在一起。

如果您使用的是 MLMD,您可能需要进行一些输入/输出操作才能使其正常工作。