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.