Entrena un modelo con TabNet

En esta página, se muestra cómo entrenar un modelo de clasificación o regresión a partir de un conjunto de datos tabular con el flujo de trabajo tabular para TabNet.

Hay dos versiones disponibles del flujo de trabajo tabular para TabNet:

  • HyperparameterTuningJob busca el mejor conjunto de valores de hiperparámetros para usar en el entrenamiento de modelos.
  • CustomJob te permite especificar los valores de hiperparámetros para usar en el entrenamiento de modelos. Si sabes con exactitud qué valores de hiperparámetros necesitas, puedes especificarlos en lugar de buscarlos y ahorrar en recursos de entrenamiento.

Para obtener información sobre las cuentas de servicio que usa este flujo de trabajo, consulta Cuentas de servicio para flujos de trabajo tabulares.

APIs de flujo de trabajo

En este flujo de trabajo, se usan las siguientes APIs:

  • Vertex AI
  • Dataflow
  • Compute Engine
  • Cloud Storage

Entrena un modelo con HyperparameterTuningJob

En el siguiente código de muestra, se ilustra cómo puedes ejecutar una canalización HyperparameterTuningJob:

pipeline_job = aiplatform.PipelineJob(
    ...
    template_path=template_path,
    parameter_values=parameter_values,
    ...
)
pipeline_job.run(service_account=SERVICE_ACCOUNT)

El parámetro service_account opcional en pipeline_job.run() te permite configurar la cuenta de servicio de Vertex AI Pipelines en una cuenta que elijas.

La canalización y los valores de los parámetros se definen mediante la siguiente función. Los datos de entrenamiento pueden ser un archivo CSV en Cloud Storage o una tabla en BigQuery.

template_path, parameter_values =  automl_tabular_utils.get_tabnet_hyperparameter_tuning_job_pipeline_and_parameters(...)

El siguiente es un subconjunto de parámetros get_tabnet_hyperparameter_tuning_job_pipeline_and_parameters:

Nombre del parámetro Tipo Definición
data_source_csv_filenames String Un URI para un archivo CSV almacenado en Cloud Storage.
data_source_bigquery_table_path String Un URI para una tabla de BigQuery.
dataflow_service_account String Cuenta de servicio personalizada para ejecutar trabajos de Dataflow (opcional). El trabajo de Dataflow se puede configurar para usar IP privadas y una subred de VPC específica. Este parámetro actúa como una anulación para la cuenta de servicio predeterminada del trabajador de Dataflow.
study_spec_parameters_override List[Dict[String, Any]] Una anulación para ajustar hiperparámetros (opcional) Este parámetro puede estar vacío o contener uno o más de los hiperparámetros posibles. Si no se configura un valor de hiperparámetro, Vertex AI usa el rango de ajuste predeterminado para el hiperparámetro.

Si deseas configurar los hiperparámetros mediante el parámetro study_spec_parameters_override, puedes usar la función auxiliar de Vertex AI get_tabnet_study_spec_parameters_override. La función tiene las siguientes entradas:

  • dataset_size_bucket: Un bucket para el tamaño del conjunto de datos
    • “small”: < 1 millón de filas
    • “medium”: de 1 millón a 100 millones de filas
    • “large”: > 100 millones de filas
  • training_budget_bucket: Un bucket para el presupuesto de entrenamiento
    • “small”: < $600
    • “medium”: de $600 a $2400
    • “large”: > $2400
  • prediction_type: El tipo de predicción deseado

La función get_tabnet_study_spec_parameters_override muestra una lista de hiperparámetros y rangos.

El siguiente es un ejemplo de cómo se puede usar la función get_tabnet_study_spec_parameters_override:

study_spec_parameters_override = automl_tabular_utils.get_tabnet_study_spec_parameters_override(
    dataset_size_bucket="small",
    prediction_type="classification",
    training_budget_bucket="small",
)

Entrena un modelo con CustomJob

En el siguiente código de muestra, se ilustra cómo puedes ejecutar una canalización CustomJob:

pipeline_job = aiplatform.PipelineJob(
    ...
    template_path=template_path,
    parameter_values=parameter_values,
    ...
)
pipeline_job.run(service_account=SERVICE_ACCOUNT)

El parámetro service_account opcional en pipeline_job.run() te permite configurar la cuenta de servicio de Vertex AI Pipelines en una cuenta que elijas.

La canalización y los valores de los parámetros se definen mediante la siguiente función. Los datos de entrenamiento pueden ser un archivo CSV en Cloud Storage o una tabla en BigQuery.

template_path, parameter_values = automl_tabular_utils.get_tabnet_trainer_pipeline_and_parameters(...)

El siguiente es un subconjunto de parámetros get_tabnet_trainer_pipeline_and_parameters:

Nombre del parámetro Tipo Definición
data_source_csv_filenames String Un URI para un archivo CSV almacenado en Cloud Storage.
data_source_bigquery_table_path String Un URI para una tabla de BigQuery.
dataflow_service_account String Cuenta de servicio personalizada para ejecutar trabajos de Dataflow (opcional). El trabajo de Dataflow se puede configurar para usar IP privadas y una subred de VPC específica. Este parámetro actúa como una anulación para la cuenta de servicio predeterminada del trabajador de Dataflow.

¿Qué sigue?

Una vez que estés listo para hacer predicciones con tu modelo de clasificación o regresión, tienes dos opciones: