En este documento se ofrece una descripción general del flujo de trabajo tabular para las canalizaciones y los componentes de Wide & Deep. Para entrenar un modelo con Wide & Deep, consulta Entrenar un modelo con Wide & Deep.
Wide & Deep entrena conjuntamente modelos lineales amplios y redes neuronales profundas. Combina las ventajas de la memorización y la generalización. En algunos experimentos online, los resultados mostraron que Wide & Deep aumentó significativamente las adquisiciones de aplicaciones de Google Store en comparación con los modelos de solo ancho y solo profundidad.
Ventajas
- Integrado con Vertex AI. El modelo entrenado es un modelo de Vertex AI. Puedes ejecutar inferencias por lotes o desplegar el modelo para hacer inferencias online de inmediato.
Wide & Deep en Vertex AI Pipelines
Tabular Workflow for Wide & Deep es una instancia gestionada de Vertex AI Pipelines.
Vertex AI Pipelines es un servicio sin servidor que ejecuta flujos de procesamiento de Kubeflow. Puedes usar las pipelines para automatizar y monitorizar tus tareas de aprendizaje automático y preparación de datos. Cada paso de una pipeline realiza una parte del flujo de trabajo de la canalización. Por ejemplo, una canalización puede incluir pasos para dividir datos, transformar tipos de datos y entrenar un modelo. Como los pasos son instancias de componentes de flujo de trabajo, tienen entradas, salidas y una imagen de contenedor. Las entradas de los pasos se pueden definir a partir de las entradas de la canalización o pueden depender de la salida de otros pasos de la canalización. Estas dependencias definen el flujo de trabajo de la canalización como un grafo acíclico dirigido.
Hay dos versiones del flujo de trabajo tabular para modelos profundos y amplios:
- HyperparameterTuningJob busca el mejor conjunto de valores de hiperparámetros que se puede usar para entrenar un modelo.
- CustomJob te permite especificar los valores de los hiperparámetros que se usarán para entrenar el modelo. Si sabes exactamente qué valores de hiperparámetros necesitas, especifícalos en lugar de buscarlos y ahorra recursos de entrenamiento.
Descripción general de la canalización y los componentes de CustomJob Wide & Deep
El siguiente diagrama muestra el flujo de procesamiento de Wide & Deep CustomJob:
Los componentes de la canalización son los siguientes:
- feature-transform-engine: realiza la ingeniería de funciones. Para obtener más información, consulta Feature Transform Engine.
- split-materialized-data:
divide los datos materializados en un conjunto de entrenamiento, un conjunto de evaluación y un conjunto de prueba.
Objetivo:
- Datos materializados
materialized_data
.
Resultado:
- División de entrenamiento materializada
materialized_train_split
. - División de la evaluación materializada
materialized_eval_split
. - Conjunto de pruebas materializado
materialized_test_split
.
- Datos materializados
- wide-and-deep-trainer
realiza el entrenamiento del modelo.
Objetivo:
- Valor de referencia de la instancia
instance_baseline
. - Esquema de entrenamiento
training_schema
. - Transformar salida
transform_output
. - División del tren materializada
materialized_train_split
. - División de la evaluación materializada
materialized_eval_split
. - Conjunto de pruebas materializado
materialized_test_split
.
Resultado:
- Modelo final
- Valor de referencia de la instancia
- automl-tabular-infra-validator valida el modelo entrenado enviando una solicitud de predicción y comprobando si se completa correctamente.
- model-upload: sube el modelo del bucket de Cloud Storage del usuario a Vertex AI como modelo de Vertex AI.
- condition-run-evaluation-2:
Opcional. Usa el conjunto de prueba para calcular las métricas de evaluación. Solo se ejecuta cuando
run_evaluation
se define comotrue
.
Descripción general de la canalización y los componentes de Wide & Deep HyperparameterTuningJob
El siguiente diagrama muestra la canalización Wide & Deep HyperparameterTuningJob:
- feature-transform-engine: realiza la ingeniería de funciones. Para obtener más información, consulta Feature Transform Engine.
- split-materialized-data:
divide los datos materializados en un conjunto de entrenamiento, un conjunto de evaluación y un conjunto de prueba.
Objetivo:
- Datos materializados
materialized_data
.
Resultado:
- División de entrenamiento materializada
materialized_train_split
. - División de la evaluación materializada
materialized_eval_split
. - Conjunto de pruebas materializado
materialized_test_split
.
- Datos materializados
- get-wide-and-deep-study-spec-parameters
genera la especificación del estudio a partir de una configuración de la canalización de entrenamiento. Si el usuario proporciona valores para
study_spec_parameters_override
, úsalos para anular los valores de la especificación del estudio.Objetivo:
- Anulación opcional de los parámetros de especificación del estudio
study_spec_parameters_override
.
Resultado:
- Lista final de hiperparámetros y sus intervalos para la tarea de ajuste de hiperparámetros.
- Anulación opcional de los parámetros de especificación del estudio
- wide-and-deep-hyperparameter-tuning-job:
realiza una o varias pruebas de ajuste de hiperparámetros.
Objetivo:
- Valor de referencia de la instancia
instance_baseline
. - Esquema de entrenamiento
training_schema
. - Transformar salida
transform_output
. - División del tren materializada
materialized_train_split
. - División de la evaluación materializada
materialized_eval_split
. - Conjunto de pruebas materializado
materialized_test_split
. - Lista de hiperparámetros y sus intervalos para la tarea de ajuste de hiperparámetros.
- Valor de referencia de la instancia
- get-best-hyperparameter-tuning-job-trial
selecciona el modelo de la mejor prueba de tarea de ajuste de hiperparámetros del paso anterior.
Resultado:
- Modelo final
- automl-tabular-infra-validator valida el modelo entrenado enviando una solicitud de predicción y comprobando si se completa correctamente.
- model-upload: sube el modelo del bucket de Cloud Storage del usuario a Vertex AI como modelo de Vertex AI.
- condition-run-evaluation-2:
Opcional. Usa el conjunto de prueba para calcular las métricas de evaluación. Solo se ejecuta cuando
run_evaluation
se define comotrue
.