Démonstration du déploiement de Learning Interpretability Tool (LIT) sur Google Cloud Platform

1. Présentation

Cet atelier explique comment déployer rapidement une démonstration LIT. L'objectif est de vous familiariser avec l'outil LIT pour explorer le comportement du modèle. Vous effectuerez une analyse des sentiments et utiliserez la fonctionnalité LIT contrefactuelle pour déterminer l'importance de mots spécifiques. La démonstration inclut un ensemble de données permettant d'effectuer l'analyse. Cet atelier explique comment déployer le LIT dans Google Cloud Platform, analyser les données et supprimer les services déployés.

Qu'est-ce que Learning Interpretability Tool (LIT) ?

🔥LIT est un outil visuel et interactif de compréhension de modèles de ML qui prend en charge du texte, des images et des données tabulaires. Elle peut être exécutée en tant que serveur autonome ou dans des environnements de notebook tels que Colab, Jupyter et les notebooks Vertex AI de Google Cloud.

LIT est conçu pour répondre à des questions telles que:

  • Pour quels types d'exemples mon modèle est-il peu performant ?
  • Pourquoi mon modèle a-t-il effectué cette prédiction ? Cette prédiction peut-elle être attribuée à un comportement antagoniste ou à des priors indésirables dans l'ensemble d'entraînement ?
  • Le comportement de mon modèle est-il cohérent si je change des éléments comme le style de texte, le temps du verbe ou le genre du pronom ?

L'outil est disponible dans le dépôt GitHub LT. Un article à ce sujet est également disponible dans ArXiv.

Objectifs de l'atelier

Vous allez utiliser Google Cloud Shell pour extraire, taguer, transférer et déployer l'image du conteneur.

Vous allez utiliser Google Artifact Registry, qui vous permet de centraliser le stockage des artefacts et la création de dépendances dans le cadre d'une expérience Google Cloud intégrée. Vous importerez l'image Docker dans Artifact Registry. Pour en savoir plus, consultez la documentation sur Google Cloud Artifact Registry.

Vous allez utiliser Google Cloud Run, un service Knative géré, pour déployer l'image Docker. Il s'agit d'une plate-forme de calcul gérée qui vous permet d'exécuter des conteneurs directement sur l'infrastructure évolutive de Google.

Ensemble de données

La démonstration utilise l'ensemble de données Stanford Sentiment Treebank.

"La Stanford Sentiment Treebank est le premier corpus avec des arbres d'analyse entièrement étiquetés qui permet une analyse complète des effets de composition des sentiments dans le langage. Le corpus est basé sur l'ensemble de données présenté par Pang et Lee (2005) et se compose de 11 855 phrases simples extraites de critiques de films. Il a été analysé à l'aide de l'analyseur de Stanford (Klein et Manning, 2003) et comprend un total de 215 154 expressions uniques provenant de ces arbres analysés, chacune annotée par trois juges humains." Article de référence

Avant de commencer

Pour ce guide de référence, vous avez besoin d'un projet Google Cloud. Vous pouvez en créer un ou sélectionner un projet que vous avez déjà créé.

2. Lancer la console Google Cloud et Cloud Shell

Au cours de cette étape, vous allez lancer une console Google Cloud et utiliser Google Cloud Shell.

2-a: Lancer une console Google Cloud

Lancez un navigateur, puis accédez à la console Google Cloud.

La console Google Cloud est une interface d'administration Web performante et sécurisée qui vous permet de gérer rapidement vos ressources Google Cloud. C'est un outil DevOps où que vous soyez.

2-b: Lancer Google Cloud Shell

Lancez Google Cloud Shell. Pour référence, reportez-vous à l'image ci-dessous.

Lancement de la console Google Cloud

L'écran qui s'affiche devrait ressembler à ce qui suit :

Console Google Cloud

Au cours des prochaines étapes, vous utiliserez l'invite de commande.

Cloud Shell est un environnement de développement et d'opérations en ligne accessible depuis votre navigateur, où que vous soyez. Vous pouvez gérer vos ressources grâce à son terminal en ligne doté d'utilitaires préchargés, tels que l'outil de ligne de commande gcloud, kubectl, etc. Vous pouvez également développer, compiler, déboguer et déployer vos applications cloud à l'aide de l'éditeur Cloud Shell en ligne. Cloud Shell offre un environnement en ligne adapté aux développeurs, avec un ensemble d'outils préféré préinstallé et 5 Go d'espace de stockage persistant.

