Modelo personalizado hospedado para o Earth Engine

Para realizar inferências com um modelo treinado personalizado usando um framework de machine learning, como o TensorFlow ou o PyTorch, é necessário salvar e fazer upload do modelo para a Vertex AI, criar um endpoint de previsão e implantar o modelo para disponibilizar 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 nossa página de 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 requer o formato SavedModel. Os modelos baseados em 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 disponibilização de previsões. Se você estiver criando um modelo treinado de maneira personalizada, ele precisará ser salvo primeiro. Por motivos de desempenho, recomendamos 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 precisará ser arquivado para que possa ser implantado na Vertex AI. Ao usar um contêiner pré-criado, o modelo precisa ser chamado de "model". Para arquivar o modelo, o torch-model-archiver precisa ser executado, incluindo qualquer gerenciador personalizado e arquivos adicionais que o modelo exija. Veja 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 que os arquivos do modelo forem salvos, a próxima etapa será fazer upload do modelo 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 Model Registry 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. Veja 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 de modelo

Depois que um modelo for enviado para a Vertex AI, crie um endpoint e implante o modelo pela página de 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.