Vertex AI Pipelines 简介

Vertex AI Pipelines 可让您使用机器学习流水线来编排机器学习工作流,从而以无服务器方式自动执行、监控和管理机器学习系统。您可以批量运行使用 Kubeflow Pipelines (Kubeflow Pipelines) 或 TensorFlow Extended (TFX) 框架定义的机器学习流水线。如需了解如何选择框架来定义机器学习流水线,请参阅用于定义流水线的界面

本页面提供了以下主题的概览:

什么是机器学习流水线?

机器学习流水线是对 MLOps 工作流的可移植且可扩展的说明,该工作流是一系列称为流水线任务的步骤。每个任务都执行工作流中的特定步骤,以训练和/或部署机器学习模型。

借助机器学习流水线,您可以应用 MLOps 策略自动执行和监控机器学习做法中的可重复流程。例如,您可以重复使用流水线定义,以根据最新生产数据持续重新训练模型。如需详细了解 Vertex AI 中的 MLOps,请参阅 Vertex AI 上的 MLOps

机器学习流水线的结构

机器学习流水线是使用输入/输出依赖项相互连接的容器化流水线任务的有向无环图 (DAG)。您可以使用 Python 编写每个任务,也可以将其编写为预构建的容器映像。

您可以使用 Kubeflow Pipelines SDK 或 TFX SDK 将流水线定义为 DAG,将其编译为 YAML 以作为中间表示形式,然后运行流水线。默认情况下,流水线任务是并行运行的。您可以链接任务以按顺序执行。如需详细了解流水线任务,请参阅流水线任务。如需详细了解用于定义、编译和运行流水线的工作流,请参阅机器学习流水线的生命周期

流水线任务和组件

流水线任务是具有特定输入的流水线组件的实例化。在定义机器学习流水线时,您可以将一个流水线任务的输出路由到机器学习工作流中的下一个流水线任务的输入,从而将多个任务互连以形成 DAG。您还可以将机器学习流水线的输入用作流水线任务的输入。

流水线组件

流水线组件是一组独立的代码,用于执行机器学习工作流的特定步骤,例如数据预处理、模型训练或模型部署。组件通常包含以下内容:

  • 输入:组件可能包含一个或多个输入参数和工件。

  • 输出:每个组件都有一个或多个输出参数或工件。

  • 逻辑:这是组件的可执行代码。对于容器化组件,逻辑还包含运行该组件的环境或容器映像的定义。

组件是在机器学习流水线中定义任务的基础。如需定义流水线任务,您可以使用预定义的 Google Cloud 流水线组件,也可以创建您自己的自定义组件。

预定义组件

如果您想在流水线中使用 Vertex AI 的功能(例如 AutoML),请使用预定义的 Google Cloud 流水线组件。如需了解如何使用 Google Cloud 流水线组件来定义流水线,请参阅构建流水线

自定义组件

您可以编写自己的自定义组件来用于机器学习流水线。如需详细了解如何编写自定义组件,请参阅构建您自己的流水线组件

如需了解如何编写自定义 Kubeflow Pipelines 组件,请参阅 GitHub 上的“具有基于 Python 函数的轻量级组件的流水线” Jupyter 笔记本。如需了解如何编写自定义 TFX 组件,请参阅在生产环境中使用 TensorFlow 的教程中的 TFX Python 函数组件教程

流水线任务

流水线任务是流水线组件的实例化,并执行机器学习工作流中的特定步骤。您可以使用 Python 编写机器学习流水线任务,也可以将其编写为预构建的容器映像。

在任务中,您可以使用 Kubernetes 基于 Vertex AI 的按需计算功能进行构建,以可扩缩的方式执行代码,或将工作负载委托给其他执行引擎,例如 BigQuery、Dataflow 或 Dataproc Serverless。

机器学习流水线的生命周期

