机器学习工作流中的 Dataflow 机器学习

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

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

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

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

以下各部分介绍了工作流编排用例。

TFXKubeflow 流水线 (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 Transform 会将用户的调用转换为 Apache Beam。因此,您可以将 Apache Beam 和 Dataflow 与 TFX 流水线搭配使用,而无需执行额外的配置工作。 如需将 TFX 与 Dataflow 搭配使用,请在构建 TFX 流水线时使用 Dataflow 运行程序。如需了解详情,请参阅以下资源: