Journalisation des prédictions en ligne

Pour les modèles tabulaires AutoML, les modèles d'image AutoML et les modèles personnalisés, vous pouvez activer ou désactiver les journaux de prédiction lors du déploiement du modèle ou de la création de points de terminaison. Cette page décrit les différents types de journaux de prédiction disponibles, et explique comment les activer ou les désactiver.

Types de journaux de prédiction

Vous pouvez utiliser plusieurs types de journaux de prédiction pour obtenir des informations auprès de vos nœuds de prédiction :

  • La journalisation des conteneurs, qui consigne dans Cloud Logging les flux stdout et stderr provenant des nœuds de prédiction. Ces journaux sont nécessaires au débogage.

    • La journalisation des conteneurs est activée par défaut sur le point de terminaison de service v1. Vous pouvez la désactiver lorsque vous déployez un modèle. Vous pouvez également désactiver ou activer la journalisation lorsque vous effectuez une mutation du modèle déployé.

    • La journalisation des conteneurs est désactivée par défaut sur le point de terminaison de service v1beta1. Vous pouvez l'activer lorsque vous déployez un modèle. Vous pouvez également désactiver ou activer la journalisation lorsque vous effectuez une mutation du modèle déployé.

  • La journalisation des accès, qui consigne dans Cloud Logging des informations telles que l'horodatage et la latence associés à chaque requête.

    La journalisation des accès est désactivée par défaut sur les points de terminaison de service v1 et v1beta1. Vous pouvez activer la journalisation des accès lorsque vous déployez un modèle sur un point de terminaison.

  • La journalisation des requêtes et réponses, qui consigne un échantillon de requêtes de prédiction en ligne et de réponses dans une table BigQuery.

    Vous pouvez activer la journalisation des requêtes et réponses en créant ou en appliquant un correctif au point de terminaison de la prédiction.

Vous pouvez activer ou désactiver chaque type de journal indépendamment.

Paramètres du journal de prédiction

Vous pouvez activer ou désactiver les journaux de prédiction en ligne lorsque vous créez un point de terminaison, déployez un modèle sur le point de terminaison ou modifiez un modèle déployé.

Pour mettre à jour les paramètres des journaux d'accès, vous devez annuler le déploiement de votre modèle, puis le redéployer avec vos nouveaux paramètres. Vous pouvez mettre à jour les paramètres des journaux de conteneurs sans redéployer votre modèle.

La prédiction en ligne à un taux élevé de requêtes par seconde peut produire un nombre important de journaux, qui sont soumis aux règles de tarification de Cloud Logging. Pour estimer le prix des journaux de prédiction en ligne, consultez la page Estimer vos factures. Pour réduire les coûts, vous pouvez désactiver la journalisation des prédictions.

Activer et désactiver les journaux de prédiction

Les exemples suivants mettent en évidence l'emplacement de modification des paramètres de journalisation par défaut :

Console

Lorsque vous déployez un modèle sur un point de terminaison ou que vous créez un nouveau point de terminaison dans la console Google Cloud, vous pouvez spécifier les types de journaux de prédiction à activer à l'étape Journalisation. Cochez les cases pour activer la journalisation des accès ou la journalisation des conteneurs, ou décochez les cases pour désactiver ces journaux.

Utilisez l'API REST pour mettre à jour les paramètres des journaux de conteneur.

Utilisez l'API REST pour activer la journalisation des requêtes et réponses. La console Google Cloud et gcloud CLI ne permettent pas de configurer les journaux de requêtes et de réponses.

Pour en savoir plus sur le déploiement de modèles, consultez la page Déployer un modèle à l'aide de la console Google Cloud.

gcloud

Pour modifier le comportement par défaut pour lequel les journaux sont activés dans les modèles déployés, ajoutez des options à votre commande gcloud :

Point de terminaison de service v1

Exécutez gcloud ai endpoints deploy-model :

gcloud ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --disable-container-logging \
  --enable-access-logging

Point de terminaison de service v1beta1

Exécuter gcloud beta ai endpoints deploy-model

gcloud beta ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --enable-access-logging \
  --enable-container-logging