2-c: Définir le projet Google Cloud

Définissez le projet Google Cloud et l'emplacement dans lequel vous allez créer les services Google Cloud. Vous utiliserez ces informations pour créer un Google Cloud Workbench et un Artifact Registry. Vous utiliserez le premier pour créer et transférer un conteneur. Vous utiliserez ce dernier pour stocker l'image de conteneur.

Vous devez définir la seule variable PROJECT_ID obligatoire. Vous pouvez modifier les autres variables, mais les valeurs par défaut sont suffisantes pour le bon déroulement de l'atelier. Définissez le projet Google Cloud approprié. Il est utilisé par la commande gcloud.

# Set your GCP Project ID.
export PROJECT_ID=[Your project ID]

3. Déployer les images Docker dans Google Cloud Artifact Registry

3-a: Créer un dépôt Artifact Registry Google Cloud

Vous devez d'abord créer un registre Artifact Registry pour stocker les images Docker.

# Set Google Cloud Location.
export GCP_LOCATION=us-central1
# Set image container artifact repo name.
export ARTIFACT_REPO=lit-demo
# Set lit demo name.
export DEMO_NAME=demo1

# Use below cmd to list all Google Cloud Artifact locations:
# gcloud artifacts locations list
# Create a repo to upload the docker container images.
gcloud artifacts repositories create $ARTIFACT_REPO \
    --repository-format=docker \
    --location=$GCP_LOCATION \
    --description="LIT Demos"

# Validate the repo creation.
gcloud artifacts repositories describe $ARTIFACT_REPO \
    --location=$GCP_LOCATION

3-b: Extraire une image Docker

Ensuite, affichez toutes les images Docker LIT du dépôt public à l'aide de la commande ci-dessous.

# List all the public LIT docker images.
gcloud container images  list-tags  us-east4-docker.pkg.dev/lit-demos/lit-app/lit-app

Vous pouvez rechercher toutes les images disponibles et leur tag, qui fait référence à la version de l'image, puis choisir le tag que vous souhaitez déployer.

Images Docker Google Cloud

Extrayez l'image Docker de votre choix à l'aide de la commande ci-dessous.

# Set your chosen tag.
export TAG=[Your Chosen Tag]

# Pull the chosen docker image.
docker pull us-east4-docker.pkg.dev/lit-demos/lit-app/lit-app:$TAG

3-c: Ajouter un tag à l'image Docker

Enfin, ajoutez un tag à l'image que vous venez de récupérer dans le dépôt cible.

# Push the pulled docker image to target repository.
docker tag  us-east4-docker.pkg.dev/lit-demos/lit-app/lit-app:$TAG  $GCP_LOCATION-docker.pkg.dev/$PROJECT_ID/$ARTIFACT_REPO/$DEMO_NAME:$TAG

3-d: Transférer une image Docker

Transférez ensuite l'image Docker vers le dépôt cible.

# Push the pulled docker image to the target repository.
docker push  $GCP_LOCATION-docker.pkg.dev/$PROJECT_ID/$ARTIFACT_REPO/$DEMO_NAME:$TAG

3-e: Déployer l'image Docker dans Cloud Run

Déployez l'image Docker sur Cloud Run à partir du dépôt cible.

Google Cloud Deploy Cloud Run

Dans l'option de déploiement, sélectionnez "Déployer une révision à partir d'une image de conteneur existante".

Dans "Configuration", donnez à votre service le même nom que $DEMO_NAME, puis sélectionnez la même région que $GCP_LOCATION.

Pour l'authentification, vous pouvez choisir "Autoriser les appels non authentifiés" ou « Exiger l’authentification ». Si vous sélectionnez « Exiger l'authentification », vous devrez peut-être suivre des étapes supplémentaires pour accéder à la démonstration. Par conséquent, nous vous recommandons de sélectionner "Autoriser les appels non authentifiés" si vous souhaitez simplement vous familiariser avec la démonstration.

Configuration de Google Cloud Run

