Deployment della demo sul deployment di Learning Interpretability Tool (LIT) su Google Cloud Platform

1. Panoramica

Questo lab fornisce le istruzioni per eseguire rapidamente il deployment di una demo LIT. L'obiettivo è acquisire familiarità con lo strumento LIT per esplorare il comportamento del modello. Condurrai un'analisi sentimentale e utilizzerai la funzionalità LIT controfattuale per trovare l'importanza di parole specifiche. La demo include un set di dati per eseguire l'analisi. Il lab fornisce i passaggi per eseguire il deployment di LIT nella piattaforma Google Cloud, analizzare i dati ed eliminare i servizi di cui è stato eseguito il deployment.

Che cos'è lo strumento di interpretabilità dell'apprendimento (LIT)?

🔥LIT è uno strumento visivo e interattivo per la comprensione dei modelli di ML che supporta testi, immagini e dati tabulari. Può essere eseguito come server autonomo o all'interno di ambienti di blocchi note come Colab, Jupyter e blocchi note Vertex AI di Google Cloud.

LIT è progettato per rispondere a domande quali:

  • "In quali esempi il rendimento del modello non è soddisfacente?"
  • "Perché il modello ha fatto questa previsione?" Questa previsione può essere attribuita a comportamenti antagonistici o a priori indesiderate nel set di addestramento?
  • "Il modello ha un comportamento uniforme se cambio aspetti come lo stile del testo, i tempi dei verbi o il genere dei pronomi?"

Lo strumento è disponibile nel repository GitHub Lit. È disponibile anche un articolo in ArXiv.

Attività previste

Utilizzerai Google Cloud Shell per eseguire il pull, il tagging, il push e il deployment dell'immagine container.

Utilizzerai Google Artifact Registry che ti consente di archiviare centralmente gli artefatti e creare dipendenze come parte di un'esperienza Google Cloud integrata. Caricherai l'immagine Docker in Artifact Registry. Per saperne di più, consulta la documentazione di Artifact Registry di Google Cloud.

Utilizzerai Google Cloud Run, un servizio Knative gestito, per eseguire il deployment dell'immagine Docker. È una piattaforma di computing gestita che ti consente di eseguire i container direttamente sull'infrastruttura scalabile di Google.

Set di dati

La demo utilizza il set di dati Stanford Sentiment Treebank.

"La Stanford Sentiment Treebank è il primo corpus con alberi di analisi completamente etichettati che consente un'analisi completa degli effetti compositivi del sentiment nel linguaggio. Il corpus si basa sul set di dati introdotto da Pang and Lee (2005) ed è composto da 11.855 frasi singole estratte dalle recensioni dei film. È stato analizzato con l'analizzatore sintattico di Stanford (Klein e Manning, 2003) e include un totale di 215.154 frasi uniche provenienti da quegli alberi analizzati, ciascuna annotata da 3 giudici umani". Documento di riferimento

Prima di iniziare

Per questa guida di riferimento è necessario un progetto Google Cloud. Puoi crearne uno nuovo o selezionare un progetto già creato.

2. Avviare la console Google Cloud e Cloud Shell

In questo passaggio avvierai una console Google Cloud e utilizzerai Google Cloud Shell.

2-a: avvia una console Google Cloud

Avvia un browser e vai alla console Google Cloud.

La console Google Cloud è un'interfaccia di amministrazione web potente e sicura che ti consente di gestire rapidamente le tue risorse Google Cloud. È uno strumento DevOps ovunque ti trovi.

2-b: Avvia Google Cloud Shell

Avvia Google Cloud Shell. Guarda l'immagine qui sotto come riferimento.

Lancio di Google Cloud Console

Il risultato dovrebbe essere simile a questo:

Google Cloud Console

Utilizzerai il prompt dei comandi nei passaggi successivi.

Cloud Shell è un ambiente operativo e di sviluppo online accessibile ovunque con il browser. Puoi gestire le tue risorse con il suo terminale online precaricato con utilità come lo strumento a riga di comando gcloud, kubectl e altro. Puoi anche sviluppare, creare, eseguire il debug e il deployment delle tue app basate su cloud utilizzando l'editor di Cloud Shell online. Cloud Shell offre un ambiente online pronto per gli sviluppatori con un set di strumenti preferiti preinstallato e 5 GB di spazio di archiviazione permanente.

2-c: Imposta progetto Google Cloud

Imposta il progetto Google Cloud e la località in cui creerai i servizi Google Cloud. Utilizzerai queste informazioni per creare un Google Cloud Workbench e un Artifact Registry. Utilizzerai la prima per creare un container ed eseguirne il push. Userai quest'ultimo per archiviare l'immagine container.

Devi impostare l'unica variabile obbligatoria PROJECT_ID. Puoi modificare le altre variabili, ma i valori predefiniti sono sufficienti per eseguire il lab. Imposta il progetto Google Cloud corretto. Questa informazione è utilizzata dal comando gcloud.

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

