Registrar datos manualmente en una ejecución de un experimento

Para registrar información, usa el SDK de Vertex AI para Python.

Métricas y parámetros admitidos:

  • Métricas de resumen
  • Métricas de series temporales
  • parámetros
  • métricas de clasificación

SDK de Vertex AI para Python

Nota: Si se especifica el parámetro opcional resume como TRUE, se reanuda la ejecución que se había iniciado anteriormente. Si no se especifica, resume se define de forma predeterminada como FALSE y se crea una nueva ejecución.

En el siguiente ejemplo se usa el método init de las funciones de aiplatform.

Métricas de resumen

Las métricas de resumen son métricas escalares de un solo valor que se almacenan junto a las métricas de serie temporal y representan un resumen final de una ejecución de experimento.

Un ejemplo de caso práctico es la detención anticipada, en la que una configuración de paciencia permite continuar con el entrenamiento, pero el modelo candidato se restaura a partir de un paso anterior y las métricas calculadas para el modelo en ese paso se representarían como una métrica de resumen, ya que la métrica de serie temporal más reciente no es representativa del modelo restaurado. Para ello, se usa la API log_metrics de métricas de resumen.

Python

from typing import Dict

from google.cloud import aiplatform


def log_metrics_sample(
    experiment_name: str,
    run_name: str,
    metrics: Dict[str, float],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name)

    aiplatform.log_metrics(metrics)

  • experiment_name: ponle un nombre al experimento. Puedes consultar tu lista de experimentos en la consola. Para ello, selecciona Experimentos en la barra de navegación de la sección. Google Cloud
  • run_name: especifica un nombre de ejecución (consulta start_run).
  • metric: pares clave-valor de métricas. Por ejemplo: {'learning_rate': 0.1}
  • project: . Puedes encontrarlos en la página de Google Cloud bienvenida de la consola.
  • location: consulta la lista de ubicaciones disponibles.

Métricas de serie temporal

Para registrar métricas de series temporales, Vertex AI Experiments requiere una instancia de Vertex AI TensorBoard de respaldo.

Asigna un recurso de Vertex AI TensorBoard de respaldo para el registro de métricas de serie temporal.

Todas las métricas registradas a través de log_time_series_metrics se almacenan como métricas de serie temporal. Vertex AI TensorBoard es el almacén de métricas de series temporales subyacente.

El experiment_tensorboard se puede definir tanto a nivel de experimento como de ejecución del experimento. Si se define el experiment_tensorboard a nivel de ejecución, se anula la configuración a nivel de experimento. Una vez que se ha definido el experiment_tensorboard en una ejecución, no se puede cambiar.experiment_tensorboard

  • Definir experiment_tensorboard a nivel de experimento:
      aiplatform.init(experiment='my-experiment',
                   experiment_tensorboard='projects/.../tensorboard/my-tb-resource')
  • Define experiment_tensorboard a nivel de ejecución: Nota: Esta opción anula la configuración a nivel de experimento.
      aiplatform.start_run(run_name='my-other-run',
                        tensorboard='projects/.../.../other-resource')
    aiplatform.log_time_series_metrics(...)

Python

from typing import Dict, Optional

from google.cloud import aiplatform
from google.protobuf import timestamp_pb2


def log_time_series_metrics_sample(
    experiment_name: str,
    run_name: str,
    metrics: Dict[str, float],
    step: Optional[int],
    wall_time: Optional[timestamp_pb2.Timestamp],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_time_series_metrics(metrics=metrics, step=step, wall_time=wall_time)

  • experiment_name: Indica el nombre del experimento. Puedes consultar la lista de experimentos en la consola. Para ello, selecciona Experimentos en la barra de navegación de la sección. Google Cloud
  • run_name: especifica un nombre de ejecución (consulta start_run).
  • metrics: diccionario en el que las claves son nombres de métricas y los valores son valores de métricas.
  • step: opcional. Índice de pasos de este punto de datos en la carrera.
  • wall_time: opcional. Marca de tiempo del reloj de pared en la que el usuario final genera este punto de datos. Si no se proporciona, wall_time se genera a partir del valor de time.time().
  • project: . Puedes encontrarlos en la página de Google Cloud bienvenida de la consola.
  • location: consulta la lista de ubicaciones disponibles.

Pasos y tiempo real

La API log_time_series_metrics acepta de forma opcional step y walltime.

  • step: opcional. Índice de pasos de este punto de datos en la carrera. Si no se proporciona, se usará un incremento sobre el paso más reciente de todas las métricas de serie temporal ya registradas. Si el paso existe para alguna de las claves de métrica proporcionadas, se sobrescribe.
  • wall_time: opcional. Segundos transcurridos desde el inicio del registro de tiempo de la métrica registrada. Si no se proporciona, se utiliza el valor predeterminado de Python, time.time.

Por ejemplo:

aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00})
Registrar un paso específico
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=8)
Incluir wall_time
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=10)

