Registrare i modelli in un'esecuzione dell'esperimento

Affinché un modello possa essere monitorato, condiviso e analizzato, l'SDK Vertex AI per Python fornisce un'API che serializza un modello di machine learning in una classe ExperimentModel e registra il modello in Vertex AI Experiments.

Dopo aver selezionato il modello migliore da utilizzare, puoi registrarlo da Vertex AI Experiments a Vertex AI Model Registry.

I framework supportati sono scikit-learn, XGBoost e TensorFlow.

Salva e registra il modello ML

Salva i modelli

L'SDK Vertex AI fornisce il save_model metodo per serializzare un modello ML, caricarlo in Cloud Storage e rappresentarlo come un artefatto di Vertex ML Metadata.

Python

from typing import Optional, Union

from google.cloud import aiplatform


def save_model_sample(
    project: str,
    location: str,
    model: Union[
        "sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"  # noqa: F821
    ],
    artifact_id: Optional[str] = None,
    uri: Optional[str] = None,
    input_example: Optional[
        Union[list, dict, "pd.DataFrame", "np.ndarray"]  # noqa: F821
    ] = None,
    display_name: Optional[str] = None,
    staging_bucket: Optional[str] = None,
) -> None:
    aiplatform.init(project=project, location=location)

    aiplatform.save_model(
        model=model,
        artifact_id=artifact_id,
        uri=uri,
        input_example=input_example,
        display_name=display_name,
        staging_bucket=staging_bucket,
    )

  • project: . Puoi trovare questi ID nella Google Cloud console pagina di benvenuto.
  • location: vedi Elenco delle località disponibili
  • model: (obbligatorio). Modello di machine learning. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • artifact_id: (facoltativo). L'ID risorsa dell'artefatto. Questo ID deve essere univoco a livello globale in un metadataStore. Può contenere fino a 63 caratteri e i caratteri validi sono [a-z0-9_-]. Il primo carattere non può essere un numero o un trattino.
  • uri: (facoltativo). Una directory GCS in cui salvare il file del modello. Se non viene fornito un URI, viene utilizzato gs://default-bucket/timestamp-uuid-frameworkName-model. Se non è impostato un bucket di gestione temporanea predefinito, deve essere passato nel parametro staging_bucket.
  • input_example: (facoltativo). Ogni modello accetta dati di input e produce una previsione. Ogni modello accetta un formato di input specifico (ad esempio, un numero, una stringa, un array 2D) e viene memorizzato come file YAML nell'URI GCS. Accetta list, dict, pd.DataFrame e np.ndarray. Il valore all'interno di una lista deve essere uno scalare o una lista. Il valore all'interno di un dizionario deve essere uno scalare, una lista o un np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: il nome visualizzato dell'artefatto.
  • staging_bucket: (facoltativo). Il bucket di gestione temporanea utilizzato per salvare il modello. Se non fornito, viene utilizzato il bucket di gestione temporanea impostato in aiplatform.init. Per salvare un modello è necessario un bucket o un URI di gestione temporanea.

Registra i modelli

L'SDK Vertex AI fornisce un log_model metodo, che orchestra save_model e un passaggio aggiuntivo per registrare l'artefatto di Vertex ML Metadata nell'esecuzione dell'esperimento corrente. Il metodo log_model per gestire e analizzare più modelli ML in Vertex AI Experiments.

Python

from typing import Optional, Union

from google.cloud import aiplatform


