El SDK de Vertex AI para Python incluye clases que ayudan con la visualización, las mediciones y el seguimiento. Estas clases se pueden agrupar en tres tipos:
- Clases que usan metadatos para realizar un seguimiento de los recursos de tu flujo de trabajo de aprendizaje automático (AA)
- Clases que se usan para Vertex AI Experiments
- Clases que se usan para un TensorBoard de Vertex AI
En los siguientes temas, se proporciona una descripción general de las clases relacionadas con el seguimiento y la supervisión de un flujo de trabajo de AA en el SDK de Vertex AI para Python.
Clases de metadatos
Puedes usar el SDK de Vertex AI para Python a fin de crear Vertex ML Metadata para ayudarte a hacer un seguimiento y analizar los metadatos en tu flujo de trabajo de AA. Para obtener más información, consulta Introducción a Vertex ML Metadata.
Artifact
La clase Artifact
representa los metadatos en un artefacto en Vertex AI. Un artefacto es una entidad discreta o un dato que produce un flujo de trabajo de AA. Los ejemplos de un artefacto son un conjunto de datos, un modelo y un archivo de entrada.
Para obtener más información, consulta Realiza un seguimiento de las ejecuciones y artefactos.
Cuando creas un recurso Artifact
, debes especificar su esquema. Cada tipo de artefacto tiene un esquema único. Por ejemplo, el esquema system.Dataset
representa un conjunto de datos y el esquema system.Metrics
representa métricas de evaluación. Para obtener más información, consulta Cómo usar esquemas del sistema.
En el siguiente código de muestra, se indica cómo crear un recurso Artifact
que represente un modelo:
model_artifact = aiplatform.Artifact.create(
schema_title="system.Model",
display_name=PREPROCESSED_DATASET_NAME,
uri=PREPROCESSED_DATASET_URI,
Execution
La clase Execution
representa los metadatos en una ejecución en Vertex AI. Una ejecución es un paso en un flujo de trabajo de AA.
Algunos ejemplos de una ejecución son el procesamiento de datos, el entrenamiento y la evaluación de modelos. Una ejecución puede consumir artefactos, como un conjunto de datos, y producir un artefacto, como un modelo.
Usa aiplatform.start_execution
para crear un recurso Execution
. Después de crear un recurso Execution
, usa el mismo método aiplatform.start_execution
con su parámetro resume
establecido en True
para reanudarlo.
En el siguiente código de muestra, se ilustra cómo crear un recurso Execution
:
with aiplatform.start_execution(schema_title='system.ContainerExecution',
display_name='trainer') as execution:
execution.assign_input_artifacts([my_artifact])
model = aiplatform.Artifact.create(uri='gs://my-uri', schema_title='system.Model')
execution.assign_output_artifacts([model])
Clases de Vertex AI Experiments
Puedes usar el SDK de Vertex AI para Python a fin de crear y ejecutar Vertex AI Experiments. Usa Vertex AI Experiments para realizar un seguimiento de las métricas y los parámetros registrados a fin de ayudarte a analizar y optimizar tu flujo de trabajo de AA. Para obtener más información, consulta Introducción a Vertex AI Experiments.
Para obtener más información sobre el uso de las clases Experiment
y ExperimentRun
, prueba uno de los siguientes instructivos:
- Compila el linaje de Vertex AI Experiment para el entrenamiento personalizado.
- Haz un seguimiento de los parámetros y las métricas de los modelos entrenados de forma local
- Compara ejecuciones de canalizaciones con Vertex AI Experiments
- Comienza a usar Vertex AI Experiments
Experiment
La clase Experiment
representa un experimento en Vertex AI. Usa un experimento para analizar las ejecuciones de experimentos y las ejecuciones de canalizaciones con distintos parámetros de configuración, como varios artefactos de entrada e hiperparámetros.
Existen dos maneras de crear un recurso Experiment
:
La forma preferida de crear un
Experiment
es mediante la especificación de un nombre para tu experimento como parámetro cuando llamas aaiplatform.init
:# In a real world scenario it's likely you would specify more parameters # when you call aiplatform.init. This sample shows only how to use the # parameter used to create an Experiment. # Specify a name for the experiment EXPERIMENT_NAME = "your-experiment-name" # Create the experiment aiplatform.init(experiment=EXPERIMENT_NAME)
También puedes crear un
Experiment
si llamas aaiplatform.Experiment.create
.aiplatform.Experiment.create
crea el recursoExperiment
, pero no lo establece en un entorno global. Debido a esto, no puedes ejecutar el experimento conaiplatform.start_run
. En el siguiente código de muestra, se indica cómo usaraiplatform.Experiment.create
para crear un experimento y, luego, ejecutarlo:# Specify a name for the experiment EXPERIMENT_NAME = "your-experiment-name" EXPERIMENT_RUN_NAME = "your-run" # Create the experiment experiment = aiplatform.Experiment.create(experiment_name=EXPERIMENT_NAME) experiment_run = aiplatform.ExperimentRun.create(EXPERIMENT_RUN_NAME, experiment=EXPERIMENT_NAME)
ExperimentRun
La clase ExperimentRun
representa una ejecución de un experimento.
En el siguiente código de muestra, se indica cómo crear y, luego, iniciar una ejecución del experimento. Luego, úsala para obtener información sobre el experimento. Para borrar la ejecución del experimento, obtén una referencia a la instancia ExperimentRun
y llama a su método delete
.
# Specify your project name, location, experiment name, and run name
PROJECT_NAME = "my-project"
LOCATION = "us-central1"
EXPERIMENT_NAME = "experiment-1"
RUN_NAME = "run-1"
# Create the experiment to run
aiplatform.init(experiment=EXPERIMENT_NAME,
project=PROJECT_NAME,
location=LOCATION)
# Create and run an ExperimentRun resource. Next, you can use it to get
# information about your experiment. For example, you can log parameters and
# metrics with specified key-value pairs.
with aiplatform.start_run(RUN_NAME):
aiplatform.log_params({'learning_rate': 0.1, 'dropout_rate': 0.2})
aiplatform.log_metrics({'accuracy': 0.9, 'recall': 0.8})
# Get a reference to the ExperimentRun resource, get the parameters logged to
# the run, get the summary metrics logged to the run, then delete it.
with aiplatform.start_run(RUN_NAME, resume=True) as run:
run.get_params()
run.get_metrics()
run.delete()
Clases de Vertex AI TensorBoard
El SDK de Vertex AI para Python incluye clases que funcionan con una versión administrada de Vertex AI TensorBoard de código abierto. Vertex AI TensorBoard es una herramienta que se usa para supervisar las mediciones y visualizaciones durante el flujo de trabajo de AA. Para obtener más información, consulta Comienza a usar Vertex AI TensorBoard.
A fin de obtener más información sobre el uso del SDK de Vertex AI para Python a fin de trabajar con TensorBoard de Vertex AI, prueba uno de los siguientes instructivos de notebook:
- Rendimiento del entrenamiento de modelos de perfil con Cloud Profiler
- Entrenamiento personalizado de Vertex AI TensorBoard con contenedor personalizado.
- Entrenamiento personalizado de Vertex AI TensorBoard con contenedor compilado previamente
- Ajuste de hiperparámetros de Vertex AI TensorBoard con el panel de HParams
- Genera un perfil del rendimiento de entrenamiento de un modelo con Cloud Profiler
- Genera perfiles del rendimiento del entrenamiento de un modelo con Cloud Profiler en entrenamiento personalizado con un contenedor compilado previamente
Tensorboard
La clase Tensorboard
representa un recurso administrado que almacena experimentos de Vertex AI TensorBoard. Debes crear una instancia Tensorboard
antes de que se puedan visualizar los experimentos. Puedes crear más de una instancia Tensorboard
en un proyecto de Google Cloud.
En el siguiente código de muestra, se indica cómo crear una instancia de Tensorboard
:
# Specify your project name, location, and the name of your Tensorboard
PROJECT_NAME = "my-project"
LOCATION = "us-central1"
TENSORBOARD_NAME = "my-tensorboard"
aiplatform.init(project=PROJECT_NAME, location=LOCATION)
tensorboard = aiplatform.Tensorboard.create(
display_name=TENSORBOARD_NAME,
project=PROJECT_NAME,
location=LOCATION,
)
TensorboardExperiment
El TensorboardExperiment
representa un grupo de objetos TensorboardRun
. Una instancia de TensorboardRun
representa los resultados de un trabajo de entrenamiento que se ejecuta en un Tensorboard.
TensorboardRun
Una instancia de la clase TensorboardRun
se asigna a un trabajo de entrenamiento que se ejecuta en un Tensorboard con un conjunto específico de hiperparámetros, una definición del modelo, un conjunto de datos y más.
TensorboardTimeSeries
La clase TensorboardTimeSeries
representa una serie producida en ejecuciones de entrenamiento.
¿Qué sigue?
- Obtén más información sobre el SDK de Vertex AI.