Le SDK Vertex AI inclut la classe Model
pour fonctionner avec un modèle que vous entraînez et utilisez ensuite pour les prédictions. Le SDK comprend également la classe ModelEvaluation
pour évaluer les métriques sur les modèles AutoML entraînés. Pour en savoir plus sur les modèles, consultez la section Entraîner et utiliser vos propres modèles.
Model
La classe Model
représente un modèle entraîné enregistré dans Vertex AI Model Registry. Vous utilisez un modèle entraîné pour générer des prédictions.
Utilisez la méthode aiplatform.Model()
pour trouver et renvoyer une référence à un modèle. Vous pouvez spécifier un modèle à l'aide de son nom ou de son ID.
Étant donné que plusieurs modèles d'un projet peuvent partager le même nom, nous vous recommandons de spécifier un modèle avec son ID. L'exemple de code suivant montre comment utiliser un ID de modèle pour trouver et renvoyer une référence à un modèle existant :
MODEL_ID="my-sample-model-ID"
model = aiplatform.Model(model_name=MODEL_ID)
Une fois que vous disposez d'une référence à un modèle entraîné, vous pouvez utiliser les propriétés et les méthodes du Model
pour fonctionner avec et obtenir des prédictions.
Créer un modèle enregistré
Pour créer une ressource de modèle enregistrée dans Vertex AI Model Registry, appelez la méthode run
sur une classe de job d'entraînement.
Les méthodes suivantes permettent de créer un modèle, d'entraîner le modèle, d'enregistrer le modèle dans Vertex AI Model Registry, puis de renvoyer une référence au modèle.
AutoMLForecastingTrainingJob.run
AutoMLImageTrainingJob.run
AutoMLTabularTrainingJob.run
AutoMLTextTrainingJob.run
AutoMLVideoTrainingJob.run
CustomContainerTrainingJob.run
CustomPythonPackageTrainingJob.run
CustomTrainingJob.run
L'exemple de code suivant vous montre comment créer une ressource CustomTrainingJob
, puis comment utiliser sa méthode run
pour créer un modèle, entraîner le modèle, enregistrer le modèle dans Vertex AI Model Registry et renvoyer une référence au modèle :
# Create a custom training job using a script
job = aiplatform.CustomTrainingJob(
display_name="my-training-job",
script_path="task.py",
container_uri="us-docker.pkg.dev/vertex-ai/training/tf-cpu.2-8:latest",
requirements=["google-cloud-bigquery>=2.20.0", "db-dtypes", "protobuf<3.20.0"],
model_serving_container_image_uri="us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-8:latest",
)
# Create and train your model using a BigQuery dataset. The method
# returns a reference to the trained model.
model = job.run(
dataset=dataset,
model_display_name="my-model-name",
bigquery_destination=f"bq://{project_id}",
args=CMDARGS,
)
Créer un modèle non enregistré
Pour créer un modèle qui n'est pas enregistré dans Vertex AI Model Registry, utilisez la classe CustomJob
et sa méthode run
. La méthode CustomJob.run
entraîne un modèle, mais ne l'enregistre pas dans Vertex AI Model Registry et ne renvoie pas de référence au modèle.
Si vous utilisez la classe CustomJob
, vous devez utiliser un script pour écrire votre modèle dans un emplacement tel qu'un bucket Cloud Storage. Pour plus d'informations, consultez la section Exporter un modèle de ML entraîné.
Enregistrer un modèle
Si vous disposez d'un modèle qui n'est pas enregistré auprès de Vertex AI Model Registry, vous devez l'enregistrer afin de pouvoir gérer son cycle de vie. Vertex AI Model Registry est un dépôt central qui fournit une vue d'ensemble de vos modèles afin que vous puissiez les gérer. Pour plus d'informations, consultez la Présentation de Vertex AI Model Registry.
Le SDK Vertex AI inclut les méthodes suivantes pour importer un modèle dans Vertex AI Model Registry. Cliquez sur l'une des méthodes pour en apprendre davantage à son sujet dans le guide de référence du SDK Vertex AI.
Model.upload
Model.upload_scikit_learn_model_file
Model.upload_tensorflow_saved_model
Model.upload_xgboost_model_file
Déployer un modèle
Après avoir enregistré un modèle, vous devez le déployer sur un point de terminaison avant de pouvoir l'utiliser pour les prédictions. Utilisez la méthode Model.deploy
pour déployer votre modèle sur un Endpoint
. Pour en savoir plus, consultez la section Déployer un modèle sur un point de terminaison.
ModelEvaluation
Utilisez la classe ModelEvaluation
pour obtenir des métriques d'évaluation pour les modèles AutoML, telles que la précision et le rappel, afin de déterminer les performances de vos modèles. Pour en savoir plus, consultez la section Évaluation de modèle dans Vertex AI.
L'exemple de code suivant montre comment lister toutes les évaluations pour un modèle dont l'ID est model-id
, qui fait partie d'un projet dont l'ID est my-project
et qui se trouve dans la région us-central1
:
model = aiplatform.Model('projects/my-project/locations/us-central1/models/{model-id}')
evaluations = model.list_model_evaluations()
L'exemple de code suivant montre comment obtenir l'évaluation d'un modèle pour un modèle dont l'ID est model-id
, qui fait partie d'un projet dont l'ID est my-project
et qui se trouve dans la région us-central1
:
model = aiplatform.Model('projects/my-project/locations/us-central1/models/{model-id}')
# Return the first evaluation with no arguments. You can also specify a model
# using its model ID.
evaluation = model.get_model_evaluation()
eval_metrics = evaluation.metrics
Pour créer une référence à une évaluation de modèle, utilisez son nom de ressource ou son ID de modèle ainsi que l'ID d'évaluation. L'exemple de code suivant montre comment créer une référence à une évaluation de modèle à l'aide de son nom de ressource :
evaluation = aiplatform.ModelEvaluation(
evaluation_name='projects/my-project/locations/us-central1/
models/{model-id}/evaluations/{evaluation-id}')
eval_metrics = evaluation.metrics
L'exemple de code suivant montre comment créer une référence à une évaluation de modèle à l'aide de l'ID de modèle et de l'ID d'évaluation :
evaluation.metrics = aiplatform.ModelEvaluation(
evaluation_name={evaluation-id},
model_id={model-id})
eval_metrics = evaluation.metrics
Étapes suivantes
- En savoir plus sur le SDK Vertex AI.