Registrare manualmente i dati di un'esecuzione di un esperimento

Ai fini del logging, utilizza l'SDK Vertex AI per Python.

Metriche e parametri supportati:

  • metriche di riepilogo
  • metriche delle serie temporali
  • parametri
  • metriche di classificazione

SDK Vertex AI per Python

Nota: quando il parametro facoltativo resume viene specificato come TRUE, l'esecuzione avviata in precedenza riprende. Se non specificato, il valore predefinito di resume è FALSE e viene creata una nuova esecuzione.

L'esempio seguente utilizza il metodo init delle funzioni AIplatform.

Metriche di riepilogo

Le metriche di riepilogo sono metriche scalari a valore singolo archiviate accanto alle metriche delle serie temporali e rappresentano un riepilogo finale dell'esecuzione di un esperimento.

Un caso d'uso di esempio è l'interruzione anticipata in cui una configurazione della pazienza consente di continuare l'addestramento, ma il modello candidato viene ripristinato da un passaggio precedente e le metriche calcolate per il modello in quel passaggio verrebbero rappresentate come metrica di riepilogo perché l'ultima metrica delle serie temporali non è rappresentativa del modello ripristinato. A questo scopo viene utilizzata l'API log_metrics per le metriche di riepilogo.

Python

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: assegna un nome all'esperimento. Puoi trovare l'elenco degli esperimenti nella console Google Cloud selezionando Esperimenti nel menu di navigazione delle sezioni.
  • run_name: specifica un nome esecuzione (vedi start_run).
  • metric: coppie chiave-valore delle metriche. Ad esempio: {'learning_rate': 0.1}
  • project: il tuo ID progetto. Sono disponibili nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili

Metriche delle serie temporali

Per registrare le metriche delle serie temporali, Vertex AI Experiments richiede un'istanza di Vertex AI TensorBoard di supporto.

Assegna una risorsa Vertex AI TensorBoard di supporto per il logging delle metriche delle serie temporali.

Tutte le metriche registrate tramite log_time_series_metrics vengono archiviate come metriche delle serie temporali. Vertex AI TensorBoard è l'archivio delle metriche delle serie temporali di supporto.

L'elemento experiment_tensorboard può essere impostato sia a livello di esperimento sia a livello di esecuzione dell'esperimento. L'impostazione di experiment_tensorboard a livello di esecuzione sostituisce l'impostazione a livello di esperimento. Dopo aver impostato experiment_tensorboard in un'esecuzione, non puoi modificare il experiment_tensorboard dell'esecuzione.

  • Imposta experiment_tensorboard a livello di esperimento:
      aiplatform.init(experiment='my-experiment',
                   experiment_tensorboard='projects/.../tensorboard/my-tb-resource')
    
  • Imposta experiment_tensorboard a livello di esecuzione: Nota: sostituisce l'impostazione a livello di esperimento.
      aiplatform.start_run(run_name='my-other-run',
                        tensorboard='projects/.../.../other-resource')
    aiplatform.log_time_series_metrics(...)
    

Python

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 il nome dell'esperimento. Puoi trovare l'elenco degli esperimenti nella console Google Cloud selezionando Esperimenti nel menu di navigazione delle sezioni.
  • run_name: specifica un nome esecuzione (vedi start_run).
  • metrics: dizionario in cui le chiavi sono nomi delle metriche e i valori sono valori delle metriche.
  • step: facoltativo. Indice dei passaggi di questo punto dati all'interno dell'esecuzione.
  • wall_time: facoltativo. Timestamp dell'orologio effettivo quando questo punto dati viene generato dall'utente finale. Se non specificato, il valore wall_time viene generato in base al valore di time.time().
  • project: il tuo ID progetto. Sono disponibili nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili

Passaggio e tempo di esecuzione

L'API log_time_series_metrics accetta facoltativamente step e walltime.

  • step: facoltativo. Indice dei passaggi di questo punto dati all'interno dell'esecuzione. Se non specificato, viene utilizzato un incremento rispetto all'ultimo passaggio tra tutte le metriche delle serie temporali già registrate. Se il passaggio esiste per una delle chiavi delle metriche fornite, viene sovrascritto.
  • wall_time: facoltativo. I secondi dopo l'epoca della metrica registrata. Se non viene specificato, il valore predefinito è quello di time.time di Python.

Ad esempio:

aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00})
Accedi a un passaggio specifico
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=8)
Includi wall_time
aiplatform.log_time_series_metrics({"mse": 2500.00, "rmse": 50.00}, step=10)

Parametri

I parametri sono valori di input basati su chiave che configurano un'esecuzione, ne regolano il comportamento e influiscono sui risultati dell'esecuzione. Gli esempi includono il tasso di apprendimento, il tasso di abbandono e il numero di passaggi di addestramento. Registra i parametri utilizzando il metodo log_params.

Python

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: assegna un nome all'esperimento. Puoi trovare l'elenco degli esperimenti nella console Google Cloud selezionando Esperimenti nel menu di navigazione delle sezioni.
  • run_name: specifica un nome esecuzione (vedi start_run).
  • params: coppie chiave-valore dei parametri Ad esempio: {'accuracy': 0.9} (vedi log_params). benvenuto.
  • location: consulta l'elenco delle località disponibili

Metriche di classificazione

Oltre alle metriche di riepilogo e alle metriche delle serie temporali, le matrici di confusione e le curve ROC sono metriche di uso comune. Possono essere registrate in Vertex AI Experiments utilizzando l'API log_classification_metrics.

Python

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: assegna un nome all'esperimento. Puoi trovare l'elenco degli esperimenti nella console Google Cloud selezionando Esperimenti nel menu di navigazione delle sezioni.
  • run_name: specifica un nome esecuzione (vedi start_run).
  • project: il tuo ID progetto. Sono disponibili nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili.
  • labels: elenco dei nomi delle etichette per la matrice di confusione. Deve essere impostato se è impostato "matrix".
  • matrix: valori per la matrice di confusione. Deve essere impostato se sono impostate "etichette".
  • fpr: elenco di tassi di falsi positivi per la curva ROC. Deve essere impostato se si imposta "tpr" o "thresholds".
  • tpr: elenco di tassi reali positivi per la curva ROC. Deve essere impostato se si imposta "fpr" o "thresholds".
  • threshold: elenco delle soglie per la curva ROC. Deve essere impostato se si imposta "fpr" o "tpr".
  • display_name: nome definito dall'utente per l'artefatto della metrica di classificazione.

Visualizza l'elenco delle esecuzioni dell'esperimento nella console Google Cloud

  1. Nella console Google Cloud, vai alla pagina Esperimenti.
    <a{: class="button button-primary" l10n-attrs-original-order="href,target,class,track-name,track-type" l10n-encrypted-href="V3Ae1hvcBOij4KvUNiRrMltigmNHgUGOXn/QVSGplOhBlpxunv8WHL3F/z3 Esperimenti.com
    </a{:>
  2. Seleziona l'esperimento che vuoi controllare.
    Viene visualizzato un elenco di esecuzioni.

Pagina dell'elenco degli esperimenti di Vertex AI
Per maggiori dettagli, consulta Confrontare e analizzare le esecuzioni.

Passaggi successivi

Tutorial sui blocchi note

Blog post