Modelle in einer Testausführung loggen

Damit ein Modell einfach nachverfolgt, gemeinsam genutzt und analysiert werden kann, bietet das Vertex AI SDK für Python eine API, die ein Modell für maschinelles Lernen in eine ExperimentModel-Klasse serialisiert und das Modell in Vertex AI Experiments protokolliert.

Nachdem Sie das beste Modell ausgewählt haben, können Sie dieses Modell von Vertex AI Experiments in Vertex AI Model Registry registrieren.

Unterstützte Frameworks sind scikit-learn, XGBoost und TensorFlow.

ML-Modell speichern und protokollieren

Modelle speichern

Das Vertex AI SDK bietet die Methode save_model zur Serialisierung eines ML-Modells, das Hochladen des Modells in Cloud Storage und die Darstellung des Modells als Vertex ML Metadata-Artefakts.

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,
) -> 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: Ihre Projekt-ID. Sie finden die Projekt-IDs auf der Begrüßungsseite der Google Cloud Console.
  • location: Siehe Liste der verfügbaren Standorte
  • model: (Erforderlich). Ein Modell für maschinelles Lernen. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • artifact_id: Optional. Die Ressourcen-ID des Artefakts. Diese ID muss in einem Metadatenspeicher global eindeutig sein. Sie kann bis zu 63 Zeichen umfassen und gültige Zeichen sind [a-z0-9_-]. Das erste Zeichen darf keine Zahl und kein Bindestrich sein.
  • uri: Optional. Ein GCS-Verzeichnis, in dem die Modelldatei gespeichert wird. Wenn ein URI nicht angegeben ist, wird gs://default-bucket/timestamp-uuid-frameworkName-model verwendet. Wenn kein Standard-Staging-Bucket festgelegt ist, wird ein neuer Bucket erstellt.
  • input_example: Optional. Jedes Modell übernimmt Eingabedaten und erstellt dann eine Vorhersage. Jedes Modell akzeptiert ein bestimmtes Format der Eingabe (z. B. eine Zahl, einen String oder ein 2d-Array) und wird als yaml-Datei im gcs-URI gespeichert. Akzeptiert eine Liste, ein Wörterbuch, ein pd.DataFrame oder ein np.ndarray. Der Wert in einer Liste muss ein Skalar oder eine Liste sein. Der Wert in einem Wörterbuch muss ein Skalar-, eine Listen- oder ein np.ndarray sein. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: Der Anzeigename des Artefakts.

Logmodelle

Das Vertex AI SDK bietet eine Methode log_model, die save_model orchestriert, und einen zusätzlichen Schritt, um das Vertex ML Metadata-Artefakt in der aktuellen Testausführung zu protokollieren. Die Methode log_model zum Verwalten und zum Analysieren mehrerer ML-Modelle 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: Geben Sie den Namen Ihres Tests an. Um die Liste der Experimente in der Google Cloud Console aufzurufen, wählen Sie im Navigationsbereich „Experimente“ aus.
  • run_name: Geben Sie einen Ausführungsnamen an.
  • project: Ihre Projekt-ID. Sie finden die Projekt-IDs auf der Begrüßungsseite der Google Cloud Console.
  • location: Siehe Liste der verfügbaren Standorte.
  • model: erforderlich. Ein Modell für maschinelles Lernen. (Union["sklearn.base.BaseEstimator", "xgb.Booster", "tf.Module"])
  • uri: Optional. Ein GCS-Verzeichnis, in dem die Modelldatei gespeichert wird. Wenn kein URI angegeben ist, wird gs://default-bucket/timestamp-uuid-frameworkName-model verwendet. Wenn kein Standard-Staging-Bucket festgelegt ist, wird ein neuer Bucket erstellt.
  • input_example: Optional. Jedes Modell übernimmt Eingabedaten und erstellt dann eine Vorhersage. Jedes Modell akzeptiert ein bestimmtes Eingabeformat (z. B. eine Zahl, einen String oder ein 2d-Array) und wird als yaml-Datei im gcs-URI gespeichert. Akzeptiert eine Liste, ein Wörterbuch, ein pd.DataFrame oder ein np.ndarray. Der Wert in einer Liste muss ein Skalar oder eine Liste sein. Der Wert in einem Wörterbuch muss ein Skalar-, eine Listen- oder ein np.ndarray sein. (Union[list, dict, pd.DataFrame, np.ndarray]).
  • display_name: Optional. Der Anzeigename des Artefakts.

ExperimentModel nachverfolgen

Testmodell abrufen

Um get_experiment_model zu verwenden, um ein gespeichertes Modell zurückzugeben, übergeben Sie die Artefakt-ID des gespeicherten Modells.

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

Testmodelle abrufen

Die Methode get_experiment_models ruft eine Liste aller ExperimentModel ab, die in einer bestimmten Testausführung protokolliert werden.

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: Geben Sie einen Ausführungsnamen an.
  • experiment: Geben Sie den Namen Ihres Tests an. Um die Liste der Experimente in der Google Cloud Console aufzurufen, wählen Sie Tests im Navigationsbereich „Experimente“ aus.
  • project: Ihre Projekt-ID. Sie finden die Projekt-IDs auf der Begrüßungsseite der Google Cloud Console.
  • location: Siehe Liste der verfügbaren Standorte.

Modellinformationen abrufen

Die Methode get_model_info gibt die Metadaten des Modells für eine bestimmte ExperimentModel-Instanz zurück, z. B. Modellklasse, Framework-Typ.

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

ExperimentModel laden

Modell laden

Mit der Methode load_experiment_model können Sie eine ExperimentModel-Instanz zurück auf das ursprüngliche ML-Modell deserialisieren.

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

ExperimentModel registrieren

Gespeichertes Modell registrieren

Die register_experiment_model API ermöglicht die Registrierung des Modells, das als das beste bewertet wurde, im Vertex AI Model Registry mit einem Minimum an Konfiguration. Die API wählt automatisch einen vordefinierten Vorhersagecontainer basierend auf dem Framework und der Version des Modells aus.

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: (Erforderlich). Die Ressourcen-ID des vorhandenen ExperimentModel.
  • project: Ihre Projekt-ID. Sie finden die Projekt-IDs auf der Begrüßungsseite der Google Cloud Console.
  • location: Siehe Liste der verfügbaren Standorte.
  • display_name: Optional. Der benutzerdefinierte Name des registrierten Modells.

Liste der Testausführungen in der Google Cloud Console anzeigen

  1. Rufen Sie in der Google Cloud Console die Seite Tests auf.
    Tests aufrufen
    Eine Liste mit Tests wird angezeigt.
  2. Wählen Sie den Test aus, den Sie prüfen möchten.
    Es wird eine Liste der Ausführungen angezeigt.

Seite mit Liste der Vertex AI-Tests

Nächste Schritte

Relevantes Notebookbeispiel

Blogpost