Gehostetes benutzerdefiniertes Modell für Earth Engine

Wenn Sie mit einem benutzerdefiniert trainierten Modell mit einem Framework für maschinelles Lernen wie TensorFlow oder PyTorch eine Inferenz ausführen möchten, müssen Sie das Modell in Vertex AI speichern und hochladen, einen Vorhersageendpunkt erstellen und das Modell bereitstellen, um Traffic an dem erstellten Endpunkt zu verarbeiten.

Modellinput

Bevor Sie Ihr Modell speichern und in Vertex AI hochladen, sollten Sie prüfen, ob das Modell Daten in einem Nutzlastformat akzeptiert, das von Earth Engine unterstützt wird. Weitere Informationen finden Sie auf der Seite Nutzlastformate.

Modellartefakt

Im nächsten Schritt speichern Sie Ihr Modell in einem Format, das in Vertex AI gehostet werden kann.

TensorFlow

TensorFlow-basierte Modelle können in mehreren verschiedenen Formaten gespeichert werden. Für Vertex AI ist jedoch das SavedModel-Format erforderlich. Keras-basierte Modelle müssen mit tf.keras.Model.export() als SavedModels exportiert werden. Für andere TensorFlow-Modelle ist die einfachere tf.saved_model.save() erforderlich. Weitere Informationen finden Sie in der Dokumentation zum SavedModel-Format.

PyTorch

Bei PyTorch-Modellen werden die Modellartefakte für die Bereitstellung von Vorhersagen auf eine etwas andere Weise vorbereitet. Wenn Sie ein benutzerdefiniert trainiertes Modell erstellen, muss es zuerst gespeichert werden. Aus Leistungsgründen wird empfohlen, Ihr PyTorch-Modell in TorchScript umzuwandeln und die Modelldatei mit folgendem Befehl zu speichern:

model_scripted = torch.jit.script(model) # Export to TorchScript
model_scripted.save('model.pt') # Save

Nachdem die Modelldatei gespeichert wurde, muss sie archiviert werden, damit sie in Vertex AI bereitgestellt werden kann. Bei Verwendung eines vordefinierten Containers muss das Modell den Namen „model“ haben. Zum Archivieren des Modells muss „torch-model-archiver“ einschließlich aller benutzerdefinierten Handler und zusätzlicher Dateien ausgeführt werden, die für das Modell erforderlich sind. Hier ein Beispiel:

torch-model-archiver -f \
  --model-name model \
  --version 1.0  \
  --serialized-file $model_file \
  --handler $hander_file \
  --extra-files $index_to_name_file \
  --export-path $model_path

Modellbereitstellung in Vertex AI

Nachdem Sie Ihre Modelldateien gespeichert haben, laden Sie Ihr Modell in Vertex AI hoch. Wenn sich Ihr Modellartefakt noch nicht in Google Cloud Storage befindet, kopieren Sie es mit einem Befehl wie gsutil cp $model_path gs://${your-bucket}/models/model dorthin.

Anschließend können Sie Ihr Modell entweder über die Vertex AI Model Registry hochladen oder über die gcloud-Befehlszeile mit einem Befehl wie dem folgenden ausführen:

gcloud ai models upload \
  --artifact-uri=gs://{your-bucket}/models/model \
  --display-name=${display-name} \
  --container-image-uri=${model-container} \
  --container-grpc-ports=8500

TIPP: Aktivieren Sie für eine optimale Leistung gRPC-Vorhersagen mit dem Flag container-grpc-ports. Weitere Informationen zu gRPC-Vorhersagen finden Sie in der Dokumentation zu Nutzlastformaten. Dieses Flag kann nur mit dem Befehlszeilentool „gcloud“ angegeben werden.

Endpunktverwaltung modellieren

Nachdem ein Modell in Vertex AI hochgeladen wurde, erstellen Sie einen Endpunkt und stellen das Modell über die Seite „Onlinevorhersage“ bereit. Dazu können Sie einen neuen Endpunkt erstellen oder die gcloud-Befehlszeile mit den Befehlen endpoints create und endpoints deploy-model verwenden. Beispiel:

So erstellen Sie ein Modell:

gcloud ai endpoints create \
  --display-name=${endpoint-name}

Modell bereitstellen

gcloud ai endpoints deploy-model {endpoint-id} \
  --model=${model-id} \
  --traffic-split=0=100 \
  --display-name=${model-display-name} \
  --min-replica-count=${min-replica-count} \
  --max-replica-count=${max-replica-count}

Sobald Ihr Modell bereitgestellt wurde, können Sie eine Verbindung zu Ihrem Modell in Earth Engine herstellen, um Inferenzen durchzuführen.