Modelo personalizado hospedado para o Earth Engine

A inferência com um modelo treinado personalizado usando um framework de machine learning, como o TensorFlow ou o PyTorch, exige salvar e fazer upload do modelo para a Vertex AI, criar um endpoint de previsão e implantar o modelo para atender o tráfego no endpoint criado.

Entrada do modelo

Antes de salvar e fazer upload do modelo para a Vertex AI, verifique se ele aceita dados em um formato de payload compatível com o Earth Engine. Para mais detalhes, consulte a página Formatos de payload.

Artefato do modelo

A próxima etapa é salvar o modelo em um formato que possa ser hospedado na Vertex AI.

TensorFlow

Os modelos baseados no TensorFlow podem ser salvos em vários formatos diferentes, mas a Vertex AI exige o formato SavedModel. Os modelos baseados no Keras precisam ser exportados como SavedModels com tf.keras.Model.export(). Outros modelos do TensorFlow exigem o uso do tf.saved_model.save() mais primitivo. Consulte a documentação sobre o formato SavedModel para mais detalhes.

PyTorch

Os modelos do PyTorch têm uma maneira um pouco diferente de preparar os artefatos do modelo para a exibição de previsões. Se você estiver criando um modelo treinado de maneira personalizada, ele primeiro precisa ser salvo. Por motivos de desempenho, é recomendável converter o modelo do PyTorch em TorchScript e salvar o arquivo de modelo com:

model_scripted = torch.jit.script(model) # Export to TorchScript
model_scripted.save('model.pt') # Save

Depois que o arquivo do modelo for salvo, ele precisa ser arquivado para ser implantado na Vertex AI. Ao usar um contêiner pré-criado, o modelo precisa ser nomeado como "modelo". Para arquivar o modelo, o torch-model-archiver precisa ser executado, incluindo qualquer gerenciador personalizado e arquivos adicionais necessários para o modelo. Confira um exemplo:

torch-model-archiver -f \
  --model-name model \
  --version 1.0  \
  --serialized-file $model_file \
  --handler $hander_file \
  --extra-files $index_to_name_file \
  --export-path $model_path

Implantação de modelos na Vertex AI

Depois de salvar os arquivos do modelo, a próxima etapa é fazer upload dele para a Vertex AI. Se o artefato do modelo ainda não estiver no Google Cloud Storage, copie o arquivo do modelo para lá primeiro com um comando como gsutil cp $model_path gs://${your-bucket}/models/model.

Depois de copiar, use o Registro de modelos da Vertex AI para fazer upload do modelo ou use a linha de comando gcloud e execute algo como:

gcloud ai models upload \
  --artifact-uri=gs://{your-bucket}/models/model \
  --display-name=${display-name} \
  --container-image-uri=${model-container} \
  --container-grpc-ports=8500

DICA: para um desempenho ideal, ative as previsões do gRPC com a flag container-grpc-ports. Confira mais informações sobre as previsões do gRPC na nossa documentação de formatos de payload. Essa flag só pode ser especificada usando a ferramenta de linha de comando gcloud.

Gerenciamento de endpoints do modelo

Depois que um modelo for enviado para a Vertex AI, crie um endpoint e implante o modelo na página "Previsão on-line" criando um novo endpoint ou usando a linha de comando gcloud com os comandos endpoints create e endpoints deploy-model. Exemplo:

Como criar um modelo:

gcloud ai endpoints create \
  --display-name=${endpoint-name}

Como implantar um modelo

gcloud ai endpoints deploy-model {endpoint-id} \
  --model=${model-id} \
  --traffic-split=0=100 \
  --display-name=${model-display-name} \
  --min-replica-count=${min-replica-count} \
  --max-replica-count=${max-replica-count}

Depois que o modelo for implantado, você poderá se conectar a ele no Earth Engine para realizar inferências.