Niestandardowy wytrenowany model musi być skonfigurowany tak, aby Earth Engine mógł wysyłać do niego poprawne i zrozumiałe żądania wnioskowania, gdy model jest hostowany w Vertex AI.
Obsługiwane dane wejściowe modelu
Podczas wykonywania wnioskowania Earth Engine tworzy żądania w Twoim imieniu.
Podczas tworzenia wystąpienia łącznika modelu za pomocą parametru payloadFormat
wskaż format ładunku, w którym usługa zewnętrzna będzie wysyłać żądania.ee.Model.fromVertexAi
Dane wyjściowe prognozy gRPC
Wszystkie hostowane modele TensorFlow mogą wysyłać prognozy za pomocą protokołu gRPC. Jest to preferowany sposób łączenia hostowanych modeli z Earth Engine, ponieważ zapewnia mniejsze opóźnienie prognoz i większą niezawodność.
GRPC_TF_TENSORS
Aby używać gRPC z modelami TensorFlow, użyj formatu GRPC_TF_TENSORS
.
Wszystkie właściwości lub pasma zostaną zakodowane w jednym pliku PredictRequest
.
Ten PredictRequest
zostanie przekonwertowany na słownik tensorów, z których będzie korzystać model.
GRPC_SERIALIZED_TF_TENSORS
Użyj formatu GRPC_SERIALIZED_TF_TENSORS
, jeśli chcesz przenieść model Cloud AI Platform, który został wcześniej zintegrowany z Earth Engine, bez konieczności modyfikacji modelu. Jeśli w modelu w Vertex AI nie jest ustawiona wartość container_grpc_ports
, musisz ponownie przesłać i ponownie wdrożyć model.
GRPC_SERIALIZED_TF_EXAMPLES
Używaj GRPC_SERAILZED_TF_EXAMPLES
w przypadku modeli, które obsługują bufory protokołu tf.Example. Earth Engine wyśle jeden tensor o nazwie „input”, który zawiera zakodowany w formacie utf-8 proto ByteString przykładowego proto.
Dane HTTP API
Vertex AI obsługuje łączenie się z punktami końcowymi wnioskowania HTTP. Earth Engine obsługuje kilka popularnych formatów danych HTTP. Domyślnie wszystkie modele niestandardowe Vertex AI obsługują interfejs HTTP inference API.
SERIALIZED_TF_TENSORS
Jest to domyślna wartość payloadFormat
podczas łączenia się z modelem hostowanym w Vertex AI. Ten format danych jest najbardziej wydajnym formatem danych HTTP w przypadku modeli TensorFlow.
Earth Engine będzie tworzyć dane wejściowe w następujący sposób: każda grupa i właściwość wymagana do wykonania żądania wnioskowania będzie stanowić pojedynczą parę klucz-wartość w obiekcie instances
wysyłanym do hostowanego modelu.
Każdy klucz będzie nazwą pasma lub właściwości, a każda wartość będzie string_val
zakodowanym w formacie Base64 bajtowym ciągiem znaków TensorProto.
RAW_JSON
W przypadku innych ramek modelowych najbardziej elastycznym formatem, który możemy wysłać, jest słownik JSON nazwanych danych wejściowych i wartości. Ten format danych jest domyślnie dobrze obsługiwany przez modele PyTorch i AutoML.
Pamiętaj jednak, że wszystkie wartości liczbowe zostaną przekonwertowane na ciągi tekstowe JSON. Na przykład, aby zakodować liczbę 12,345, użyjemy ciągu „12.345”. Ten format nie obsługuje dużych pakietów danych do wnioskowania.
ND_ARRAYS
Jest to format podobny do RAW_JSON
, ale bez kluczy. Zamiast tego zawiera listę liczb w tym samym formacie wywołania to_list()
w tablicy NumPy ndarray. Ten format danych jest natywnie obsługiwany przez PyTorch.