Clases de seguimiento

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:

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:

  1. La forma preferida de crear un Experiment es mediante la especificación de un nombre para tu experimento como parámetro cuando llamas a aiplatform.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)
    
  2. También puedes crear un Experiment si llamas a aiplatform.Experiment.create. aiplatform.Experiment.create crea el recurso Experiment, pero no lo establece en un entorno global. Debido a esto, no puedes ejecutar el experimento con aiplatform.start_run. En el siguiente código de muestra, se indica cómo usar aiplatform.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_name=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:

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?