Dans la configuration des conteneurs, sélectionnez le port du conteneur sur 5 432, la mémoire sur 32 Gio et le processeur sur 8.

Configuration du conteneur Google Cloud

Après avoir défini la configuration, créez l'instance.

4. Afficher le service LIT sur GCP

Après avoir créé le service, vous pouvez consulter les journaux dans la console Google Cloud.

Navigation: barre supérieure de la console Google Cloud → Cloud Run (dans la barre de recherche) ; sélectionnez l'application demo1, puis LOGS. Vous pouvez également vérifier les MÉTRIQUES, etc.

Dans la console Google Cloud, utilisez le champ de recherche et saisissez "Cloud Run". Pour référence, reportez-vous à l'image ci-dessous.

Recherche avec la console Google Cloud

Sélectionnez "demo1". que vous venez de créer. Pour référence, reportez-vous à l'image ci-dessous.

Liste Cloud Run de la console Google Cloud

Vous pouvez consulter la section JOURNAUX. En attendant, vous pouvez trouver l'URL de la référence. Pour référence, reportez-vous à l'image ci-dessous. Journal Cloud Run de la console Google Cloud

Vous pouvez consulter la section MÉTRIQUES. Pour référence, reportez-vous à l'image ci-dessous. Métriques Cloud Run de la console Google Cloud

5. Parcourir l'URL de la démonstration LIT

Si vous ne pouvez pas accéder à l'URL en raison d'une erreur "Interdit", vous devez modifier le service et autoriser les appels non authentifiés.

Modification de l'autorisation Cloud Run LIT

Vous pouvez également utiliser un proxy pour le service vers l'hôte local à l'aide de la commande ci-dessous.

# Proxy the service to local host.
gcloud run services proxy $DEMO_NAME --project $PROJECT_ID

Assurez-vous que la région est identique à GCP_LOCATION. Vous pouvez ensuite parcourir l'URL de l'hôte local.

Service proxy LIT

La démonstration de LIT ressemble à la capture d'écran ci-dessous:

Accueil LIT Demo

Vous allez vérifier l'analyse des sentiments sur l'ensemble de données Stanford Sentiment Treebank. Suivez les étapes ci-dessous

  • Utilisez la fonction de recherche de la table de données de LIT pour trouver les 56 points de données contenant le mot "not".

Recherche de démo LIT

  • Vérifiez la justesse du modèle BERT dans le tableau des métriques. La précision du modèle BERT est élevée.

Précision de la démonstration LIT

  • Sélectionnez des points de données individuels et cherchez des explications. Recherchez le mot "dépression".

Précision de la démonstration LIT

  • Sélectionnez "Ce n'est pas le film de gangsters ultime sur la dépression". Consultez la carte de saillance. Les cartes de saillance suggèrent que « pas » et "ultime" sont importantes pour la prédiction.

Précision de la démonstration LIT

Vous pouvez essayer de nombreuses fonctionnalités LIT. Vous pouvez consulter notre courte vidéo YouTube ou la LIT ArXiv expliquant les fonctionnalités de LIT.

6. Félicitations

Bravo ! Vous avez terminé cet atelier de programmation. Détendez-vous !

Effectuer un nettoyage

Pour nettoyer l'atelier, supprimez tous les services Google Cloud créés pour celui-ci. Utilisez Google Cloud Shell pour exécuter les commandes suivantes.

Si la connexion Google Cloud est perdue en raison de l'inactivité de votre compte, réinitialisez les variables. Suivez les étapes 2-c et 4-1 pour définir les variables de shell et le projet Google Cloud.

# Delete the Cloud Run Service.
gcloud run services delete $DEMO_NAME \
--region=$GCP_LOCATION

# Delete the Artifact Registry.
gcloud artifacts repositories delete $ARTIFACT_REPO\
	--location=$GCP_LOCATION

### **Further reading**

Continue learning the LIT tool features with the below materials:

* LIT open source code base: [Git repo](https://github.com/PAIR-code/lit)
* LIT paper: [ArXiv](https://arxiv.org/pdf/2008.05122.pdf)
* LIT feature video demo: [Youtube](https://www.youtube.com/watch?v=CuRI_VK83dU)


### **License**

This work is licensed under a Creative Commons Attribution 2.0 Generic License.