Cómo implementar la demostración de la herramienta de interpretabilidad de aprendizaje (LIT) en Google Cloud Platform

1. Descripción general

En este lab, se proporcionan instrucciones para implementar una demostración de LIT rápidamente. El objetivo es que te familiarices con la herramienta LIT para explorar el comportamiento del modelo. Realizarás un análisis sentimental y usarás la función LIT contrafáctica para descubrir la importancia de palabras específicas. La demostración incluye un conjunto de datos para realizar el análisis. El lab proporciona pasos para implementar la LIT en Google Cloud Platform, analizar los datos y borrar los servicios implementados.

¿Qué es la Herramienta de interpretabilidad de aprendizaje (LIT)?

🔥LIT es una herramienta interactiva y visual de comprensión de modelos de AA que admite datos de texto, imágenes y datos tabulares. Se puede ejecutar como un servidor independiente o dentro de entornos de notebooks como Colab, Jupyter y Vertex AI de Google Cloud.

LIT está diseñado para responder preguntas como las siguientes:

  • ¿En qué tipos de ejemplos mi modelo tiene un rendimiento deficiente?
  • ¿Por qué mi modelo hizo esta predicción? ¿Puede atribuirse esta predicción a un comportamiento adversario o a precedentes no deseados en el conjunto de entrenamiento?
  • ¿Mi modelo se comporta de forma coherente si modifico aspectos como el estilo del texto, el tiempo verbal o el género de los pronombres?

La herramienta está disponible en el repositorio de GitHub de LIT. También hay un documento disponible en ArXiv.

Qué harás

Usarás Google Cloud Shell para extraer, etiquetar, enviar e implementar la imagen de contenedor.

Usarás Google Artifact Registry, que te permite almacenar de forma centralizada los artefactos y compilar dependencias como parte de una experiencia integrada de Google Cloud. Subirás la imagen de Docker a Artifact Registry. Puedes obtener más información al respecto en la documentación de Artifact Registry de Google Cloud.

Usarás Google Cloud Cloud Run, un servicio administrado de Knative, para implementar la imagen de Docker. Es una plataforma de procesamiento administrada que permite ejecutar contenedores directamente sobre la infraestructura escalable de Google.

Conjunto de datos

La demostración utiliza el conjunto de datos del banco de opiniones de Stanford.

"El banco Stanford Sentiment Treebank es el primer corpus con árboles de análisis completamente etiquetados que permite un análisis completo de los efectos de la composición de las opiniones en el lenguaje. El corpus se basa en el conjunto de datos presentado por Pang and Lee (2005) y consta de 11,855 oraciones individuales extraídas de opiniones sobre películas. Se analizó con el analizador de Stanford (Klein y Manning, 2003) e incluye un total de 215,154 frases únicas de esos árboles de análisis, cada una anotada por 3 jueces humanos". Documento de referencia

Antes de comenzar

Para esta guía de referencia, necesitas un proyecto de Google Cloud. Puedes crear uno nuevo o seleccionar uno que ya hayas creado.

2. Inicia la consola de Google Cloud y Cloud Shell

En este paso, iniciarás una consola de Google Cloud y usarás Google Cloud Shell.

2-a: Inicia una consola de Google Cloud

Inicia un navegador y ve a la consola de Google Cloud.

La consola de Google Cloud es una interfaz de administrador web potente y segura que te permite administrar tus recursos de Google Cloud con rapidez. Es una herramienta de DevOps que está en movimiento.

2-b: Iniciar Google Cloud Shell

Iniciar un Google Cloud Shell Consulta la siguiente imagen como referencia.

Lanzamiento de la consola de Google Cloud

Debería ver algo como esto:

Consola de Google Cloud

Utilizarás el símbolo del sistema en los próximos pasos.

Cloud Shell es un entorno de desarrollo y operaciones en línea al que puedes acceder desde cualquier lugar con tu navegador. Puedes administrar tus recursos con su terminal en línea precargada con utilidades como la herramienta de línea de comandos de gcloud, kubectl y muchas más. También puedes desarrollar, compilar, implementar y depurar tus apps basadas en la nube con el editor en línea de Cloud Shell. Cloud Shell proporciona un entorno en línea listo para el desarrollador, con un conjunto de herramientas favoritas preinstalada y 5 GB de espacio de almacenamiento persistente.

2-c: Configura el proyecto de Google Cloud

Configura el proyecto de Google Cloud y la ubicación en la que crearás los servicios de Google Cloud. Usarás la información para crear una instancia de Google Cloud Workbench y una de Artifact Registry. Usarás el primero para compilar y enviar un contenedor. Usarás esta última para almacenar la imagen del contenedor.

Debes configurar la única variable obligatoria PROJECT_ID. Puedes modificar las otras variables, pero los valores predeterminados son suficientes para ejecutar el lab. Configura el proyecto de Google Cloud correcto. El comando de gcloud lo usa.

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

