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

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 oder ein Bindestrich sein.
  • 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 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 Analysieren mehrerer ML-Modelle 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: 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

Wenn Sie ein gespeichertes Modell mit get_experiment_model zurückgeben möchten, übergeben Sie die Artefakt-ID des gespeicherten Modells.

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

Testmodelle abrufen

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

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: 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 einer bestimmten ExperimentModel-Instanz zurück, z. B. die Modellklasse und den Framework-Typ.

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

ExperimentModel laden

Modell laden

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

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

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

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.
    <a{: class="button button-primary" l10n-attrs-original-order="href,target,class,track-name,track-type" l10n-encrypted-href="V3Ae1hvcBOij4KvUNiRrMltigmNHgUGOXn/QVSGplOhBlpxunv8WHL3F/z3VuS9rwbZOYpOQCXa+v4aZ0dt03w==" target="console" track-name="consoleLink" track-type="tasks" }="">Go to Experiments
    Eine Liste der Tests wird angezeigt. </a{:>
  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