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 diffuser le trafic au niveau du 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 pouvant être hébergé dans Vertex AI.
TensorFlow
Les modèles basés sur TensorFlow peuvent être enregistrés dans plusieurs formats, 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 l'utilisation de la fonction tf.saved_model.save() plus primitive.
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 pour 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é sur Vertex AI. Lorsque vous utilisez un conteneur prédéfini, le modèle doit être nommé "model". Pour archiver le modèle, torch-model-archiver doit être exécuté, y compris tout gestionnaire personnalisé et tout fichier supplémentaire requis par votre modèle. En 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èles sur 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 ne se trouve pas déjà dans Google Cloud Storage, copiez-y d'abord l'archive de votre modèle à l'aide d'une commande telle que gsutil cp $model_path
gs://${your-bucket}/models/model.
Une fois le modèle copié, vous pouvez utiliser Vertex AI Model Registry pour l'importer ou utiliser la ligne de commande gcloud et exécuter une commande de ce type :
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 notre 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.
Gestion des points de terminaison de modèle
Une fois qu'un modèle est importé dans Vertex AI, créez un point de terminaison et déployez le modèle via la page "Prédiction en ligne" en créant un point de terminaison ou en utilisant 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.