Parámetros

Los parámetros son valores de entrada con clave que configuran una ejecución, regulan su comportamiento y afectan a sus resultados. Por ejemplo, la tasa de aprendizaje, la tasa de abandono y el número de pasos de entrenamiento. Registra los parámetros con el método log_params.

Python

from typing import Dict, Union

from google.cloud import aiplatform


def log_params_sample(
    experiment_name: str,
    run_name: str,
    params: Dict[str, Union[float, int, str]],
    project: str,
    location: str,
):
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_params(params)

aiplatform.log_params({"learning_rate": 0.01, "n_estimators": 10})
  • experiment_name: ponle un nombre al experimento. Puedes consultar la lista de experimentos en la consola. Para ello, selecciona Experimentos en la barra de navegación de la sección. Google Cloud
  • run_name: especifica un nombre de ejecución (consulta start_run).
  • params: pares clave-valor de parámetros Por ejemplo: {'accuracy': 0.9} (consulte log_params). página welcome.
  • location: consulta la lista de ubicaciones disponibles.

Métricas de clasificación

Además de las métricas de resumen y de serie temporal, las matrices de confusión y las curvas ROC son métricas que se usan con frecuencia. Se pueden registrar en Vertex AI Experiments mediante la API log_classification_metrics.

Python

from typing import List, Optional

from google.cloud import aiplatform


def log_classification_metrics_sample(
    experiment_name: str,
    run_name: str,
    project: str,
    location: str,
    labels: Optional[List[str]] = None,
    matrix: Optional[List[List[int]]] = None,
    fpr: Optional[List[float]] = None,
    tpr: Optional[List[float]] = None,
    threshold: Optional[List[float]] = None,
    display_name: Optional[str] = None,
) -> None:
    aiplatform.init(experiment=experiment_name, project=project, location=location)

    aiplatform.start_run(run=run_name, resume=True)

    aiplatform.log_classification_metrics(
        labels=labels,
        matrix=matrix,
        fpr=fpr,
        tpr=tpr,
        threshold=threshold,
        display_name=display_name,
    )

  • experiment_name: ponle un nombre al experimento. Puedes consultar la lista de experimentos en la consola. Para ello, selecciona Experimentos en la barra de navegación de la sección. Google Cloud
  • run_name: especifique un nombre de ejecución (consulte start_run).
  • project: . Puedes encontrarlos en la página de Google Cloud bienvenida de la consola.
  • location: consulta la lista de ubicaciones disponibles.
  • labels: lista de nombres de etiquetas de la matriz de confusión. Se debe definir si se define "matrix".
  • matrix: valores de la matriz de confusión. Debe definirse si se define "labels".
  • fpr: lista de tasas de falsos positivos de la curva ROC. Debe definirse si se ha definido "tpr" o "thresholds".
  • tpr: lista de tasas de verdaderos positivos de la curva ROC. Debe definirse si se ha definido "fpr" o "thresholds".
  • threshold: lista de umbrales de la curva ROC. Debe definirse si se ha definido "fpr" o "tpr".
  • display_name: nombre definido por el usuario del artefacto de métrica de clasificación.

Ver la lista de ejecuciones de experimentos en la consola de Google Cloud

  1. En la Google Cloud consola, vaya a la página Experimentos.
    Ir a Experimentos
    Aparecerá una lista de experimentos.
  2. Selecciona el experimento que quieras comprobar.
    Aparecerá una lista de ejecuciones.

Página de lista de experimentos de Vertex AI
Para obtener más información, consulta Comparar y analizar carreras.

Siguientes pasos

Tutorial de Notebook

Entrada de blog