Registrare i modelli in un'esecuzione dell'esperimento

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

Dopo aver selezionato il modello migliore da utilizzare, puoi registrarlo da Esperimenti di Agent Platform a Model Registry di Agent Platform.

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

Salva e registra il modello ML

Salvare i modelli

L'SDK Agent Platform fornisce il metodo save_model per serializzare un modello ML, caricare il modello in Cloud Storage e rappresentarlo come un artefatto 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 pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili
  • model: (Obbligatorio) Un 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 staging predefinito, deve essere passato nel parametro staging_bucket.
  • input_example: (Facoltativo) Ogni modello prende i dati di input e poi produce una previsione. Ogni modello accetta un particolare formato di input (ad esempio, un numero, una stringa, un array 2D) e viene archiviato come file YAML nell'URI GCS. Accetta elenchi, dizionari, pd.DataFrame e np.ndarray. Il valore all'interno di un elenco deve essere uno scalare o un elenco. Il valore all'interno di un dizionario deve essere scalare, un elenco o np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: il nome visualizzato dell'artefatto.
  • staging_bucket: (Facoltativo) Il bucket di staging utilizzato per salvare il modello. Se non fornito, viene utilizzato il bucket di staging impostato in aiplatform.init. Per salvare un modello è necessario un bucket o un URI di staging.

Modelli di log

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

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 l'elenco degli esperimenti nella console Google Cloud selezionando "Esperimenti" nel menu di navigazione della sezione.
  • run_name: specifica un nome di esecuzione.
  • project: . Puoi trovare questi ID nella pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili.
  • model: obbligatorio. Un 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,viene utilizzato gs://default-bucket/timestamp-uuid-frameworkName-model. Se non è impostato un bucket di staging predefinito, ne viene creato uno nuovo.
  • input_example: (Facoltativo) Ogni modello prende i dati di input e poi produce una previsione. Ogni modello accetta un particolare formato di input (ad esempio, un numero, una stringa, un array 2D) e viene archiviato come file YAML nell'URI GCS. Accetta elenchi, dizionari, pd.DataFrame e np.ndarray. Il valore all'interno di un elenco deve essere uno scalare o un elenco. Il valore all'interno di un dizionario deve essere scalare, un elenco o np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: (Facoltativo) Il nome visualizzato dell'artefatto.

Traccia ExperimentModel

Recupera modello di esperimento

Per utilizzare get_experiment_model per restituire un modello salvato, trasmetti 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

Recuperare i modelli di esperimento

Il metodo get_experiment_models recupera un elenco di tutti i ExperimentModel registrati in una particolare esecuzione dell'esperimento.

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 pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili.

Recupero delle informazioni sul modello

Il metodo get_model_info restituisce i metadati del modello di una determinata istanza ExperimentModel, ad esempio la classe del modello e 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()

  • artifact_id: obbligatorio. L'ID risorsa del ExperimentModel esistente.
  • project: . Puoi trovare questi ID nella pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili.

Carica ExperimentModel

Carica modello

Il metodo load_experiment_model consente di deserializzare un'istanza ExperimentModel e riportarla al 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 del ExperimentModel esistente. Esempio: artifact_id="my-sklearn-model"
  • project: . Puoi trovare questi ID nella pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili.

Registra ExperimentModel

Registra modello salvato

L'API register_experiment_model consente di registrare il modello considerato il migliore nel registro dei modelli di Agent Platform 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 del ExperimentModel esistente.
  • project: . Puoi trovare questi ID nella pagina Benvenuto della console Google Cloud .
  • location: consulta l'elenco delle località disponibili.
  • display_name: (Facoltativo) Il nome definito dall'utente del modello registrato.

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

  1. Nella console Google Cloud , 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 di Agent Platform

Passaggi successivi

Esempio di notebook pertinente

Blog post