Obtenir des explications

Ce guide explique comment obtenir des explications sur une ressource Model sur Vertex AI. Vous pouvez obtenir des explications de deux façons:

  • Explications en ligne : requêtes synchrones adressées à l'API Vertex AI, semblables aux inférences en ligne qui renvoient des inférences avec attribution de caractéristiques.

  • Explications par lot : requêtes asynchrones adressées à l'API Vertex AI qui renvoient des inférences avec attribution de caractéristiques. Les explications par lots constituent une partie facultative des requêtes d'inférence par lot.

Avant de commencer

Avant d'obtenir des explications, vous devez effectuer les opérations suivantes:

  1. Cette étape varie en fonction du type de modèle de machine learning que vous utilisez:

  2. Pour obtenir des explications en ligne, déployez le Model que vous avez créé à l'étape précédente sur une ressource Endpoint.

Obtenir des explications en ligne

Pour obtenir des explications en ligne, suivez la plupart des étapes que vous effectuez pour obtenir des inférences en ligne. Cependant, au lieu d'envoyer une requête projects.locations.endpoints.predict à l'API Vertex AI, envoyez une requête projects.locations.endpoints.explain.

Les guides suivants fournissent des instructions détaillées pour préparer et envoyer des requêtes d'explication en ligne:

Obtenir des explications par lots

Seules les explications par lots basées sur les caractéristiques sont acceptées. Vous ne pouvez pas obtenir d'explications par lot basées sur des exemples.

Pour obtenir des explications par lots, définissez le champ generateExplanation sur true lorsque vous créez une tâche d'inférence par lot.

Pour obtenir des instructions détaillées sur la préparation et la création de tâches d'inférence par lot, consultez Obtenir des inférences par lot.

Obtenir des explications simultanées

Explainable AI est compatible avec les explications simultanées. Les explications simultanées vous permettent de demander des explications basées sur des caractéristiques et sur des exemples à partir du même point de terminaison de modèle déployé, sans avoir à déployer votre modèle séparément pour chaque méthode d'explication.

Pour obtenir des explications simultanées, importez votre modèle et configurez des explications basées sur des exemples ou basées sur des caractéristiques. Déployez ensuite votre modèle comme d'habitude.

Une fois le modèle déployé, vous pouvez demander les explications configurées comme d'habitude. En outre, vous pouvez demander des explications simultanées en spécifiant concurrent_explanation_spec_override.

Tenez compte des points suivants lorsque vous utilisez des explications simultanées :

  • Les explications simultanées ne sont disponibles que dans la version v1beta1 de l'API. Si vous utilisez le SDK Vertex pour Python, vous devez utiliser le modèle preview pour utiliser des explications simultanées.
  • Vous ne pouvez pas demander d'explications basées sur des exemples après avoir effectué un déploiement à l'aide d'explications basées sur les caractéristiques. Si vous souhaitez obtenir des explications basées sur des exemples et des explications basées sur des caractéristiques, déployez votre modèle en utilisant des explications basées sur des exemples et demandez des explications basées sur les caractéristiques en utilisant le champ d'explication simultanée.
  • Les explications par lots ne sont pas compatibles avec les explications simultanées. Les explications en ligne sont le seul moyen d'utiliser cette fonctionnalité.

Dépannage

Cette section décrit les étapes de dépannage qui vous seront utiles en cas de problèmes lors de l'obtention d'explications.

Erreur : index de liste en dehors de la plage

Si le message d'erreur suivant s'affiche lorsque vous demandez des explications :

"error": "Explainability failed with exception: listindex out of range"

Assurez-vous de ne pas transmettre de tableau vide à un champ qui attend un tableau d'objets. Par exemple, si field1 accepte un tableau d'objets, le corps de requête suivant peut entraîner une erreur :

{
  "instances": [
    {
      "field1": [],
    }
  ]
}

Assurez-vous plutôt que le tableau n'est pas vide, par exemple :

{
  "instances": [
    {
      "field1": [
        {}
      ],
    }
  ]
}

Étapes suivantes