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.