Vertex AI Pipelines 可让您使用机器学习流水线来编排机器学习工作流,从而以无服务器方式自动执行、监控和管理机器学习系统。您可以批量运行使用 Kubeflow Pipelines 或 TensorFlow Extended (TFX) 框架定义的机器学习流水线。如需了解如何选择框架来定义机器学习流水线,请参阅用于定义流水线的界面。
本页面提供了以下主题的概览:
什么是机器学习流水线?
机器学习流水线是对 MLOps 工作流的可移植且可扩展的说明,该工作流是一系列称为流水线任务的步骤。每个任务都执行工作流中的特定步骤,以训练和/或部署机器学习模型。
借助机器学习流水线,您可以应用 MLOps 策略自动执行和监控机器学习做法中的可重复流程。例如,您可以重复使用流水线定义,以根据最新生产数据持续重新训练模型。如需详细了解 Vertex AI 中的 MLOps,请参阅 Vertex AI 上的 MLOps。
机器学习流水线的结构
机器学习流水线是使用输入/输出依赖项相互连接的容器化流水线任务的有向无环图 (DAG)。您可以使用 Python 编写每个任务,也可以将其编写为预构建的容器映像。
您可以使用 Kubeflow Pipelines SDK 或 TFX SDK 将流水线定义为 DAG,将其编译为 YAML 以作为中间表示形式,然后运行流水线。默认情况下,流水线任务是并行运行的。您可以链接任务以按顺序执行。如需详细了解流水线任务,请参阅流水线任务。如需详细了解用于定义、编译和运行流水线的工作流,请参阅机器学习流水线的生命周期。
流水线任务和组件
流水线任务是具有特定输入的流水线组件的实例化。在定义机器学习流水线时,您可以将一个流水线任务的输出路由到机器学习工作流中的下一个流水线任务的输入,从而将多个任务互连以形成 DAG。您还可以将机器学习流水线的输入用作流水线任务的输入。
流水线组件
流水线组件是一组独立的代码,用于执行机器学习工作流的特定步骤,例如数据预处理、模型训练或模型部署。组件通常包含以下内容:
输入:组件可能包含一个或多个输入参数和工件。
输出:每个组件都有一个或多个输出参数或工件。
Logic:这是组件的可执行代码。对于容器化组件,逻辑还包含运行该组件的环境或容器映像的定义。
组件是在机器学习流水线中定义任务的基础。如需定义流水线任务,您可以使用预定义的 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。
机器学习流水线的生命周期
从定义到执行和监控,机器学习流水线的生命周期包括以下主要阶段:
定义:定义机器学习流水线及其任务的过程也称为构建流水线。在此阶段,您需要执行以下步骤:
选择机器学习框架:Vertex AI Pipelines 支持使用 TFX 或 Kubeflow Pipelines 框架定义的机器学习流水线。如需了解如何选择用于构建流水线的框架,请参阅用于定义流水线的界面。
定义流水线任务并配置流水线:如需了解详情,请参阅构建流水线。
编译:在此阶段,您需要执行以下步骤:
在已编译的 YAML 文件中生成机器学习流水线定义以作为中间表示形式,可用于运行机器学习流水线。
可选:您可以将已编译的 YAML 文件作为流水线模板上传到存储库,并重复使用该文件来创建机器学习流水线运行。
运行:使用已编译的 YAML 文件或流水线模板创建机器学习流水线的执行实例。流水线定义的执行实例称为流水线运行。
您可以创建一次性的流水线运行,也可以使用调度程序 API 创建基于同一机器学习流水线定义的周期性流水线运行。您也可以克隆现有流水线运行。如需了解如何选择运行机器学习流水线的界面,请参阅运行流水线的界面。如需详细了解如何创建流水线运行,请参阅运行流水线。
监控、直观呈现和分析运行:创建流水线运行后,您可以执行以下操作来监控流水线运行的性能、状态和费用:
为流水线失败配置电子邮件通知。如需了解详情,请参阅配置电子邮件通知。
使用 Cloud Logging 创建日志条目以监控事件。如需了解详情,请参阅查看流水线作业日志。
直观呈现、分析和比较流水线运行。如需了解详情,请参阅直观呈现和分析流水线结果。
使用将 Cloud Billing 数据导出到 BigQuery 的功能来分析流水线运行费用。如需了解详情,请参阅了解流水线运行费用。
可选:停止或删除流水线运行:对流水线运行保持活跃的时长没有限制。您可以选择执行以下操作:
停止流水线运行。
暂停或恢复流水线运行时间表。
删除现有流水线模板、流水线运行或流水线运行时间表。
什么是流水线运行?
流水线运行是机器学习流水线定义的执行实例。每个流水线运行都由唯一的运行名称进行标识。使用 Vertex AI Pipelines,您可以通过以下方式创建机器学习流水线运行:
使用流水线的已编译 YAML 定义
使用模板库中的流水线模板
如需详细了解如何创建流水线运行,请参阅运行流水线。如需详细了解如何通过流水线模板创建流水线运行,请参阅创建、上传和使用流水线模板。
如需了解如何使用 Vertex ML Metadata 捕获和存储流水线运行元数据,请参阅使用 Vertex ML Metadata 跟踪机器学习工件的沿袭。
如需了解如何使用 Vertex AI Experiments 通过流水线运行对机器学习工作流进行实验,请参阅将流水线运行添加到实验。
跟踪机器学习工件的沿袭
流水线运行包含多个工件和参数,包括流水线元数据。如需了解机器学习系统的性能或准确率的变化,您需要分析机器学习流水线运行中的机器学习工件的元数据和沿袭。机器学习工件的沿袭包括促使其创建的所有因素,以及从其派生的工件的元数据和引用。
沿袭图可帮助您分析上游根本原因和下游影响。每个流水线运行作业都会生成一个参数和工件的沿袭图,这些参数和工件会被输入到运行作业中、在运行作业中具体化并通过运行作业输出。构成此沿袭图的元数据存储在 Vertex ML Metadata 中。此元数据也可以同步到 Dataplex。
使用 Vertex ML Metadata 跟踪流水线工件沿袭
使用 Vertex AI Pipelines 运行流水线时,流水线使用和生成的所有参数和工件元数据都存储在 Vertex ML Metadata 中。Vertex ML Metadata 是 TensorFlow 中机器学习元数据库的代管式实现,它支持注册和编写自定义元数据架构。当您在 Vertex AI Pipelines 中创建流水线运行作业时,流水线运行作业中的元数据会存储在您执行流水线的项目和区域的默认元数据存储区中。
使用 Dataplex 跟踪流水线工件沿袭
Dataplex 是一个全球跨项目数据结构脉络,与 Google Cloud 中的多个系统(例如 Vertex AI、BigQuery 和 Cloud Composer)集成。在 Dataplex 中,您可以搜索流水线工件并查看其沿袭图。请注意,为了防止工件冲突,在 Dataplex 中编目的所有资源都将使用完全限定名称 (FQN) 进行标识。
如需详细了解如何使用 Vertex ML Metadata 和 Dataplex 跟踪机器学习工件的沿袭,请参阅跟踪流水线工件的沿袭。
如需详细了解如何直观呈现、分析和比较流水线运行,请参阅直观呈现和分析流水线结果。如需查看 Google Cloud 流水线组件中定义的第一方工件类型列表,请参阅机器学习元数据工件类型。
将流水线运行添加到实验
Vertex AI Experiments 可让您跟踪和分析各种模型架构、超参数和训练环境,以找到最适合您的机器学习应用场景的模型。创建机器学习流水线运行后,您可以将其与实验或实验运行关联。这样,您就可以使用不同的变量集进行实验,例如超参数、训练步数或迭代次数。
如需详细了解如何使用 Vertex AI Experiments 对机器学习工作流进行实验,请参阅 Vertex AI Experiments 简介。