机器学习工作流中的 Dataflow ML

如需编排复杂的机器学习工作流,您可以创建包含数据预处理和后处理步骤的框架。您可能需要先预处理数据,然后才能使用数据训练模型,或者对数据进行后处理以转换模型的输出。

机器学习工作流通常包含许多步骤,这些步骤共同构成一个流水线。如需构建机器学习流水线,您可以使用以下方法之一。

  • 使用与 Apache Beam 和 Dataflow 运行程序内置集成的编排框架,例如 TensorFlow Extended (TFX) 或 Kubeflow Pipelines (KFP)。此选项的复杂性最低。
  • Dataflow 模板中构建自定义组件,然后从机器学习流水线调用该模板。该调用包含您的 Apache Beam 代码。
  • 构建要在机器学习流水线中使用的自定义组件,并将 Python 代码直接放入该组件中。您可以定义自定义 Apache Beam 流水线,并在自定义组件中使用 Dataflow 运行程序。此选项最为复杂,需要您管理流水线依赖项。

创建机器学习流水线后,您可以使用编排器将各个组件串联起来,以创建端到端机器学习工作流。如需编排组件,您可以使用代管式服务,例如 Vertex AI Pipelines

以下部分介绍了工作流协调使用场景。

TFXKubeflow Pipelines (KFP) 都使用 Apache Beam 组件。

我想将 Dataflow 与 Vertex AI Pipelines 搭配使用

Vertex AI Pipelines 可采取无服务器方式编排机器学习工作流,帮助您实现机器学习系统自动化,监控和治理您的机器学习系统。您可以使用 Vertex AI Pipelines 编排由 TFX 或 KFP 定义的工作流有向无环图 (DAG),并使用 Vertex ML Metadata 自动跟踪机器学习工件。如需了解如何将 Dataflow 与 TFX 和 KFP 结合使用,请参阅以下部分中的信息。

我想将 Dataflow 与 Kubeflow Pipelines 搭配使用

Kubeflow 是一个机器学习工具包,旨在让您可以在 Kubernetes 上以可移植、可扩容的方式轻松部署机器学习工作流。Kubeflow Pipelines 流水线是使用 Kubeflow Pipelines SDK 构建的可重复使用的端到端机器学习工作流。

Kubeflow Pipelines 服务旨在提供端到端编排,便于实验和重复使用。借助 KFP,您可以试用编排技术并管理测试,还可以重复使用组件和流水线来创建多个端到端解决方案,而无需每次都从头开始。

将 Dataflow 与 KFP 搭配使用时,您可以使用 DataflowPythonJobOP operator 或 DataflowFlexTemplateJobOp operator。您还可以构建完全自定义的组件。我们建议您使用 DataflowPythonJobOP operator。

如果您想构建完全自定义的组件,请参阅 Vertex AI 文档中的 Dataflow 组件页面。

我想将 Dataflow 与 TFX 搭配使用

TFX 流水线组件是以 TFX 库为基础构建的,并且数据处理库直接使用 Apache Beam。例如,TensorFlow 转换会将用户的调用转换为 Apache Beam 调用。因此,您可以将 Apache Beam 和 Dataflow 与 TFX 流水线搭配使用,而无需执行额外的配置工作。如需将 TFX 与 Dataflow 搭配使用,请在构建 TFX 流水线时使用 Dataflow 运行程序。如需了解详情,请参阅以下资源: