Wide & Deep 的表格工作流

本文档简要介绍了 Wide & Deep 的表格工作流流水线和组件。如需了解如何使用 Wide & Deep 训练模型,请参阅使用 Wide & Deep 训练模型

Wide & Deep 会联合广度线性模型和深度神经网络进行训练。它结合了记忆和泛化的优势。一些在线实验还表明,与仅涉及广度和仅涉及深度的模型相比,Wide & Deep 显著提高了 Google 商店应用的流量获取。

优势

  • 与 Vertex AI 集成。经过训练的模型是 Vertex AI 模型。您可以运行批量预测或部署模型以立即进行在线预测。

Vertex AI Pipelines 上的 Wide & Deep

Wide & Deep 的表格工作流是 Vertex AI Pipelines 的代管式实例。

Vertex AI Pipelines 是一种用于运行 Kubeflow 流水线的无服务器服务。您可以使用流水线来自动执行及监控机器学习和数据准备任务。流水线中的每个步骤都会执行流水线工作流的一部分。例如,一个流水线可以包含用于拆分数据、转换数据类型和训练模型的各个步骤。由于步骤是流水线组件的实例,因此步骤中包含输入、输出和容器映像。步骤输入可根据流水线的输入进行设置,也可以依赖于此流水线中其他步骤的输出。这些依赖项将流水线的工作流定义为有向非循环图。

Wide & Deep 的表格工作流有两个版本:

  • HyperparameterTuneJob 可搜索用于模型训练的最佳超参数值集。
  • CustomJob 可让您指定用于模型训练的超参数值。如果您确切地知道需要哪些超参数值,则可以指定它们(而不是进行搜索),从而节省训练资源。

广度和深度 CustomJob 流水线和组件概览

广度和深度 CustomJob 流水线如下图所示:

用于 Wide & Deep CustomJob 的流水线 

流水线组件包括:

  1. feature-transform-engine:执行特征工程。如需了解详情,请参阅 Feature Transform Engine
  2. split-materialized-data:将具体化数据拆分为训练集、评估集和测试集。

    输入:

    • 具体化数据 materialized_data

    输出:

    • 具体化训练拆分 materialized_train_split
    • 具体化评估拆分 materialized_eval_split
    • 具体化测试集 materialized_test_split
  3. wide-and-deep-trainer:执行模型训练。

    输入:

    • 实例基准 instance_baseline
    • 训练架构 training_schema
    • 转换输出 transform_output
    • 具体化训练拆分 materialized_train_split
    • 具体化评估拆分 materialized_eval_split
    • 具体化测试集 materialized_test_split

    输出:

    • 最终模型
  4. automl-tabular-infra-estimator:发送预测请求并检查是否成功完成,以验证经过训练的模型。
  5. model-upload:将用户的 Cloud Storage 存储桶中的模型上传到 Vertex AI 作为 Vertex AI 模型。
  6. condition-run-evaluation-2可选。使用测试集计算评估指标。仅在 run_evaluation 设置为 true 时运行。

广度和深度 HyperparameterTuningJob 流水线和组件概览

广度和深度 HyperparameterTuningJob 流水线如下图所示:

Wide & Deep HyperparameterTuningJob 的流水线 

  1. feature-transform-engine:执行特征工程。如需了解详情,请参阅 Feature Transform Engine
  2. split-materialized-data:将具体化数据拆分为训练集、评估集和测试集。

    输入:

    • 具体化数据 materialized_data

    输出:

    • 具体化训练拆分 materialized_train_split
    • 具体化评估拆分 materialized_eval_split
    • 具体化测试集 materialized_test_split
  3. get-wide-and-deep-study-spec-parameters:根据训练流水线的配置生成研究规范。如果用户为 study_spec_parameters_override 提供值,请使用这些值替换研究规范值。

    输入:

    • (可选)研究规范参数的替换 study_spec_parameters_override

    输出:

    • 超参数调节作业的超参数及其范围的最终列表。
  4. wide-and-deep-hyperparameter-tuning-job:执行超参数调节的一个或多个试验。

    输入:

    • 实例基准 instance_baseline
    • 训练架构 training_schema
    • 转换输出 transform_output
    • 具体化训练拆分 materialized_train_split
    • 具体化评估拆分 materialized_eval_split
    • 具体化测试集 materialized_test_split
    • 超参数调节作业的超参数及其范围的列表。
  5. get-best-hyperparameter-tuning-job-trial:从上一步的最佳超参数调节作业试验中选择模型。

    输出:

    • 最终模型
  6. automl-tabular-infra-estimator:发送预测请求并检查是否成功完成,以验证经过训练的模型。
  7. model-upload:将用户的 Cloud Storage 存储桶中的模型上传到 Vertex AI 作为 Vertex AI 模型。
  8. condition-run-evaluation-2可选。使用测试集计算评估指标。仅在 run_evaluation 设置为 true 时运行。

后续步骤