Pour effectuer une inférence avec un modèle entraîné personnalisé à l'aide d'un framework de machine learning tel que TensorFlow ou PyTorch, vous devez enregistrer et importer le modèle dans Vertex AI, créer un point de terminaison de prédiction et déployer le modèle pour gérer le trafic au point de terminaison créé.
Entrée du modèle
Avant d'enregistrer et d'importer votre modèle dans Vertex AI, vous devez vous assurer qu'il accepte les données dans un format de charge utile compatible avec Earth Engine. Pour en savoir plus, consultez notre page sur les formats de charge utile.
Artefact de modèle
L'étape suivante consiste à enregistrer votre modèle dans un format hébergeable dans Vertex AI.
TensorFlow
Les modèles basés sur TensorFlow peuvent être enregistrés dans plusieurs formats différents, mais Vertex AI nécessite le format SavedModel. Les modèles basés sur Keras doivent être exportés en tant que SavedModels avec tf.keras.Model.export()
.
D'autres modèles TensorFlow nécessitent d'utiliser tf.saved_model.save()
, qui est plus primitif.
Pour en savoir plus, consultez la documentation sur le format SavedModel.
PyTorch
Les modèles PyTorch ont une méthode légèrement différente pour préparer les artefacts de modèle à la diffusion de prédictions. Si vous créez un modèle entraîné personnalisé, vous devez d'abord l'enregistrer. Pour des raisons de performances, nous vous recommandons de convertir votre modèle PyTorch en TorchScript et d'enregistrer le fichier de modèle avec:
model_scripted = torch.jit.script(model) # Export to TorchScript
model_scripted.save('model.pt') # Save
Une fois le fichier de modèle enregistré, il doit être archivé pour pouvoir être déployé dans Vertex AI. Lorsque vous utilisez un conteneur prédéfini, le modèle doit être nommé "model". Pour archiver le modèle, vous devez exécuter torch-model-archiver, y compris tout gestionnaire personnalisé et les fichiers supplémentaires requis par votre modèle. Voici un exemple:
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
Déploiement de modèle dans Vertex AI
Une fois vos fichiers de modèle enregistrés, l'étape suivante consiste à importer votre modèle dans Vertex AI. Si votre artefact de modèle n'est pas déjà dans Google Cloud Storage, copiez d'abord votre archive de modèle dans Google Cloud Storage à l'aide d'une commande telle que gsutil cp $model_path
gs://${your-bucket}/models/model
.
Une fois la copie effectuée, vous pouvez utiliser le registre de modèles de Vertex AI pour importer votre modèle ou utiliser la ligne de commande gcloud et exécuter une commande similaire à la suivante:
gcloud ai models upload \
--artifact-uri=gs://{your-bucket}/models/model \
--display-name=${display-name} \
--container-image-uri=${model-container} \
--container-grpc-ports=8500
CONSEIL: Pour des performances optimales, activez les prédictions gRPC avec l'option container-grpc-ports
. Pour en savoir plus sur les prédictions gRPC, consultez la documentation sur les formats de charge utile.
Cette option ne peut être spécifiée qu'à l'aide de l'outil de ligne de commande gcloud.
Modéliser la gestion des points de terminaison
Une fois un modèle importé dans Vertex AI, créez un point de terminaison et déployez le modèle via la page "Prédictions en ligne" en créant un point de terminaison ou à l'aide de la ligne de commande gcloud avec les commandes endpoints create
et endpoints deploy-model
. Exemple :
Créer un modèle:
gcloud ai endpoints create \
--display-name=${endpoint-name}
Le déploiement d'un modèle
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}
Une fois votre modèle déployé, vous pouvez vous y connecter dans Earth Engine pour effectuer des inférences.