Modellartefakte für Inferenz und Erklärung exportieren

Vertex AI bietet vordefinierte Container für Vorhersagen und Erläuterungen von Modellen, die mit den folgenden ML-Frameworks (maschinelles Lernen) trainiert wurden:

  • TensorFlow
  • PyTorch
  • XGBoost
  • scikit-learn

Wenn Sie einen dieser vordefinierten Container verwenden möchten, müssen Sie das Modell als ein oder mehrere Modellartefakte speichern, die den Anforderungen des vordefinierten Containers entsprechen. Diese Anforderungen gelten unabhängig davon, ob Ihre Modellartefakte in Vertex AI erstellt werden.

Wenn Sie einen benutzerdefinierten Container für die Bereitstellung von Vorhersagen nutzen, müssen Sie die Anforderungen auf dieser Seite nicht erfüllen. Sie können sie jedoch weiterhin als Richtlinien verwenden.

Framework-spezifische Anforderungen für den Export in vordefinierte Container

Je nachdem, welches ML-Framework Sie für die Vorhersage verwenden, müssen Sie Modellartefakte in verschiedene Formate exportieren. In den folgenden Abschnitten werden die zulässigen Modellformate für jedes ML-Framework erläutert.

TensorFlow

Wenn Sie ein Modell mithilfe von TensorFlow trainieren, exportieren Sie das Modell als TensorFlow SavedModel-Verzeichnis.

Es gibt mehrere Möglichkeiten, SavedModels aus dem TensorFlow-Trainingscode zu exportieren. In der folgenden Liste werden einige Möglichkeiten für verschiedene TensorFlow APIs erläutert:

Erstellen Sie für die Bereitstellung von Vorhersagen mit diesen Artefakten ein Model mit dem vordefinierten Container für Vorhersagen, der der Version von TensorFlow entspricht, die Sie für das Training verwendet haben.

TensorFlow für Vertex Explainable AI

Wenn Sie Erläuterungen abrufen möchten von einem Model das verwendet einen vordefinierten TensorFlow-Container für Vorhersagen, informieren Sie sich über die zusätzlichen Anforderungen für das Exportieren eines TensorFlow-Modells für Vertex Explainable AI.

Serverseitige Batchverarbeitung von Anfragen für Tensorflow aktivieren

Wenn Sie die Batchverarbeitung für Anfragen für ein Model aktivieren möchten, das einen vordefinierten TensorFlow-Container zur Bereitstellung von Vorhersagen verwendet, schließen Sie config/batching_parameters_config in dasselbe Cloud Storage-Verzeichnis wie die Datei saved_model.pb ein. Informationen zur Konfiguration der Batch-Konfigurationsdatei finden Sie in der offiziellen TensorFlow-Dokumentation.

PyTorch

Sie müssen Ihre Modellartefakte in einer Modellarchivdatei (.mar) verpacken. Dieses Archiv muss ein Handler-Skript enthalten, entweder Standard oder benutzerdefiniert, das definiert, wie das Modell Vorhersageanfragen verarbeitet. Für komplexere Arbeitsabläufe sollten Sie benutzerdefinierte Container verwenden, anstatt sich auf das vordefinierte PyTorch-Bereitstellungs-Image zu verlassen.

Die vordefinierten PyTorch-Images erwarten, dass das Archiv den Namen model.mar hat. Legen Sie also beim Erstellen des Archivs den Modellnamen auf „model“ fest.

Informationen zur Optimierung von Arbeitsspeichernutzung, Latenz und Durchsatze eines PyTorch-Modells, das mit TorchServe bereitgestellt wird, finden Sie im Leitfaden: PyTorch-Leistung.

XGBoost

Wenn Sie einen vordefinierten XGBoost-Container verwenden, um ein Modell zu trainieren, können Sie das trainierte Modell so exportieren:

Der Dateiname Ihres Modellartefakts muss genau einer dieser Optionen entsprechen.

Die folgenden Beispiele zeigen, wie ein Modell trainiert und exportiert wird:

xgboost.Booster

import os

from google.cloud import storage
from sklearn import datasets
import xgboost as xgb

digits = datasets.load_digits()
dtrain = xgb.DMatrix(digits.data, label=digits.target)
bst = xgb.train({}, dtrain, 20)

artifact_filename = 'model.bst'

# Save model artifact to local filesystem (doesn't persist)
local_path = artifact_filename
bst.save_model(local_path)

# Upload model artifact to Cloud Storage
model_directory = os.environ['AIP_MODEL_DIR']
storage_path = os.path.join(model_directory, artifact_filename)
blob = storage.blob.Blob.from_string(storage_path, client=storage.Client())
blob.upload_from_filename(local_path)

joblib

import os

from google.cloud import storage
from sklearn import datasets
import joblib
import xgboost as xgb

digits = datasets.load_digits()
dtrain = xgb.DMatrix(digits.data, label=digits.target)
bst = xgb.train({}, dtrain, 20)

artifact_filename = 'model.joblib'

# Save model artifact to local filesystem (doesn't persist)
local_path = artifact_filename
joblib.dump(bst, local_path)

# Upload model artifact to Cloud Storage
model_directory = os.environ['AIP_MODEL_DIR']
storage_path = os.path.join(model_directory, artifact_filename)
blob = storage.blob.Blob.from_string(storage_path, client=storage.Client())
blob.upload_from_filename(local_path)

Erstellen Sie für die Bereitstellung von Vorhersagen mit diesem Artefakt ein Model mit dem vordefinierten Container für Vorhersagen, der der Version von XGBoost entspricht, die Sie für das Training verwendet haben.

scikit-learn

Wenn Sie ein vordefiniertes Modell verwenden, um ein Modell zu trainieren, können Sie es mit der Bibliothek exportieren, um eine Datei namens zu exportieren.scikit-learnjoblibmodel.joblib

Der Dateiname Ihres Modellartefakts muss genau einer dieser Optionen entsprechen. Sie können Standard-scikit-learn-Estimatoren oder scikit-learn Pipelines exportieren.

Das folgende Beispiel zeigt, wie ein Modell trainiert und exportiert wird:

joblib

import os

from google.cloud import storage
from sklearn import datasets
from sklearn.ensemble import RandomForestClassifier
import joblib

digits = datasets.load_digits()
classifier = RandomForestClassifier()
classifier.fit(digits.data, digits.target)

artifact_filename = 'model.joblib'

# Save model artifact to local filesystem (doesn't persist)
local_path = artifact_filename
joblib.dump(classifier, local_path)

# Upload model artifact to Cloud Storage
model_directory = os.environ['AIP_MODEL_DIR']
storage_path = os.path.join(model_directory, artifact_filename)
blob = storage.blob.Blob.from_string(storage_path, client=storage.Client())
blob.upload_from_filename(local_path)

Erstellen Sie für die Bereitstellung von Vorhersagen mit diesem Artefakt ein Model mit dem vordefinierten Container für Vorhersagen , der der Version von scikit-learn entspricht, die Sie für das Training verwendet haben.

Nächste Schritte