Tu modelo entrenado personalizado debe configurarse de modo que Earth Engine pueda enviar solicitudes de inferencia interpretables y bien formadas al modelo, ya que se aloja en Vertex AI.
Entradas de modelos compatibles
Earth Engine construye solicitudes en tu nombre cuando realiza inferencias.
Especifica el formato de carga útil con el que EE enviará solicitudes con el parámetro payloadFormat
cuando crees una instancia del conector de modelos con ee.Model.fromVertexAi
.
Cargas útiles de predicción de gRPC
Todos los modelos de TensorFlow alojados pueden enviar predicciones a través del protocolo gRPC. Esta es la forma preferida de conectar modelos alojados con Earth Engine, ya que generará una latencia de predicción más baja y una mayor confiabilidad.
GRPC_TF_TENSORS
Usa el formato de carga útil GRPC_TF_TENSORS
para usar gRPC con modelos de TensorFlow.
Todas las propiedades o bandas se codificarán en un solo PredictRequest
.
Este PredictRequest
se convertirá en un diccionario de tensores para que lo use tu
modelo.
GRPC_SERIALIZED_TF_TENSORS
Usa el formato GRPC_SERIALIZED_TF_TENSORS
si deseas migrar un modelo de Cloud AI Platform que ya estaba integrado con Earth Engine sin tener que modificarlo. Deberás volver a subir y a implementar el modelo si container_grpc_ports
no está configurado en tu modelo en Vertex AI.
GRPC_SERIALIZED_TF_EXAMPLES
Usa GRPC_SERAILZED_TF_EXAMPLES
para los modelos que admiten búferes de protocolo de tf.Example. Earth Engine enviará un solo tensor llamado “input” que contiene el proto ByteString codificado en UTF-8 de un proto de ejemplo.
Carga útil de la API de HTTP
Vertex AI admite la conexión a extremos de inferencia HTTP. Earth Engine admite algunos de los formatos de carga útil HTTP comunes. De forma predeterminada, todos los modelos personalizados de Vertex AI admiten la API de inferencia HTTP.
SERIALIZED_TF_TENSORS
Este es el payloadFormat
predeterminado cuando te conectas a un modelo alojado en Vertex AI. Este formato de carga útil es el más eficiente de los formatos de carga útil HTTP cuando se usan modelos de TensorFlow.
Earth Engine construirá las entradas de la siguiente manera: para cada banda y
propiedad requeridas para tu solicitud de inferencia, habrá un solo par clave-valor en
el objeto instances
que se enviará a tu modelo alojado.
Cada clave será el nombre de la banda o la propiedad, y cada valor será un ByteString de TensorProto codificado en Base64 como string_val
.
RAW_JSON
Para otros frameworks de modelos, el formato más flexible que podemos enviar es un diccionario JSON de entradas y valores nombrados. Este formato de carga útil funciona bien con los modelos de PyTorch y AutoML de forma predeterminada.
Sin embargo, ten en cuenta que todos los valores numéricos se convertirán en cadenas JSON. Por ejemplo, para representar el número 12.345, lo codificamos como la cadena “12.345”. Las cargas útiles de inferencia grandes no son compatibles con este formato.
ND_ARRAYS
Esto es similar al formato de carga útil RAW_JSON
, pero omitirá las claves y solo pasará una lista de números en el mismo formato de llamada a to_list()
en un ndarray de NumPy. Este formato de carga útil funciona bien con PyTorch de forma nativa.