Formatos de payload de modelo hospedado compatíveis com o Earth Engine

O modelo treinado de maneira personalizada precisa ser configurado para que o Earth Engine possa enviar solicitações de inferência bem formadas e interpretáveis ao modelo, já que ele é hospedado na Vertex AI.

Entradas de modelo com suporte

O Earth Engine cria solicitações em seu nome ao realizar a inferência. Especifique o formato de payload que o EE vai enviar solicitações usando o parâmetro payloadFormat ao instanciar o conector de modelo com ee.Model.fromVertexAi.

Payloads de previsão do gRPC

Todos os modelos hospedados do TensorFlow podem enviar previsões pelo protocolo gRPC. Essa é a maneira preferencial de conectar modelos hospedados ao Earth Engine, porque resulta em latência de previsão mais baixa e maior confiabilidade.

GRPC_TF_TENSORS

Use o formato de payload GRPC_TF_TENSORS para usar o gRPC com modelos do TensorFlow. Todas as propriedades e/ou bandas serão codificadas em um único PredictRequest. Esse PredictRequest será convertido em um dicionário de tensores para uso do modelo.

GRPC_SERIALIZED_TF_TENSORS

Use o formato GRPC_SERIALIZED_TF_TENSORS se quiser migrar um modelo do Cloud AI Platform que já estava integrado ao Earth Engine sem precisar modificá-lo. Será necessário fazer upload e implantar novamente se container_grpc_ports não estiver definido no modelo na Vertex AI.

GRPC_SERIALIZED_TF_EXAMPLES

Use o GRPC_SERAILZED_TF_EXAMPLES para modelos que oferecem suporte a buffers de protocolo tf.Example. O Earth Engine vai enviar um único tensor chamado "input" que contém o ByteString proto codificado em utf-8 de um proto de exemplo.

Payloads da API HTTP

A Vertex AI oferece suporte à conexão com endpoints de inferência HTTP. O Earth Engine oferece suporte a vários formatos de payload HTTP comuns. Por padrão, todos os modelos personalizados da Vertex AI oferecem suporte à API de inferência HTTP.

SERIALIZED_TF_TENSORS

Esse é o payloadFormat padrão ao se conectar a um modelo hospedado na Vertex AI. Esse formato de payload é o mais eficiente dos formatos de payload HTTP ao usar modelos do TensorFlow.

O Earth Engine vai construir as entradas da seguinte maneira: para cada banda e propriedade necessárias para a solicitação de inferência, será um único par de chave-valor no objeto instances enviado ao modelo hospedado.

Cada chave será o nome da banda ou da propriedade, e cada valor será um TensorProto ByteString codificado em Base64 como string_val.

RAW_JSON

Para outros modelos de frameworks, o formato mais flexível que podemos enviar é um dicionário JSON de entradas e valores nomeados. Esse formato de payload funciona bem com modelos PyTorch e AutoML por padrão.

No entanto, todos os valores numéricos serão convertidos em strings JSON. Por exemplo, para representar o número 12.345, codificamos como a string "12.345". Payloads de inferência grandes não têm suporte para esse formato.

ND_ARRAYS

Isso é semelhante ao formato de payload RAW_JSON, mas vai omitir as chaves e transmitir apenas uma lista de números no mesmo formato de chamada to_list() em um ndarray NumPy. Esse formato de payload funciona bem com o PyTorch de forma nativa.