Registra i modelli nell'esecuzione di un esperimento

Per semplificare il monitoraggio, la condivisione e l'analisi di un modello, l'SDK Vertex AI per Python fornisce un'API che serializza un modello di machine learning in una classe ExperimentModel e lo registra 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 di ML

Salva modelli

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

Python

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,
) -> 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,
    )

  • project: il tuo ID progetto. Puoi trovare questi ID nella pagina di 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. Potrebbe contenere fino a 63 caratteri. 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 gestione temporanea predefinito, viene creato un nuovo bucket.
  • input_example: facoltativo. Ogni modello prende i dati di input e produce una previsione. Ogni modello accetta un particolare formato di input (ad esempio un numero, una stringa o un array 2D) e viene archiviato come file YAML nell'URI GCS. Accetta list, dict, 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 dict deve essere uno scalare, un elenco o np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: il nome visualizzato dell'elemento.

Modelli di log

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

Python

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: 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.
  • project: il tuo ID progetto. Puoi trovare questi ID nella pagina di 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 gestione temporanea predefinito, viene creato un nuovo bucket.
  • input_example: facoltativo. Ogni modello prende i dati di input e produce una previsione. Ogni modello accetta un particolare formato di input (ad esempio un numero, una stringa o un array 2D) e viene archiviato come file YAML nell'URI GCS. Accetta list, dict, pd.DataFrame e np.ndarray. Il valore all'interno di un elenco deve essere un tipo scalare o un elenco. Il valore all'interno di un dict deve essere uno scalare, un elenco o np.ndarray. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: facoltativo. Il nome visualizzato dell'elemento.

Traccia ExperimentModel

Ottieni modello di esperimento

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

Python

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

Visualizza i modelli dell'esperimento

Il metodo get_experiment_models ottiene un elenco di tutti i ExperimentModel registrati in una determinata esecuzione di un esperimento.

Python

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 esecuzione.
  • experiment: indica il nome dell'esperimento. Puoi trovare l'elenco degli esperimenti nella console Google Cloud selezionando "Esperimenti" nel menu di navigazione delle sezioni.
  • project: il tuo ID progetto. Puoi trovare questi ID nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili.

Recupero informazioni modello

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

Python

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 modello

Il metodo load_experiment_model consente di deserializzare un'istanza ExperimentModel per tornare al modello ML originale.

Python

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'elemento ExperimentModel esistente. Esempio: artifact_id="my-sklearn-model"
  • project: il tuo ID progetto. Puoi trovare questi ID nella pagina di 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 ritenuto 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

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'elemento ExperimentModel esistente.
  • project: il tuo ID progetto. Puoi trovare questi ID nella pagina di benvenuto della console Google Cloud.
  • location: consulta l'elenco delle località disponibili.
  • display_name: facoltativo. Il nome del modello registrato definito dall'utente.

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

Passaggi successivi

Esempio di blocco note pertinente

Blog post