Modelo personalizado alojado para Earth Engine

Para realizar inferencias con un modelo entrenado personalizado con un framework de aprendizaje automático, como TensorFlow o PyTorch, debes 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 el modelo acepte datos en un formato de carga útil que admita Earth Engine. Para obtener más detalles, consulta nuestra página sobre 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 de modelo guardado. Los modelos basados en Keras se deben exportar como modelos guardados con tf.keras.Model.export(). Otros modelos de TensorFlow requieren el uso de tf.saved_model.save() más primitivo. Consulta la documentación sobre el formato SavedModel para obtener más detalles.

PyTorch

Los modelos de PyTorch tienen una forma ligeramente diferente de preparar los artefactos del modelo para la entrega de predicciones. Si creas un modelo entrenado personalizado, primero debes guardarlo. Por motivos de rendimiento, se recomienda convertir tu modelo de PyTorch a 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 precompilado, el modelo debe llamarse “modelo”. Para archivar el modelo, se debe ejecutar torch-model-archiver, incluidos los controladores personalizados y los archivos adicionales que requiera tu modelo. Aquí tienes un ejemplo:

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 de modelos 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, primero cópialo allí con un comando como gsutil cp $model_path gs://${your-bucket}/models/model.

Una vez que lo copies, puedes usar el registro de modelos 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 sobre 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, crea un extremo nuevo o usa la línea de comandos de gcloud con los comandos endpoints create y endpoints deploy-model para implementarlo a través de la página de predicciones en línea. 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.