Obtenir des explications

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

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

  • Explications par lots:requêtes asynchrones adressées à l'API Vertex AI qui renvoient des prédictions avec attribution de caractéristiques. Les explications par lots constituent une partie facultative des requêtes de prédiction 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 prédictions 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

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

Pour obtenir des instructions détaillées sur la préparation et la création de tâches de prédiction par lot, consultez la section Obtenir des prédictions par lot.

Obtenir des explications localement dans Notebooks

Dans Notebooks, vous pouvez générer des explications pour votre modèle entraîné personnalisé en exécutant Explainable AI dans le noyau ou l'environnement d'exécution local de votre notebook, sans déployer le modèle sur Vertex AI. Les explications locales vous permettent d'essayer différents paramètres d'Explainable AI sans ajuster votre déploiement de modèles Vertex AI pour chaque modification. Cela permet d'évaluer plus facilement et plus rapidement l'impact de l'utilisation de différentes références, en essayant différents paramètres de visualisation pour vos explications, ou en ajustant le nombre d'étapes ou de chemins utilisés pour votre algorithme.

Les explications locales ne sont disponibles que dans Notebooks. Par conséquent, cette fonctionnalité ne fonctionne pas dans les notebooks Jupyter exécutés en dehors d'une instance Notebooks.

Pour générer des explications localement dans une instance Notebooks, procédez comme suit :

  • Créez une instance Notebooks.
  • Lancez l'environnement JupyterLab à partir de votre instance Notebooks, puis créez ou importez un notebook.
  • Enregistrez l'artefact de modèle dans l'environnement local de votre notebook ou dans un bucket Cloud Storage.
  • Générez et enregistrez des métadonnées pour décrire votre modèle et configurer votre requête d'explications.

Utiliser le SDK Explainable AI dans Notebooks

Le SDK Explainable AI est préinstallé dans les instances Notebooks. Dans votre notebook, vous pouvez utiliser le SDK Explainable AI pour enregistrer l'artefact de votre modèle et identifier automatiquement les métadonnées des entrées et des sorties de votre modèle pour la requête d'explications. Vous pouvez également spécifier d'autres paramètres pour configurer votre requête d'explications, puis visualiser les résultats de l'explication.

Vous pouvez enregistrer des modèles et des métadonnées dans l'environnement local de votre notebook, ou bien dans un bucket Cloud Storage. Si vous utilisez TensorFlow, vous pouvez utiliser la méthode save_model_with_metadata() pour déduire les entrées et les sorties de votre modèle, et enregistrer ces métadonnées d'explications avec votre modèle.

Ensuite, chargez le modèle dans le SDK Explainable AI à l'aide de load_model_from_local_path(). Si nécessaire, vous pouvez ajuster la configuration de l'algorithme Vertex Explainable AI spécifique. Par exemple, vous pouvez modifier le nombre de chemins à utiliser pour l'échantillonnage des valeurs de Shapley ou le nombre d'étapes à utiliser pour la méthode des gradients intégrés ou la méthode XRAI.

Enfin, appelez explain() avec des instances de données, et visualisez les attributions de caractéristiques.

Vous pouvez utiliser l'exemple de code suivant pour obtenir des explications locales sur un modèle TensorFlow 2 au sein d'une instance Notebooks :

# This sample code only works within a Notebooks instance.
import explainable_ai_sdk
from explainable_ai_sdk.metadata.tf.v2 import SavedModelMetadataBuilder

metadata_and_model_builder = SavedModelMetadataBuilder('LOCAL_PATH_TO_MODEL')
metadata_and_model_builder.save_model_with_metadata('LOCAL_PATH_TO_SAVED_MODEL_ARTIFACT')

# Load the model and adjust the configuration for Explainable AI parameters
num_paths = 20
model_artifact_with_metadata = explainable_ai_sdk.load_model_from_local_path(
    'LOCAL_PATH_TO_SAVED_MODEL_ARTIFACT',
    explainable_ai_sdk.SampledShapleyConfig(num_paths))

# Explainable AI supports generating explanations for multiple predictions
instances = [{feature_a: 10, feature_2: 100,...}, ... ]
explanations = model_artifact_with_metadata.explain(instances)
explanations[0].visualize_attributions()

Obtenez plus d'informations sur le SDK Explainable AI, y compris sur plusieurs configurations et paramètres. Obtenez plus d'informations sur les notebooks.

Étape suivante