3. Eseguire il deployment delle immagini Docker in Artifact Registry di Google Cloud

3-a: Crea un Artifact Registry di Google Cloud

Innanzitutto, devi creare un Artifact Registry per archiviare le immagini 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: esegui il pull dell'immagine Docker

In secondo luogo, elenca tutte le immagini Docker LIT nel repository pubblico utilizzando il comando seguente.

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

Puoi trovare tutte le immagini disponibili e il relativo tag, che si riferisce alla versione dell'immagine, e scegliere il tag di cui vuoi eseguire il deployment.

Immagini Docker di Google Cloud

Esegui il pull dell'immagine Docker scelta utilizzando il comando seguente.

# 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: Tag dell'immagine Docker

Infine, tagga l'immagine di cui hai appena eseguito il pull nel repository di destinazione.

# 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: esegui il push dell'immagine Docker

Quindi, esegui il push dell'immagine Docker al repository di destinazione.

# 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: esegui il deployment dell'immagine Docker su CloudRun

Esegui il deployment dell'immagine Docker su Cloud Run dal repository di destinazione.

Google Cloud Deploy Cloud Run

Nell'opzione di deployment, seleziona "Esegui il deployment di una revisione da un'immagine container esistente".

In Config, assegna al tuo servizio un nome identico a $DEMO_NAME e seleziona la regione in modo che corrisponda a $GCP_LOCATION.

Per Autenticazione, puoi scegliere "Consenti chiamate non autenticate" o "Richiedi autenticazione". Se selezioni "Richiedi autenticazione", potresti dover completare dei passaggi aggiuntivi per accedere alla demo. Ti consigliamo quindi di selezionare "Consenti chiamate non autenticate" se vuoi solo familiarizzare con la demo.

Configurazione di Google Cloud Run

Nella configurazione dei container, seleziona la porta del container su 5432, la memoria su 32 Gib e la CPU su 8.

Configurazione container Google Cloud

Dopo aver impostato la configurazione, crea l'istanza.

4. Visualizza il servizio LIT su Google Cloud

Dopo aver creato il servizio, puoi visualizzare i log nella console Google Cloud.

Navigazione: barra superiore della console Google Cloud → Cloud Run (nella barra di ricerca) → seleziona l'applicazione demo1 → seleziona i LOG. Puoi anche controllare METRICHE e così via.

Nella console Google Cloud, utilizza la casella di ricerca e digita "Cloud Run". Guarda l'immagine qui sotto come riferimento.

Ricerca in Google Cloud Console

Seleziona "demo1" appena creato. Guarda l'immagine qui sotto come riferimento.

Elenco Cloud Run della console Google Cloud

Puoi controllare la sezione LOG. Nel frattempo, puoi trovare l'URL del riferimento. Guarda l'immagine qui sotto come riferimento. Log di Cloud Run della console Google Cloud

Puoi controllare la sezione METRICHE. Guarda l'immagine qui sotto come riferimento. Metriche Cloud Run della console Google Cloud

5. Sfoglia l'URL della demo LIT

Se non riesci ad accedere all'URL a causa di un errore Forbidden, devi cambiare il servizio e consentire la chiamata non autenticata.

LIT Modifica autorizzazione Cloud Run

In alternativa, puoi eseguire il proxy del servizio all'host locale utilizzando il comando seguente.

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

Assicurati che la regione sia la stessa di GCP_LOCATION. Quindi puoi sfogliare l'URL dell'host locale.

Servizio proxy LIT

La demo di LIT è simile allo screenshot seguente:

Home demo LIT

Dovrai controllare l'analisi Sentimentale del set di dati Stanford Sentiment Treebank. Segui questi passaggi

  • Usa la funzione di ricerca nella tabella di dati di LIT per trovare i 56 punti dati contenenti la parola "not".

Ricerca demo LIT

  • Verificare l'accuratezza del modello BERT nella tabella delle metriche. La precisione del modello BERT è elevata.

Accuratezza demo LIT

  • Seleziona i singoli punti dati e cerca le spiegazioni. Cerca la parola "depressione".

Accuratezza demo LIT

  • Seleziona "Non è il film di gangster definitivo dell'era della depressione". Controlla la mappa di Salience. Le mappe di Salience suggeriscono che "non" e "ultimate" sono importanti per la previsione.

Accuratezza demo LIT

Puoi provare molte funzionalità LIT. Puoi trovare il nostro breve video di YouTube o il LIT ArXiv che spiega le funzionalità di LIT.

6. Complimenti

Complimenti per aver completato il codelab! È ora di rilassarsi!

Esegui la pulizia

Per ripulire il lab, elimina tutti i servizi Google Cloud creati per il lab. Usa Google Cloud Shell per eseguire i seguenti comandi.

Se la connessione a Google Cloud si interrompe a causa di inattività, reimposta le variabili. Segui i punti 2-c e 4-1 per impostare le variabili della shell e impostare il progetto 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.