In der Earth Engine unterstützte Payload-Formate für gehostete Modelle

Ihr benutzerdefiniert trainiertes Modell muss so konfiguriert sein, dass Earth Engine korrekt formatierte, auswertbare Inferenzanfragen an das Modell senden kann, da es auf Vertex AI gehostet wird.

Unterstützte Modellinputs

Earth Engine stellt Anfragen in Ihrem Namen, wenn Inferenzen ausgeführt werden. Geben Sie das Nutzlastformat an, mit dem EE Anfragen sendet, indem Sie den Parameter payloadFormat angeben, wenn Sie den Modell-Connector mit ee.Model.fromVertexAi instanziieren.

gRPC-Vorhersage-Nutzlast

Alle gehosteten TensorFlow-Modelle können Vorhersagen über das gRPC-Protokoll senden. Dies ist die bevorzugte Methode, um gehostete Modelle mit Earth Engine zu verbinden, da dies zu einer geringeren Vorhersagelatenz und einer höheren Zuverlässigkeit führt.

GRPC_TF_TENSORS

Verwenden Sie das GRPC_TF_TENSORS-Nutzlastformat, um gRPC mit TensorFlow-Modellen zu verwenden. Alle Unterkünfte und/oder Zonen werden in einer einzigen PredictRequest codiert. Diese PredictRequest wird in ein Dictionary mit Tensoren umgewandelt, das für Ihr Modell verwendet wird.

GRPC_SERIALIZED_TF_TENSORS

Verwenden Sie das GRPC_SERIALIZED_TF_TENSORS-Format, wenn Sie ein Cloud AI Platform-Modell migrieren möchten, das bereits in Earth Engine eingebunden war, ohne das Modell ändern zu müssen. Sie müssen das Modell noch einmal hochladen und bereitstellen, wenn container_grpc_ports in Vertex AI nicht für das Modell festgelegt ist.

GRPC_SERIALIZED_TF_EXAMPLES

Verwenden Sie die GRPC_SERAILZED_TF_EXAMPLES für Modelle, die tf.Example-Protokoll-Buffer unterstützen. Earth Engine sendet einen einzelnen Tensor mit dem Namen „input“, der den utf-8-codierten Proto-ByteString eines Beispiel-Proto enthält.

HTTP API-Nutzlast

Vertex AI unterstützt die Verbindung zu HTTP-Inferenzabfrageendpunkten. Earth Engine unterstützt mehrere gängige HTTP-Nutzlastformate. Standardmäßig unterstützen alle benutzerdefinierten Vertex AI-Modelle die HTTP-Inferenz-API.

SERIALIZED_TF_TENSORS

Dies ist die Standard-payloadFormat für die Verbindung mit einem gehosteten Modell in Vertex AI. Dieses Nutzlastformat ist das effizienteste der HTTP-Nutzlastformate bei der Verwendung von TensorFlow-Modellen.

In Earth Engine werden die Eingaben so erstellt: Für jeden für Ihre Inferenzanfrage erforderlichen Band und jede erforderliche Eigenschaft gibt es ein einzelnes Schlüssel/Wert-Paar im instances-Objekt, das an Ihr gehostetes Modell gesendet wird.

Jeder Schlüssel ist der Name des Bandes oder der Property und jeder Wert ist ein Base64-codierter TensorProto-ByteString als string_val.

RAW_JSON

Für andere Modellframeworks ist das flexibelste Format, das wir senden können, ein JSON-Dictionary mit benannten Eingaben und Werten. Dieses Nutzlastformat funktioniert standardmäßig gut mit PyTorch- und AutoML-Modellen.

Alle numerischen Werte werden jedoch in JSON-Strings konvertiert. Um beispielsweise die Zahl 12.345 darzustellen, codieren wir sie als String „12.345“. Große Inference-Nutzlast werden mit diesem Nutzlastformat nicht gut unterstützt.

ND_ARRAYS

Das Format ähnelt dem RAW_JSON-Nutzlastformat, aber die Schlüssel werden weggelassen und es wird nur eine Liste von Zahlen im selben Format übergeben, wie bei der Aufrufung von to_list() auf einem NumPy-ndarray. Dieses Nutzlastformat funktioniert nativ gut mit PyTorch.