Wenn Sie eine Inferenz mit einem benutzerdefinierten trainierten Modell mithilfe eines Frameworks für maschinelles Lernen wie TensorFlow oder PyTorch durchführen möchten, müssen Sie das Modell speichern und in Vertex AI hochladen, einen Vorhersageendpunkt erstellen und das Modell bereitstellen, um Traffic am erstellten Endpunkt zu verarbeiten.
Modelleingabe
Bevor Sie Ihr Modell speichern und in Vertex AI hochladen, sollten Sie prüfen, ob das Modell Daten in einem von Earth Engine unterstützten Nutzlastformat akzeptiert. 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 verschiedenen Formaten gespeichert werden, Vertex AI erfordert jedoch das SavedModel-Format. Keras-basierte Modelle müssen als SavedModels mit tf.keras.Model.export() exportiert werden.
Andere TensorFlow-Modelle erfordern die Verwendung des primitiveren tf.saved_model.save().
Weitere Informationen finden Sie in der Dokumentation zum SavedModel-Format.
PyTorch
Bei PyTorch-Modellen werden die Modellartefakte für die Vorhersagebereitstellung etwas anders vorbereitet. Wenn Sie ein benutzerdefiniert trainiertes Modell erstellen, muss das Modell zuerst gespeichert werden. Aus Leistungsgründen wird empfohlen, das PyTorch-Modell in TorchScript zu konvertieren und die Modelldatei so 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. Wenn Sie einen vordefinierten Container verwenden, muss das Modell „model“ heißen. Zum Archivieren des Modells muss „torch-model-archiver“ ausgeführt werden, einschließlich aller benutzerdefinierten Handler und zusätzlichen Dateien, die Ihr Modell benötigt. Hier ist 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 Ihre Modelldateien gespeichert wurden, müssen Sie Ihr Modell im nächsten Schritt in Vertex AI hochladen. Wenn sich Ihr Modellartefakt noch nicht in Google Cloud Storage befindet, kopieren Sie Ihr Modellarchiv zuerst mit einem Befehl wie gsutil cp $model_path
gs://${your-bucket}/models/model dorthin.
Nach dem Kopieren können Sie entweder die Vertex AI Model Registry verwenden, um Ihr Modell hochzuladen, oder die gcloud-Befehlszeile verwenden und Folgendes 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 gcloud-Befehlszeilentool angegeben werden.
Modellendpunktverwaltung
Nachdem ein Modell in Vertex AI hochgeladen wurde, erstellen Sie einen Endpunkt und stellen das Modell über die Seite „Onlinevorhersage“ bereit. Dazu erstellen Sie einen neuen Endpunkt oder verwenden die gcloud-Befehlszeile mit den Befehlen endpoints create und endpoints deploy-model. Beispiel:
Modell erstellen:
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 ist, können Sie in Earth Engine eine Verbindung zu Ihrem Modell herstellen, um Inferenzen auszuführen.