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.