TabNet 的表格工作流

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

TabNet 使用顺序注意力来选择每个决策步骤要推理的特征。这提高了可解释性和学习效率,因为学习容量用于最显著的特征。

优势

  • 根据数据集大小、预测类型和训练预算自动选择适当的超参数搜索空间。
  • 与 Vertex AI 集成。经过训练的模型是 Vertex AI 模型。您可以运行批量预测或部署模型以立即进行在线预测。
  • 提供固有的模型可解释性。您可以深入了解 TabNet 使用哪些功能来做出决定。
  • 支持 GPU 训练。

Vertex AI Pipelines 上的 TabNet

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

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

TabNet 的表格工作流有两个版本:

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

TabNet CustomJob 流水线和组件概览

TabNet CustomJob 流水线如下图所示:

TabNet CustomJob 的流水线 

流水线组件包括:

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

    输入:

    • 具体化数据 materialized_data

    输出:

    • 具体化训练拆分 materialized_train_split
    • 具体化评估拆分 materialized_eval_split
    • 具体化测试集 materialized_test_split
  3. tabnet-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 时运行。

TabNet HyperparameterTuningJob 流水线和组件概览

TabNet HyperparameterTuningJob 流水线如下图所示:

TabNet 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-tabnet-study-spec-parameters:根据训练流水线的配置生成研究规范。如果用户为 study_spec_parameters_override 提供值,请使用这些值替换研究规范值。

    输入:

    • 训练流水线配置(max_trial_countprediction_type)。
    • 数据集统计信息 dataset_stats
    • (可选)研究规范参数的替换 study_spec_parameters_override

    输出:

    • 超参数调节作业的超参数及其范围的最终列表。
  4. tabnet-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 时运行。

后续步骤