Votre modèle entraîné personnalisé doit être configuré de sorte qu'Earth Engine puisse envoyer des requêtes d'inférence bien formées et interprétables au modèle, car il est hébergé sur Vertex AI.
Entrées de modèle compatibles
Earth Engine génère des requêtes en votre nom lorsque vous effectuez des inférences.
Spécifiez le format de la charge utile avec lequel l'EE enverra des requêtes à l'aide du paramètre payloadFormat
lorsque vous instanciez le connecteur de modèle avec ee.Model.fromVertexAi
.
Charges utiles de prédiction gRPC
Tous les modèles TensorFlow hébergés peuvent envoyer des prédictions via le protocole gRPC. Il s'agit de la méthode privilégiée pour connecter des modèles hébergés à Earth Engine, car elle réduit la latence de prédiction et améliore la fiabilité.
GRPC_TF_TENSORS
Utilisez le format de charge utile GRPC_TF_TENSORS
pour utiliser gRPC avec des modèles TensorFlow.
Toutes les propriétés et/ou bandes seront encodées dans un seul PredictRequest
.
Ce PredictRequest
sera converti en dictionnaire de tenseurs que votre modèle pourra utiliser.
GRPC_SERIALIZED_TF_TENSORS
Utilisez le format GRPC_SERIALIZED_TF_TENSORS
si vous souhaitez migrer un modèle Cloud AI Platform qui était déjà intégré à Earth Engine sans avoir à le modifier. Vous devrez réimporter et redéployer votre modèle si container_grpc_ports
n'est pas défini dans Vertex AI.
GRPC_SERIALIZED_TF_EXAMPLES
Utilisez GRPC_SERAILZED_TF_EXAMPLES
pour les modèles compatibles avec les tampons de protocole tf.Example. Earth Engine envoie un seul tenseur nommé "input" qui contient le ByteString proto encodé en UTF-8 d'un exemple de proto.
Charges utiles de l'API HTTP
Vertex AI permet de se connecter aux points de terminaison d'inférence HTTP. Earth Engine est compatible avec plusieurs des formats de charge utile HTTP courants. Par défaut, tous les modèles personnalisés Vertex AI sont compatibles avec l'API d'inférence HTTP.
SERIALIZED_TF_TENSORS
Il s'agit de l'payloadFormat
par défaut lorsque vous vous connectez à un modèle hébergé dans Vertex AI. Ce format de charge utile est le plus efficace des formats de charge utile HTTP lorsque vous utilisez des modèles TensorFlow.
Earth Engine construit les entrées de la manière suivante: pour chaque bande et propriété requise pour votre requête d'inférence, il s'agit d'une seule paire clé-valeur dans l'objet instances
envoyé à votre modèle hébergé.
Chaque clé correspond au nom de la bande ou de la propriété, et chaque valeur correspond à une chaîne d'octets Base64 TensorProto en tant que string_val
.
RAW_JSON
Pour les autres frameworks de modèles, le format le plus flexible que nous pouvons envoyer est un dictionnaire JSON d'entrées et de valeurs nommées. Ce format de charge utile fonctionne bien avec les modèles PyTorch et AutoML par défaut.
Notez toutefois que toutes les valeurs numériques seront converties en chaînes JSON. Par exemple, pour représenter le nombre 12,345, nous l'encodons sous la forme de la chaîne "12,345". Les charges utiles d'inférence volumineuses ne sont pas bien compatibles avec ce format de charge utile.
ND_ARRAYS
Il s'agit d'un format de charge utile semblable à celui de RAW_JSON
, mais les clés sont omises et seule une liste de nombres est transmise au même format que l'appel de to_list()
sur un ndarray NumPy. Ce format de charge utile fonctionne bien avec PyTorch de manière native.