def log_model_sample(
    experiment_name: str,
    run_name: str,
    project: str,
    location: str,
    model: Union[
        "sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"  # noqa: F821
    ],
    artifact_id: Optional[str] = None,
    uri: Optional[str] = None,
    input_example: Optional[
        Union[list, dict, "pd.DataFrame", "np.ndarray"]  # noqa: F821
    ] = None,  # noqa: F821
    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_model(
        model=model,
        artifact_id=artifact_id,
        uri=uri,
        input_example=input_example,
        display_name=display_name,
    )

  • experiment_name: fornisci il nome dell'esperimento. Puoi trovare il tuo elenco di esperimenti nella Google Cloud console selezionando "Esperimenti" nella barra di navigazione della sezione.
  • run_name: specifica un nome di esecuzione.
  • project: . Puoi trovare questi ID nella Google Cloud console pagina di benvenuto.
  • location: vedi Elenco delle località.
  • model: (obbligatorio). Modello di machine learning. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • uri: (facoltativo). Una directory GCS in cui salvare il file del modello. Se non viene fornito un URI,gs://default-bucket/timestamp-uuid-frameworkName-model viene utilizzato. Se non è impostato un bucket di gestione temporanea predefinito, ne viene creato uno nuovo.
  • input_example: (facoltativo). Ogni modello accetta dati di input e produce una previsione. Ogni modello accetta un formato di input specifico (ad esempio, un numero, una stringa, un array 2D) e viene memorizzato come file YAML nell'URI GCS. Accetta list, dict, pd.DataFrame e np.ndarray. Il valore all'interno di una lista deve essere uno scalare o una lista. Il valore all'interno di un dizionario deve essere uno scalare, una lista o un np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: (facoltativo). Il nome visualizzato dell'artefatto.

Monitora ExperimentModel

Recupera il modello di esperimento

Per utilizzare get_experiment_model per restituire un modello salvato, passagli l'ID artefatto del modello salvato.

Python

from google.cloud import aiplatform


def get_experiment_model_sample(
    project: str,
    location: str,
    artifact_id: str,
) -> "ExperimentModel":  # noqa: F821
    aiplatform.init(project=project, location=location)
    experiment_model = aiplatform.get_experiment_model(artifact_id=artifact_id)

    return experiment_model

Recupera i modelli di esperimento

Il metodo get_experiment_models recupera un elenco di tutti gli ExperimentModel' registrati in un'esecuzione di esperimento specifica.

Python

from typing import List, Union

from google.cloud import aiplatform


def get_experiment_run_models_sample(
    run_name: str,
    experiment: Union[str, aiplatform.Experiment],
    project: str,
    location: str,
) -> List["ExperimentModel"]:  # noqa: F821
    experiment_run = aiplatform.ExperimentRun(
        run_name=run_name, experiment=experiment, project=project, location=location
    )

    return experiment_run.get_experiment_models()

  • run_name: specifica un nome di esecuzione.
  • experiment: fornisci il nome dell'esperimento. Puoi trovare l'elenco degli esperimenti nella console Google Cloud selezionando "Esperimenti" nella barra di navigazione della sezione.
  • project: . Puoi trovare questi ID nella Google Cloud console pagina di benvenuto.
  • location: vedi Elenco delle località.

Recupera le informazioni sul modello

Il metodo get_model_info restituisce i metadati del modello di una determinata istanza ExperimentModel, ad esempio la classe del modello, il tipo di framework.

Python

from typing import Any, Dict

from google.cloud import aiplatform


def get_model_info_sample(
    artifact_id: str,
    project: str,
    location: str,
) -> Dict[str, Any]:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.get_model_info()

Carica ExperimentModel

Carica il modello

Il metodo load_experiment_model ti aiuta a deserializzare un' ExperimentModel istanza nel modello ML originale.

Python

from typing import Union

from google.cloud import aiplatform


def load_experiment_model_sample(
    artifact_id: str,
    project: str,
    location: str,
) -> Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"]:  # noqa: F821:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.load_model()

  • artifact_id: (obbligatorio). L'ID risorsa dell'esistente ExperimentModel. Esempio: artifact_id="my-sklearn-model"
  • project: . Puoi trovare questi ID nella Google Cloud console pagina di benvenuto.
  • location: vedi Elenco delle località.

Registra ExperimentModel

Registra il modello salvato

L'API register_experiment_model consente di registrare il modello considerato il migliore in Vertex AI Model Registry con una quantità minima di configurazione. L'API sceglie automaticamente un container di previsione predefinito in base al framework e alla versione del modello.

Python

from google.cloud import aiplatform


def register_experiment_model_sample(
    artifact_id: str,
    project: str,
    location: str,
    display_name: str,
) -> aiplatform.models.Model:
    experiment_model = aiplatform.get_experiment_model(
        artifact_id=artifact_id, project=project, location=location
    )

    return experiment_model.register_model(display_name=display_name)

  • artifact_id: (obbligatorio). L'ID risorsa dell'esistente ExperimentModel.
  • project: . Puoi trovare questi ID nella Google Cloud console pagina di benvenuto.
  • location: vedi Elenco delle località.
  • display_name: (facoltativo). Il nome definito dall'utente del modello registrato.

Visualizza l'elenco delle esecuzioni di esperimenti nella Google Cloud console

  1. Nella Google Cloud console, vai alla pagina Esperimenti.
    Vai a Esperimenti
    Viene visualizzato un elenco di esperimenti.
  2. Seleziona l'esperimento che vuoi controllare.
    Viene visualizzato un elenco di esecuzioni.

Pagina dell'elenco degli esperimenti Vertex AI

Passaggi successivi

Esempio di notebook pertinente

Blog post