Para realizar inferencias con un modelo entrenado personalizado con un framework de aprendizaje automático, como TensorFlow o PyTorch, se debe guardar y subir el modelo a Vertex AI, crear un extremo de predicción y, luego, implementar el modelo para entregar tráfico en el extremo creado.
Entrada del modelo
Antes de guardar y subir tu modelo a Vertex AI, debes asegurarte de que acepte datos en un formato de carga útil que admita Earth Engine. Para obtener más detalles, consulta nuestra página de formatos de carga útil.
Artefacto del modelo
El siguiente paso es guardar el modelo en un formato que se pueda alojar en Vertex AI.
TensorFlow
Los modelos basados en TensorFlow se pueden guardar en varios formatos diferentes, pero Vertex
AI requiere el formato SavedModel. Los modelos basados en Keras se deben exportar como
modelos guardados con
tf.keras.Model.export().
Otros modelos de TensorFlow requieren el uso de la función más primitiva
tf.saved_model.save().
Consulta la documentación sobre el
formato SavedModel para obtener más
detalles.
PyTorch
Los modelos de PyTorch tienen una forma un poco diferente de preparar los artefactos del modelo para la entrega de predicciones. Si creas un modelo con entrenamiento personalizado, primero debes guardarlo. Por motivos de rendimiento, se recomienda convertir tu modelo de PyTorch en TorchScript y guardar el archivo del modelo con lo siguiente:
model_scripted = torch.jit.script(model) # Export to TorchScript
model_scripted.save('model.pt') # Save
Una vez que se guarda el archivo del modelo, se debe archivar para que se pueda implementar en Vertex AI. Cuando se usa un contenedor compilado previamente, el modelo debe llamarse "model". Para archivar el modelo, se debe ejecutar torch-model-archiver, incluidos los controladores personalizados y los archivos adicionales que requiera el modelo. Aquí hay un ejemplo de eso:
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
Implementación del modelo en Vertex AI
Una vez que se guarden los archivos del modelo, el siguiente paso es subirlo a Vertex
AI. Si el artefacto de tu modelo aún no está en Google Cloud Storage, copia primero el
archivo del modelo allí con un comando como gsutil cp $model_path
gs://${your-bucket}/models/model.
Una vez que se copie, puedes usar el Model Registry de Vertex AI para subir tu modelo o usar la línea de comandos de gcloud y ejecutar algo como lo siguiente:
gcloud ai models upload \
--artifact-uri=gs://{your-bucket}/models/model \
--display-name=${display-name} \
--container-image-uri=${model-container} \
--container-grpc-ports=8500
SUGERENCIA: Para obtener un rendimiento óptimo, habilita las predicciones de gRPC con la
marca container-grpc-ports. Obtén más información sobre las predicciones de gRPC en nuestra
documentación de formatos de carga útil.
Esta marca solo se puede especificar con la herramienta de línea de comandos de gcloud.
Administración de extremos de modelos
Una vez que se sube un modelo a Vertex AI, crea un extremo y, luego, impleméntalo
a través de la página Predicción en línea. Para ello,
crea un extremo nuevo
o usa la línea de comandos de gcloud con los comandos endpoints create y
endpoints deploy-model. Por ejemplo:
Crea un modelo:
gcloud ai endpoints create \
--display-name=${endpoint-name}
La implementación de un 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}
Una vez que se implemente tu modelo, podrás conectarte a él en Earth Engine para realizar inferencias.