Utilisez l'API REST pour mettre à jour les paramètres des journaux de conteneur.

Utilisez l'API REST pour activer la journalisation des requêtes et réponses. La console Google Cloud et gcloud CLI ne permettent pas de configurer les journaux de requêtes et de réponses.

Pour en savoir plus sur le déploiement de modèles, consultez la section Déployer un modèle à l'aide de l'API Vertex AI.

REST

Pour modifier le comportement par défaut pour lequel les journaux sont activés dans les modèles déployés, définissez les champs concernés sur True :

Point de terminaison de service v1

Pour désactiver la journalisation des conteneurs, définissez le champ disableContainerLogging sur True lorsque vous appelez projects.locations.endpoints.deployModel ou projects.locations.endpoints.mutateDeployedModel.

Pour activer la journalisation des accès, définissez l'option enableAccessLogging sur True lors du déploiement du modèle avec projects.locations.endpoints.deployModel.

Point de terminaison de service v1beta1

Pour activer la journalisation des conteneurs, définissez le champ enableContainerLogging sur True lorsque vous appelez projects.locations.endpoints.deployModel ou projects.locations.endpoints.mutateDeployedModel.

Pour activer la journalisation des accès, définissez l'option enableAccessLogging sur True lors du déploiement du modèle avec projects.locations.endpoints.deployModel.

Pour en savoir plus sur le déploiement de modèles, consultez la section Déployer un modèle à l'aide de l'API Vertex AI.

Journalisation des requêtes et réponses

Vous ne pouvez activer la journalisation des requêtes et réponses que lorsque vous envoyez un point de terminaison à l'aide de projects.locations.endpoints.create, ou appliquez un correctif à un point de terminaison existant à l'aide de projects.locations.endpoints.patch.

La journalisation des requêtes et réponses est effectuée au niveau du point de terminaison. Par conséquent, les requêtes envoyées aux modèles déployés sous le même point de terminaison sont consignées.

Lorsque vous créez ou corrigez un point de terminaison, remplissez le champ predictRequestResponseLoggingConfig de la ressource Endpoint avec les entrées suivantes :

  • enabled : défini sur True pour activer la journalisation des requêtes et réponses.

  • samplingPercentage : un nombre compris entre 0 et 1, qui définit la fraction des requêtes à consigner. Par exemple, définissez cette valeur sur 1 pour consigner l'intégralité des requêtes, ou sur 0.1 pour n'en consigner que 10 %.

  • BigQueryDestination : table BigQuery à utiliser pour la journalisation. Si vous ne spécifiez qu'un nom de projet, un ensemble de données est créé, nommé logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID, où ENDPOINT_DISPLAY_NAME suit les règles de dénomination de BigQuery. Si vous ne spécifiez pas de nom de table, une nouvelle table est créée avec le nom request_response_logging.

    Le schéma de la table BigQuery doit se présenter comme suit :

    Nom du champTypeMode
    endpointSTRINGNULLABLE
    deployed_model_idSTRINGNULLABLE
    logging_timeTIMESTAMPNULLABLE
    request_idNUMERICNULLABLE
    request_payloadSTRINGRÉPÉTÉ
    response_payloadSTRINGRÉPÉTÉ

Voici un exemple de configuration :

{
   "predict_request_response_logging_config": {
     "enabled": true,
     "sampling_rate": 0.5,
     "bigquery_destination": {
       "output_uri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
     }
}

Journalisation des requêtes et réponses et surveillance des modèles

La journalisation des requêtes et réponses et la surveillance des modèles utilisent la même table BigQuery sur le backend pour consigner les requêtes entrantes. Pour éviter toute modification inattendue de cette table BigQuery, les limitations suivantes s'appliquent lorsque vous utilisez les deux fonctionnalités en même temps :

  • Si la surveillance de modèles est activée sur un point de terminaison, vous ne pouvez pas activer la journalisation des requêtes et réponses pour le même point de terminaison.

  • Si vous activez la journalisation des requêtes et réponses, puis que la surveillance des modèles fonctionne sur le même point de terminaison, vous ne pouvez pas modifier la configuration de journalisation des requêtes et réponses.

Étape suivante