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.