从定义到执行和监控,机器学习流水线的生命周期包括以下主要阶段:

  1. 定义:定义机器学习流水线及其任务的过程也称为构建流水线。在此阶段,您需要执行以下步骤:

    1. 选择机器学习框架:Vertex AI Pipelines 支持使用 TFX 或 Kubeflow Pipelines 框架定义的机器学习流水线。如需了解如何选择用于构建流水线的框架,请参阅用于定义流水线的界面

    2. 定义流水线任务并配置流水线:如需了解详情,请参阅构建流水线

  2. 编译:在此阶段,您需要执行以下步骤:

    1. 在已编译的 YAML 文件中生成机器学习流水线定义以作为中间表示形式,可用于运行机器学习流水线。

    2. 可选:您可以将已编译的 YAML 文件作为流水线模板上传到存储库,并重复使用该文件来创建机器学习流水线运行。

  3. 运行:使用已编译的 YAML 文件或流水线模板创建机器学习流水线的执行实例。流水线定义的执行实例称为流水线运行

    您可以创建一次性的流水线运行,也可以使用 Vertex AI Scheduler 根据同一机器学习流水线定义创建周期性的流水线运行。您也可以克隆现有流水线运行。如需了解如何选择运行机器学习流水线的界面,请参阅运行流水线的界面。如需详细了解如何创建流水线运行,请参阅运行流水线

  4. 监控、直观呈现和分析运行:创建流水线运行后,您可以执行以下操作来监控流水线运行的性能、状态和费用:

  5. 可选:停止或删除流水线运行:对流水线运行保持活跃的时长没有限制。您可以选择执行以下操作:

    • 停止流水线运行。

    • 暂停或恢复流水线运行时间表。

    • 删除现有流水线模板、流水线运行或流水线运行时间表。

什么是流水线运行?

流水线运行是机器学习流水线定义的执行实例。每个流水线运行都由唯一的运行名称进行标识。使用 Vertex AI Pipelines,您可以通过以下方式创建机器学习流水线运行:

  • 使用流水线的已编译 YAML 定义

  • 使用模板库中的流水线模板

如需详细了解如何创建流水线运行,请参阅运行流水线。如需详细了解如何通过流水线模板创建流水线运行,请参阅创建、上传和使用流水线模板

如需了解如何使用 Vertex ML Metadata 跟踪和存储流水线运行工件和元数据,请参阅使用 Vertex ML Metadata 跟踪机器学习工件的沿袭

如需了解如何使用 Vertex AI Experiments 通过流水线运行对机器学习工作流进行实验,请参阅将流水线运行添加到实验

使用 Vertex ML Metadata 跟踪机器学习工件的沿袭

流水线运行包含多个工件和参数,包括流水线元数据。如需了解机器学习系统的性能或准确率的变化,您需要分析机器学习流水线运行中的机器学习工件的元数据和沿袭。机器学习工件的沿袭包括促使其创建的所有因素,以及从此工件派生的工件和元数据。

以临时方式管理这些元数据可能会非常困难且耗时。 您可以使用 Vertex ML Metadata 高效地维护此元数据。当您使用 Vertex AI Pipelines 运行机器学习流水线时,流水线运行的工件和元数据使用 Vertex ML Metadata 存储。

如需详细了解如何使用 Vertex ML Metadata 跟踪机器学习工件的沿袭,请参阅跟踪流水线工件的沿袭

如需详细了解如何直观呈现、分析和比较流水线运行,请参阅直观呈现和分析流水线结果。如需查看 Google Cloud 流水线组件中定义的第一方工件类型列表,请参阅机器学习元数据工件类型

将流水线运行添加到实验

Vertex AI Experiments 可让您跟踪和分析各种模型架构、超参数和训练环境,以找到最适合您的机器学习应用场景的模型。创建机器学习流水线运行后,您可以将其与实验或实验运行关联。这样,您就可以使用不同的变量集进行实验,例如超参数、训练步数或迭代次数。

如需详细了解如何使用 Vertex AI Experiments 对机器学习工作流进行实验,请参阅 Vertex AI Experiments 简介

后续步骤