El SDK de Vertex AI incluye varias clases que puedes usar cuando entrenas tu modelo. La mayoría de las clases de entrenamiento se usan para crear, entrenar y mostrar tu modelo. Usa
HyperparameterTuningJob para ajustar los hiperparámetros del trabajo de entrenamiento. Usa el
PipelineJob para administrar el flujo de trabajo de aprendizaje automático (AA)
de modo que puedas automatizar y supervisar tus sistemas de AA.
En los siguientes temas, se proporciona una descripción de alto nivel de cada clase relacionada con el entrenamiento en el 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 estructurado de AutoML.
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 de uso de previsión. Si
tu caso de uso no se beneficia de Seq2seq ni del
Temporal fusion transformer método de entrenamiento que ofrecen las clases
SequenceToSequencePlusForecastingTrainingJob
y
TemporalFusionTransformerForecastingTrainingJob
, respectivamente, entonces AutoML es probable que sea el mejor método de entrenamiento para las predicciones de previsión.
Para ver un código de muestra en el que se muestra cómo usar
AutoMLForecastingTrainingJob, consulta la muestra Crea una previsión de una canalización de entrenamiento en GitHub.
AutoMLTabularTrainingJob
La clase AutoMLTabularTrainingJob
representa un trabajo que crea, entrena y muestra un modelo tabular AutoML.
Para obtener más información sobre el entrenamiento de modelos tabulares y Gemini Enterprise Agent Platform, consulta
Datos tabulares y Descripción general de los datos tabulares.
En el siguiente fragmento de código de muestra, se indica cómo puedes usar el SDK de Vertex AI para crear y ejecutar un modelo tabular de 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 simple y usa un espacio de búsqueda más pequeño que la opción AutoML.
Seq2seq+ es una buena opción si deseas obtener resultados rápidos y tus conjuntos de datos tienen menos de 1 GB.
Para ver un código de muestra que indica cómo usar SequenceToSequencePlusForecastingTrainingJob, consulta la muestra Seq2seq Crea una previsión de canalización de entrenamiento en GitHub.
TemporalFusionTransformerForecastingTrainingJob
La clase TemporalFusionTransformerForecastingTrainingJob usa el método de entrenamiento del Transformador temporal de fusión (TFT) para entrenar y ejecutar un modelo de previsión. El método de entrenamiento del TFT implementa un modelo de red neuronal profunda (DNN) basado en la atención que usa una tarea de previsión de varios horizontes para producir predicciones.
Para ver un código de muestra que indica cómo usar TemporalFusionTransformerForecastingTrainingJob, consulta la muestra Crea un transformador de fusión temporal para la predicción de canalización de entrenamiento en GitHub.
TimeSeriesDenseEncoderForecastingTrainingJob
La clase TimeSeriesDenseEncoderForecastingTrainingJob usa el método de entrenamiento del codificador denso de series temporales (TiDE) para entrenar y ejecutar un modelo de previsión. TiDE usa un perceptrón de varias capas (MLP) para proporcionar la velocidad de previsión de modelos lineales con variables y variables no lineales.
Para obtener más información sobre TiDE, consulta Progresos recientes en la previsión a largo plazo y esta entrada de blog de Tide.
Clases de entrenamiento de AutoML para datos no estructurados
El SDK de Vertex AI incluye las siguientes clases para entrenar modelos de imagen no estructurados:
AutoMLImageTrainingJob
Usa la clase AutoMLImageTrainingJob para
crear, entrenar y mostrar un modelo de imagen. Para obtener más información sobre cómo trabajar
con modelos de datos de imagen en Gemini Enterprise Agent Platform, consulta
Datos de imagen.
Para ver un ejemplo de cómo usar la
AutoMLImageTrainingJob clase, consulta el
instructivo del notebook Clasificación de imágenes de AutoML.
Clases de entrenamiento de datos personalizadas
Puedes usar el SDK de Vertex AI para automatizar un flujo de trabajo de entrenamiento personalizado. Si deseas obtener información sobre cómo usar Gemini Enterprise Agent Platform para ejecutar aplicaciones de entrenamiento personalizadas, consulta 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 administrado de Gemini Enterprise Agent Platform que se usa para entrenar un modelo. A continuación, muestra el modelo después de que se completa el trabajo de entrenamiento. Cada una de las tres clases de canalizaciones de entrenamiento personalizadas crea una canalización de entrenamiento de manera diferente.
CustomTrainingJob usa una secuencia de comandos de Python,
CustomContainerTrainingJob usa un contenedor personalizado y CustomPythonPackageTrainingJob usa un paquete de Python y un contenedor compilado previamente.
La clase CustomJob crea un trabajo de entrenamiento personalizado
pero no es una canalización. A diferencia de una canalización de entrenamiento personalizada, la
CustomJob clase puede usar un conjunto de datos que no sea un
conjunto de datos administrado de Gemini Enterprise Agent Platform para entrenar un modelo y no muestra el
modelo entrenado. Debido a que la clase acepta diferentes tipos de conjuntos de datos y no muestra un modelo entrenado, es menos automatizado y más flexible que una canalización de entrenamiento personalizada.
CustomContainerTrainingJob
Usa la CustomContainerTrainingJob
clase para usar un contenedor a fin de iniciar una canalización de entrenamiento personalizada en Gemini Enterprise Agent Platform.
Para ver un ejemplo de cómo usar la
CustomContainerTrainingJob clase,
consulta el instructivo del notebook Entrenamiento paralelo de datos distribuidos
de nodos múltiples de clasificación de imágenes de PyTorch en GPU mediante el entrenamiento de Gemini Enterprise Agent Platform con contenedor personalizado.
CustomJob
Usa la clase CustomJob para usar una secuencia de comandos a fin de iniciar un
trabajo de entrenamiento personalizado en Gemini Enterprise Agent Platform.
Un trabajo de entrenamiento es más flexible que una canalización de entrenamiento porque no estás restringido a cargar tus datos en un conjunto de datos administrado de Gemini Enterprise Agent Platform y una referencia a tu modelo no se registra después de que se completa el trabajo de entrenamiento. Por
ejemplo, recomendamos usar la clase CustomJob, su
from_local_script
método y una secuencia de comandos para cargar un conjunto de datos de
scikit-learn o
TensorFlow. O bien, es posible que desees analizar o probar tu modelo entrenado antes de registrarlo en Gemini Enterprise Agent Platform.
Para obtener más información sobre los trabajos de entrenamiento personalizados, incluidos los requisitos antes de enviar un trabajo de entrenamiento personalizado, lo que incluye un trabajo personalizado y una muestra de código de Python, consulta Crea trabajos de entrenamiento personalizados.
Debido a que CustomJob.run no muestra el modelo entrenado, debes usar una secuencia de comandos para escribir el artefacto del modelo en una ubicación, como un bucket de Cloud Storage. Para obtener más información, consulta Exporta un modelo entrenado de AA.
El siguiente código de muestra indica cómo crear y ejecutar un trabajo personalizado mediante una especificación de grupo de trabajadores de muestra. El código escribe el modelo entrenado en un bucket 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
CustomPythonPackageTrainingJob
clase para usar un paquete de Python a fin de iniciar una canalización de entrenamiento personalizada en
Gemini Enterprise Agent Platform.
Para ver un ejemplo de cómo usar la
CustomPythonPackageTrainingJob
clase, consulta el instructivo del notebook Entrenamiento personalizado con un paquete de Python, el conjunto de datos de texto administrado
y el contenedor de entrega de TensorFlow.
CustomTrainingJob
Usa la clase CustomTrainingJob para iniciar una
canalización de entrenamiento personalizada en Gemini Enterprise Agent Platform con una secuencia de comandos.
Si deseas ver un ejemplo de cómo usar la
CustomTrainingJob clase, consulta el instructivo en
el
notebook de Entrenamiento personalizado del modelo de clasificación de imágenes para la predicción en línea con
explicabilidad.
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 mediante la optimización de variables (conocidas como hiperparámetros) que rigen el proceso de entrenamiento. Para obtener más información, consulta Descripción general del ajuste de hiperparámetros.
HyperparameterTuningJob
Usa la clase HyperparameterTuningJob
para automatizar el ajuste de hiperparámetros en una aplicación de entrenamiento.
Para obtener información sobre cómo usar la clase HyperparameterTuningJob y crear y ajustar un modelo entrenado personalizado, consulta el instructivo
Ajuste de hiperparámetros en GitHub.
Si deseas obtener información sobre cómo usar la clase HyperparameterTuningJob a fin de ejecutar un trabajo de ajuste de hiperparámetros de Gemini Enterprise Agent Platform para un modelo de TensorFlow, consulta el instructivo
Ejecuta el ajuste de hiperparámetros para un modelo de TensorFlow en GitHub.
Clase de entrenamiento de canalización
Una canalización organiza tu flujo de trabajo del AA en Gemini Enterprise Agent Platform. Puedes usar una canalización para automatizar, supervisar y controlar tus sistemas de aprendizaje automático. Para obtener más información sobre las canalizaciones en Gemini Enterprise Agent Platform, consulta Introducción a las canalizaciones de Agent Platform.
PipelineJob
Una instancia de la clase PipelineJob representa una canalización de Gemini Enterprise Agent Platform.
Hay varios notebooks de instructivo que demuestran cómo usar la PipelineJob clase:
Para obtener información sobre cómo ejecutar una canalización de Kubeflow Pipelines (KFP), consulta el instructivo Estructuras de control de canalización con el SDK de KFP en GitHub.
Para aprender a entrenar un modelo de clasificación tabular scikit-learn y crear un trabajo de predicción por lotes con una canalización de Gemini Enterprise Agent Platform, consulta el instructivo Entrenamiento y predicción por lotes con fuente y destino de BigQuery para un modelo de clasificación tabular personalizado en GitHub.
Para aprender a compilar un modelo de clasificación de imágenes de AutoML y usar una canalización de Gemini Enterprise Agent Platform, consulta el instructivo Canalizaciones de clasificación de imágenes de AutoML con google-cloud-pipeline-components en GitHub.
Para obtener más notebooks de instructivos, consulta Instructivos de notebooks de Gemini Enterprise Agent Platform.
¿Qué sigue?
- Obtén más información sobre el SDK de Vertex AI.