Classes de suivi

Le SDK Vertex AI pour Python inclut des classes qui facilitent la visualisation, les mesures et le suivi. Ces classes peuvent être regroupées en trois types :

  • Classes utilisant des métadonnées pour assurer le suivi des ressources de votre workflow de machine learning (ML)
  • Classes utilisées pour les tests Vertex AI
  • Classes utilisées pour un TensorBoard Vertex AI

Les articles suivants présentent les classes associées au suivi et à la surveillance d'un workflow de ML dans le SDK Vertex AI pour Python.

Classes de métadonnées

Vous pouvez utiliser le SDK Vertex AI pour Python pour créer des métadonnées Vertex ML Metadata afin de vous aider à suivre et à analyser les métadonnées dans votre workflow de ML. Pour plus d'informations, consultez la Présentation de Vertex ML Metadata.

Artifact

La classe Artifact représente les métadonnées d'un artefact dans Vertex AI. Un artefact est une entité distincte ou une donnée produite par un workflow de ML. Il peut s'agir par exemple d'un ensemble de données, d'un modèle ou d'un fichier d'entrée. Pour en savoir plus, consultez la section Suivre les exécutions et les artefacts.

Lorsque vous créez une ressource Artifact, vous devez spécifier son schéma. Chaque type d'artefact possède un schéma unique. Par exemple, le schéma system.Dataset représente un ensemble de données et le schéma system.Metrics représente les métriques d'évaluation. Pour en savoir plus, consultez la section Utiliser des schémas système.

L'exemple de code suivant montre comment créer une ressource Artifact qui représente un modèle :

model_artifact = aiplatform.Artifact.create(
        schema_title="system.Model",
        display_name=PREPROCESSED_DATASET_NAME,
        uri=PREPROCESSED_DATASET_URI,

Execution

La classe Execution représente les métadonnées d'une exécution dans Vertex AI. Une exécution est une étape d'un workflow de ML. Il peut s'agir par exemple du traitement des données, de l'entraînement ou de l'évaluation d'un modèle. Une exécution peut consommer des artefacts, tels qu'un ensemble de données, et produire un artefact, tel qu'un modèle.

Utilisez aiplatform.start_execution pour créer une ressource Execution. Après avoir créé une ressource Execution, utilisez la même méthode aiplatform.start_execution avec son paramètre resume défini sur True pour reprendre l'exécution.

L'exemple de code suivant montre comment créer une ressource 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])

Classes de tests Vertex AI

Vous pouvez utiliser le SDK Vertex AI pour Python pour créer et exécuter des tests Vertex AI. Utilisez les tests Vertex AI pour assurer le suivi des métriques et des paramètres enregistrés afin de vous aider à analyser et à optimiser votre workflow de ML. Pour en savoir plus, consultez la Présentation des tests Vertex AI.

Pour en savoir plus sur l'utilisation des classes Experiment et ExperimentRun, essayez l'un des tutoriels suivants :

Experiment

La classe Experiment représente un test dans Vertex AI. Utilisez un test pour analyser ses exécutions de test et ses exécutions de pipeline avec différentes configurations, telles que plusieurs artefacts d'entrée et hyperparamètres.

Il existe deux façons de créer une ressource Experiment :

  1. La méthode privilégiée pour créer une ressource Experiment consiste à spécifier un nom pour votre test en tant que paramètre lorsque vous appelez 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. Vous pouvez également créer une ressource Experiment en appelant aiplatform.Experiment.create. aiplatform.Experiment.create crée la ressource Experiment, mais ne la définit pas sur un environnement global. Pour cette raison, vous ne pouvez pas exécuter le test avec aiplatform.start_run. L'exemple de code suivant montre comment utiliser aiplatform.Experiment.create pour créer un test et ensuite l'exécuter :

    # 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 classe ExperimentRun représente une exécution d'un test.

L'exemple de code suivant montre comment créer et démarrer une exécution de test, puis comment l'utiliser pour obtenir des informations sur votre test. Pour supprimer l'exécution de test, obtenez une référence à l'instance ExperimentRun et appelez sa méthode 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()

Classes Vertex AI TensorBoard

Le SDK Vertex AI pour Python inclut des classes permettant d'utiliser une version gérée de Vertex AI TensorBoard Open Source. Vertex AI TensorBoard est un outil utilisé pour surveiller les mesures et les visualisations pendant votre workflow de ML. Pour en savoir plus, consultez la section Premiers pas avec Vertex AI TensorBoard.

Pour en savoir plus sur l'utilisation et le fonctionnement du SDK Vertex AI pour Python avec Vertex AI TensorBoard, consultez l'un des tutoriels sur les notebooks suivants :

Tensorboard

La classe Tensorboard représente une ressource gérée qui stocke les tests Vertex AI TensorBoard. Vous devez créer une instance Tensorboard avant de pouvoir visualiser les tests. Vous pouvez créer plusieurs instances Tensorboard dans un projet Google Cloud.

L'exemple de code suivant montre comment créer une instance 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

TensorboardExperiment représente un groupe d'objets TensorboardRun. Une instance TensorboardRun représente les résultats de l'exécution d'un job d'entraînement dans un TensorBoard.

TensorboardRun

Une instance de la classe TensorboardRun est mappée à l'exécution d'un job d'entraînement dans un TensorBoard avec un ensemble spécifié d'hyperparamètres, une définition de modèle, un ensemble de données, etc.

TensorboardTimeSeries

La classe TensorboardTimeSeries représente une série produite lors des exécutions d'entraînements.

Étapes suivantes