El SDK de Vertex AI incluye varias clases que se usan al entrenar el modelo. La mayoría de las clases de entrenamiento se usan para crear, entrenar y devolver tu modelo. Usa HyperparameterTuningJob
para ajustar los hiperparámetros de la tarea de entrenamiento. Usa la
PipelineJob
para gestionar tu flujo de trabajo de aprendizaje automático (ML), de forma que puedas automatizar y monitorizar tus sistemas de aprendizaje automático.
En los temas siguientes se ofrece una descripción general de cada clase relacionada con el entrenamiento del SDK de Vertex AI.
Clases de entrenamiento de AutoML para datos estructurados
El SDK de Vertex AI incluye las siguientes clases, que se usan para entrenar un modelo de AutoML estructurado.
AutoMLForecastingTrainingJob
La clase AutoMLForecastingTrainingJob
usa el método de entrenamiento AutoML
para entrenar y ejecutar un modelo de previsión.
El método de entrenamiento AutoML
es una buena opción para la mayoría de los casos prácticos de previsión. Si tu caso práctico no se beneficia de Seq2seq
ni del método de entrenamiento Temporal fusion transformer
que ofrecen las clases SequenceToSequencePlusForecastingTrainingJob
y TemporalFusionTransformerForecastingTrainingJob
respectivamente, es probable que AutoML
sea el mejor método de entrenamiento para tus predicciones.
Para ver un ejemplo de código que muestra cómo usar AutoMLForecastingTrainingJob
, consulta el ejemplo de creación de una canalización de entrenamiento de previsión en GitHub.
AutoMLTabularTrainingJob
La clase AutoMLTabularTrainingJob
representa un trabajo que crea, entrena y devuelve un modelo tabular AutoML
.
Para obtener más información sobre el entrenamiento de modelos tabulares y Vertex AI, consulta Datos tabulares y Descripción general de los datos tabulares.
El siguiente fragmento de código de ejemplo muestra cómo puede usar el SDK de Vertex AI para crear y ejecutar un modelo tabular AutoML
:
dataset = aiplatform.TabularDataset('projects/my-project/location/us-central1/datasets/{DATASET_ID}')
job = aiplatform.AutoMLTabularTrainingJob(
display_name="train-automl",
optimization_prediction_type="regression",
optimization_objective="minimize-rmse",
)
model = job.run(
dataset=dataset,
target_column="target_column_name",
training_fraction_split=0.6,
validation_fraction_split=0.2,
test_fraction_split=0.2,
budget_milli_node_hours=1000,
model_display_name="my-automl-model",
disable_early_stopping=False,
)
SequenceToSequencePlusForecastingTrainingJob
La clase
SequenceToSequencePlusForecastingTrainingJob
usa el método de entrenamiento Seq2seq+
para entrenar y ejecutar un modelo de previsión.
El método de entrenamiento Seq2seq+
es una buena opción para experimentar. Su algoritmo es más sencillo y usa un espacio de búsqueda más pequeño que la opción AutoML
.
Seq2seq+
es una buena opción si quieres obtener resultados rápidos y tus conjuntos de datos son inferiores a 1 GB.
Para ver un ejemplo de código que muestra cómo usar SequenceToSequencePlusForecastingTrainingJob
, consulta el ejemplo de creación de una canalización de entrenamiento de previsión de Seq2seq en GitHub.
TemporalFusionTransformerForecastingTrainingJob
La clase
TemporalFusionTransformerForecastingTrainingJob
usa el método de entrenamiento Temporal Fusion Transformer (TFT) para entrenar y ejecutar un modelo de previsión. El método de entrenamiento de TFT implementa un modelo de red neuronal profunda (DNN) basado en la atención que usa una tarea de previsión multihorizonte para generar predicciones.
Para ver un código de muestra que te muestre cómo usar TemporalFusionTransformerForecastingTrainingJob
, consulta el ejemplo de creación de una canalización de entrenamiento de Temporal Fusion Transformer para previsiones en GitHub.
TimeSeriesDenseEncoderForecastingTrainingJob
La clase TimeSeriesDenseEncoderForecastingTrainingJob
usa el método de entrenamiento Time-series Dense Encoder (TiDE) para entrenar y ejecutar
un modelo de previsión. TiDE usa un perceptrón multicapa (MLP) para ofrecer la velocidad de previsión de los modelos lineales con covariables y dependencias no lineales.
Para obtener más información sobre TiDE, consulta Avances recientes en la previsión profunda a largo plazo y esta entrada de blog sobre TiDE.
Clases de entrenamiento de AutoML para datos sin estructurar
El SDK de Vertex AI incluye las siguientes clases para entrenar modelos de imágenes y vídeos sin estructurar:
AutoMLImageTrainingJob
Usa la clase AutoMLImageTrainingJob
para crear, entrenar y devolver un modelo de imagen. Para obtener más información sobre cómo trabajar con modelos de datos de imagen en Vertex AI, consulta Datos de imagen.
Para ver un ejemplo de cómo usar la clase AutoMLImageTrainingJob
, consulta el tutorial del cuaderno Clasificación de imágenes de AutoML.
AutoMLVideoTrainingJob
Usa la clase AutoMLVideoTrainingJob
para crear, entrenar y devolver un modelo de vídeo. Para obtener más información sobre cómo trabajar con modelos de datos de vídeo en Vertex AI, consulta Datos de vídeo.
Para ver un ejemplo de cómo usar la clase AutoMLVideoTrainingJob
, consulta el tutorial de la notebook de AutoML para entrenar un modelo de reconocimiento de acciones de vídeo para la predicción por lotes.
Clases de entrenamiento de datos personalizados
Puedes usar el SDK de Vertex AI para automatizar un flujo de trabajo de entrenamiento personalizado. Para obtener información sobre cómo usar Vertex AI para ejecutar aplicaciones de entrenamiento personalizado, consulta la descripción general del entrenamiento personalizado.
El SDK de Vertex AI incluye tres clases que crean una canalización de entrenamiento personalizada. Una canalización de entrenamiento acepta un conjunto de datos gestionado de Vertex AI de entrada que usa para entrenar un modelo. A continuación, devuelve el modelo una vez que se completa el trabajo de entrenamiento. Cada una de las tres clases de flujo de procesamiento de entrenamiento personalizado crea un flujo de procesamiento de entrenamiento de forma diferente.
CustomTrainingJob
usa una secuencia de comandos de Python,
CustomContainerTrainingJob
usa un contenedor personalizado y
CustomPythonPackageTrainingJob
usa un paquete de Python y un contenedor prediseñado.
La clase CustomJob
crea una tarea de entrenamiento personalizada, pero no es una canalización. A diferencia de una canalización de entrenamiento personalizada, la clase CustomJob
puede usar un conjunto de datos que no sea un conjunto de datos gestionado de Vertex AI para entrenar un modelo y no devuelve el modelo entrenado. Como la clase acepta diferentes tipos de conjuntos de datos y no devuelve un modelo entrenado, es menos automatizada y más flexible que una canalización de entrenamiento personalizada.
CustomContainerTrainingJob
Usa la clase CustomContainerTrainingJob
para usar un contenedor y lanzar una canalización de entrenamiento personalizada en Vertex AI.
Para ver un ejemplo de cómo usar la clase CustomContainerTrainingJob
, consulta el tutorial del cuaderno PyTorch Image Classification Multi-Node Distributed Data Parallel Training on GPU using Vertex AI Training with Custom Container.
CustomJob
Usa la clase CustomJob
para usar una secuencia de comandos que inicie un trabajo de entrenamiento personalizado en Vertex AI.
Un trabajo de entrenamiento es más flexible que una canalización de entrenamiento porque no tienes que cargar los datos en un conjunto de datos gestionado de Vertex AI y no se registra ninguna referencia a tu modelo una vez que se completa el trabajo de entrenamiento. Por ejemplo, puede usar la clase CustomJob
, su método from_local_script
y una secuencia de comandos para cargar un conjunto de datos de scikit-learn o TensorFlow. También puedes analizar o probar tu modelo entrenado antes de registrarlo en Vertex AI.
Para obtener más información sobre las tareas de entrenamiento personalizadas, incluidos los requisitos que debes cumplir antes de enviar una, lo que incluye una tarea personalizada y un ejemplo de código de Python, consulta Crear tareas de entrenamiento personalizadas.
Como CustomJob.run
no devuelve el modelo entrenado, debes usar una secuencia de comandos para escribir el artefacto del modelo en una ubicación, como un segmento de Cloud Storage. Para obtener más información, consulta Exportar un modelo de aprendizaje automático entrenado.
En el siguiente código de ejemplo se muestra cómo crear y ejecutar un trabajo personalizado con una especificación de grupo de trabajadores de ejemplo. El código escribe el modelo entrenado en un segmento de Cloud Storage llamado artifact-bucket.
# Create a worker pool spec that specifies a TensorFlow cassava dataset and
# includes the machine type and Docker image. The Google Cloud project ID
# is 'project-id'.
worker_pool_specs=[
{
"replica_count": 1,
"machine_spec": { "machine_type": "n1-standard-8",
"accelerator_type": "NVIDIA_TESLA_V100",
"accelerator_count": 1
},
"container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
},
{
"replica_count": 1,
"machine_spec": { "machine_type": "n1-standard-8",
"accelerator_type": "NVIDIA_TESLA_V100",
"accelerator_count": 1
},
"container_spec": {"image_uri": "gcr.io/{project-id}/multiworker:cassava"}
}
]
# Use the worker pool spec to create a custom training job. The custom training
# job artifacts are stored in the Cloud Storage bucket
# named 'artifact-bucket'.
your_custom_training_job = aiplatform.CustomJob(
display_name='multiworker-cassava-sdk',
worker_pool_specs=worker_pool_specs,
staging_bucket='gs://{artifact-bucket}')
# Run the training job. This method doesn't return the trained model.
my_multiworker_job.run()
CustomPythonPackageTrainingJob
Usa la clase
CustomPythonPackageTrainingJob
para usar un paquete de Python y lanzar una canalización de entrenamiento personalizada en Vertex AI.
Para ver un ejemplo de cómo usar la clase CustomPythonPackageTrainingJob
, consulta el tutorial del cuaderno Entrenamiento personalizado con el paquete de Python, el conjunto de datos de texto gestionado y el contenedor de servicio de TensorFlow.
CustomTrainingJob
Usa la clase CustomTrainingJob
para lanzar un flujo de procesamiento de entrenamiento personalizado en Vertex AI con una secuencia de comandos.
Para ver un ejemplo de cómo usar la clase CustomTrainingJob
, consulta el tutorial del cuaderno Modelo de clasificación de imágenes de entrenamiento personalizado para la predicción online con interpretabilidad.
Clase de entrenamiento de hiperparámetros
El SDK de Vertex AI incluye una clase para el ajuste de hiperparámetros. El ajuste de hiperparámetros maximiza la precisión predictiva de tu modelo optimizando las variables (conocidas como hiperparámetros) que rigen el proceso de entrenamiento. Para obtener más información, consulta la información general sobre el ajuste de hiperparámetros.
HyperparameterTuningJob
Usa la clase HyperparameterTuningJob
para automatizar el ajuste de hiperparámetros en una aplicación de entrenamiento.
Para saber cómo usar la clase HyperparameterTuningJob
para crear y ajustar un modelo entrenado personalizado, consulta el tutorial Ajuste de hiperparámetros en GitHub.
Para saber cómo usar la clase HyperparameterTuningJob
para ejecutar una tarea de ajuste de hiperparámetros de Vertex AI en un modelo de TensorFlow, consulta el tutorial Ejecutar el ajuste de hiperparámetros en un modelo de TensorFlow en GitHub.
Clase de entrenamiento de flujo de procesamiento
Una canalización orquesta tu flujo de trabajo de aprendizaje automático en Vertex AI. Puedes usar una canalización para automatizar, monitorizar y controlar tus sistemas de aprendizaje automático. Para obtener más información sobre las pipelines en Vertex AI, consulta la introducción a Vertex AI Pipelines.
PipelineJob
Una instancia de la clase PipelineJob
representa un flujo de procesamiento de Vertex AI.
Hay varios cuadernos de tutoriales que muestran cómo usar la clase PipelineJob
:
Para saber cómo ejecutar una canalización de Kubeflow Pipelines (KFP), consulta el tutorial Estructuras de control de canalizaciones con el SDK de KFP en GitHub.
Para saber cómo entrenar un modelo de clasificación tabular de scikit-learn y crear una tarea de predicción por lotes con una canalización de Vertex AI, consulta el tutorial Entrenamiento y predicción por lotes con BigQuery como origen y destino de un modelo de clasificación tabular personalizado en GitHub.
Para saber cómo crear un modelo de clasificación de imágenes de AutoML y usar una canalización de Vertex AI, consulta el tutorial Canalizaciones de clasificación de imágenes de AutoML con google-cloud-pipeline-components en GitHub.
Para ver más cuadernos de tutoriales, consulta Tutoriales de cuadernos de Vertex AI.
Siguientes pasos
- Consulta información sobre el SDK de Vertex AI.