3. Implementa las imágenes de Docker en Artifact Registry de Google Cloud

3-a: Crea un Artifact Registry de Google Cloud

Primero, debes crear un Artifact Registry para almacenar imágenes de 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: Extrae una imagen de Docker

En segundo lugar, usa el siguiente comando para generar una lista de todas las imágenes de Docker de LIT en el repositorio público.

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

Puedes encontrar todas las imágenes disponibles y su etiqueta, que hace referencia a la versión de la imagen, y elegir la etiqueta que deseas implementar.

Imágenes de Docker de Google Cloud

Extrae la imagen de Docker que elegiste con el comando a continuación.

# 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: Etiquetar imagen de Docker

Tercero, etiqueta la imagen que acabas de extraer para el repositorio de destino.

# 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: Enviar imagen de Docker

A continuación, envía la imagen de Docker al repositorio de destino.

# 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: Implementa la imagen de Docker en CloudRun

Implementar la imagen de Docker en Cloud Run desde el repositorio de destino

Google Cloud Deploy Cloud Run

En la opción de implementación, selecciona “Implementar una revisión desde una imagen de contenedor existente”.

En Config, asigna un nombre a tu Service para que sea el mismo que $DEMO_NAME y selecciona la región para que sea la misma que $GCP_LOCATION.

En Authentication, puedes elegir “Permitir invocaciones no autenticadas” o "Solicitar autenticación". Si seleccionas "Solicitar autenticación", es posible que deba completar pasos adicionales para acceder a la demostración. Por lo tanto, se recomienda seleccionar "Permitir invocaciones no autenticadas" si quieres familiarizarte con la demostración.

Configuración de Google Cloud Run

En la configuración de contenedores, selecciona 5432 como el puerto del contenedor, la memoria de 32 Gib y la CPU en 8.

Configuración de contenedores de Google Cloud

Después de establecer la configuración, crea la instancia.

4. Ver el servicio de LIT en GCP

Después de crear el servicio, puedes ver los registros en la consola de Google Cloud.

Navegación: Barra superior en la consola de Google Cloud → Cloud Run (en la barra de búsqueda) → selecciona la aplicación demo1 → selecciona los REGISTROS. También puedes verificar las MÉTRICAS, etcétera.

En la consola de Google Cloud, usa la búsqueda y escribe “Cloud Run”. Consulta la siguiente imagen como referencia.

Búsqueda en la consola de Google Cloud

Selecciona “demo1” servicio que acabas de crear. Consulta la siguiente imagen como referencia.

Lista de Cloud Run en la consola de Google Cloud

Puedes consultar la sección REGISTROS (LOGS). Mientras tanto, puedes encontrar la URL de la referencia. Consulta la siguiente imagen como referencia. Registro de Cloud Run de la consola de Google Cloud

Puedes consultar la sección MÉTRICAS. Consulta la siguiente imagen como referencia. Métricas de Cloud Run en la consola de Google Cloud

5. Explora la URL de demostración de LIT

Si no puedes acceder a la URL debido a un error “Forbidden”, debes cambiar el servicio y permitir la invocación no autenticada.

LIT para cambiar el permiso de Cloud Run

También puedes usar un proxy para conectar el servicio a un host local con el siguiente comando.

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

Asegúrate de que la región sea la misma que GCP_LOCATION. Luego, podrás explorar la URL del host local.

Servicio de proxy de LIT

La demostración de LIT se ve como en la siguiente captura de pantalla:

Página principal de demostración de LIT

Revisarás el análisis de opiniones en el conjunto de datos Stanford Sentiment Treebank. Sigue estos pasos:

  • Usa la función de búsqueda en la tabla de datos de LIT para encontrar los 56 datos que contienen la palabra "not".

Búsqueda de demostración de LIT

  • Comprueba la exactitud del modelo BERT en la tabla de métricas. La precisión del modelo BERT es alta.

Precisión de la demostración de LIT

  • Selecciona puntos de datos individuales y busca explicaciones. Busca la palabra “depresión”.

Precisión de la demostración de LIT

  • Selecciona “No es la película de gánsteres de la era de la depresión definitiva”. Consulta el mapa de prominencia. Los mapas de prominencia sugieren que "no" y "final" son importantes para la predicción.

Precisión de la demostración de LIT

Hay muchas funciones de LIT que puedes probar. Puedes encontrar nuestro breve video de YouTube o el LIT ArXiv en el que se explican las funciones de LIT.

6. Felicitaciones

¡Felicitaciones por completar el codelab! ¡Hora de relajarse!

Limpia

Para limpiar el lab, borra todos los servicios de Google Cloud que se crearon para él. Usa Google Cloud Shell para ejecutar los siguientes comandos.

Si se pierde la conexión de Google Cloud por inactividad, restablece las variables. Sigue los pasos 2-c y 4-1 para configurar las variables de shell y el proyecto de 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.