Fluxo de trabalho tabular para modelos amplos e profundos

Este documento oferece uma vista geral do fluxo de trabalho tabular para pipelines e componentes Wide & Deep. Para formar um modelo com Wide & Deep, consulte o artigo Forme um modelo com Wide & Deep.

A arquitetura Wide & Deep forma em conjunto modelos lineares amplos e redes neurais profundas. Combina as vantagens da memorização e da generalização. Em algumas experiências online, os resultados mostraram que o modelo Wide & Deep aumentou significativamente as aquisições de aplicações da Google Store em comparação com os modelos apenas amplos e apenas profundos.

Vantagens

  • Integrado com o Vertex AI. O modelo preparado é um modelo do Vertex AI. Pode executar inferências em lote ou implementar o modelo para inferências online imediatamente.

Wide & Deep no Vertex AI Pipelines

O fluxo de trabalho tabular para o modelo amplo e profundo é uma instância gerida do Vertex AI Pipelines.

O Vertex AI Pipelines é um serviço sem servidor que executa pipelines Kubeflow. Pode usar pipelines para automatizar e monitorizar as suas tarefas de aprendizagem automática e preparação de dados. Cada passo num pipeline executa parte do fluxo de trabalho do pipeline. Por exemplo, um pipeline pode incluir passos para dividir dados, transformar tipos de dados e preparar um modelo. Uma vez que os passos são instâncias de componentes do pipeline, têm entradas, saídas e uma imagem de contentor. As entradas dos passos podem ser definidas a partir das entradas do pipeline ou podem depender da saída de outros passos neste pipeline. Estas dependências definem o fluxo de trabalho do pipeline como um gráfico acíclico orientado.

Estão disponíveis duas versões do fluxo de trabalho tabular para modelos amplos e profundos:

  • O HyperparameterTuningJob procura o melhor conjunto de valores de hiperparâmetros a usar para a preparação do modelo.
  • CustomJob permite-lhe especificar os valores dos hiperparâmetros a usar para a preparação do modelo. Se souber exatamente os valores dos hiperparâmetros de que precisa, especifique-os em vez de os procurar e poupe recursos de preparação.

Vista geral do pipeline e dos componentes do CustomJob amplo e profundo

O pipeline Wide & Deep CustomJob é ilustrado pelo diagrama seguinte:

Pipeline para Wide & Deep CustomJob 

Os componentes do pipeline são:

  1. feature-transform-engine: realiza a engenharia de funcionalidades. Consulte o Feature Transform Engine para ver detalhes.
  2. split-materialized-data: divida os dados materializados num conjunto de preparação, num conjunto de avaliação e num conjunto de teste.

    Entrada:

    • Dados materializados materialized_data.

    Saída:

    • Divisão de preparação materializada: materialized_train_split.
    • Divisão de avaliação materializada materialized_eval_split.
    • Conjunto de teste materializado materialized_test_split.
  3. wide-and-deep-trainer: realize a preparação de modelos.

    Entrada:

    • Base da instância instance_baseline.
    • Esquema de preparação training_schema.
    • Transformar saída transform_output.
    • Divisão de comboio materializada materialized_train_split.
    • Divisão de avaliação materializada materialized_eval_split.
    • Conjunto de teste materializado materialized_test_split.

    Saída:

    • Modelo final
  4. automl-tabular-infra-validator: valide o modelo preparado enviando um pedido de previsão e verificando se é concluído com êxito.
  5. model-upload: carregar o modelo do contentor do Google Cloud Storage do utilizador para o Vertex AI como um modelo do Vertex AI.
  6. condition-run-evaluation-2: Opcional. Use o conjunto de testes para calcular as métricas de avaliação. Só é executada quando run_evaluation está definido como true.

Vista geral do pipeline e dos componentes do HyperparameterTuningJob amplo e profundo

O pipeline Wide & Deep HyperparameterTuningJob é ilustrado pelo diagrama seguinte:

Pipeline para Wide & Deep HyperparameterTuningJob 

  1. feature-transform-engine: realiza a engenharia de funcionalidades. Consulte o Feature Transform Engine para ver detalhes.
  2. split-materialized-data: divida os dados materializados num conjunto de preparação, num conjunto de avaliação e num conjunto de teste.

    Entrada:

    • Dados materializados materialized_data.

    Saída:

    • Divisão de preparação materializada: materialized_train_split.
    • Divisão de avaliação materializada materialized_eval_split.
    • Conjunto de teste materializado materialized_test_split.
  3. get-wide-and-deep-study-spec-parameters: gere a especificação do estudo com base numa configuração do pipeline de preparação. Se o utilizador fornecer valores para study_spec_parameters_override, use esses valores para substituir os valores da especificação do estudo.

    Entrada:

    • Substituição opcional dos parâmetros da especificação do estudo study_spec_parameters_override.

    Saída:

    • Lista final de hiperparâmetros e respetivos intervalos para a tarefa de hiperaperfeiçoamento dos parâmetros.
  4. wide-and-deep-hyperparameter-tuning-job: realize uma ou mais tentativas de hiperaperfeiçoamento dos parâmetros.

    Entrada:

    • Base da instância instance_baseline.
    • Esquema de preparação training_schema.
    • Transformar saída transform_output.
    • Divisão de comboio materializada materialized_train_split.
    • Divisão de avaliação materializada materialized_eval_split.
    • Conjunto de teste materializado materialized_test_split.
    • Lista de hiperparâmetros e respetivos intervalos para a tarefa de hiperaperfeiçoamento dos parâmetros.
  5. get-best-hyperparameter-tuning-job-trial: selecione o modelo da melhor tentativa de tarefa de aperfeiçoamento de hiperparâmetros do passo anterior.

    Saída:

    • Modelo final
  6. automl-tabular-infra-validator: valide o modelo preparado enviando um pedido de previsão e verificando se é concluído com êxito.
  7. model-upload: carregar o modelo do contentor do Google Cloud Storage do utilizador para o Vertex AI como um modelo do Vertex AI.
  8. condition-run-evaluation-2: Opcional. Use o conjunto de testes para calcular as métricas de avaliação. Só é executada quando run_evaluation está definido como true.

O que se segue?