Demo zum Learning Interpretability Tool (LIT) auf der Google Cloud Platform bereitstellen

1. Übersicht

In diesem Lab wird beschrieben, wie Sie schnell eine LIT-Demo bereitstellen. Ziel ist es, sich mit dem LIT-Tool vertraut zu machen und das Modellverhalten zu untersuchen. Sie führen eine Sentimentanalyse durch und verwenden die kontrafaktische LIT-Funktion, um die Bedeutung bestimmter Wörter zu ermitteln. Die Demo enthält ein Dataset zur Durchführung der Analyse. Im Lab erfahren Sie, wie Sie LIT in der Google Cloud Platform bereitstellen, die Daten analysieren und die bereitgestellten Dienste löschen.

Was ist das Learning Interpretability Tool (LIT)?

🔥LIT ist ein visuelles, interaktives Tool zum Verstehen von ML-Modellen, das Text-, Bild- und tabellarische Daten unterstützt. Es kann als eigenständiger Server oder in Notebook-Umgebungen wie Colab, Jupyter und Google Cloud Vertex AI-Notebooks ausgeführt werden.

Mit LIT können Sie u. a. folgende Fragen beantworten:

  • Bei welcher Art von Beispielen schneidet mein Modell schlecht ab?
  • Warum hat mein Modell diese Vorhersage getroffen? Kann diese Vorhersage auf kontradiktorisches Verhalten oder auf unerwünschte Anfangswahrscheinlichkeiten im Trainings-Dataset zurückgeführt werden?
  • Verändert sich das Modellverhalten bei Änderungen des Textstils, der Verbform oder des Pronomengeschlechts?

Das Tool ist im LIT-GitHub-Repository verfügbar. Ein Whitepaper dafür ist auch im ArXiv verfügbar.

Vorgehensweise

Sie verwenden Google Cloud Shell, um das Container-Image abzurufen, zu taggen, zu übertragen und bereitzustellen.

Sie verwenden Google Artifact Registry, mit dem Sie Artefakte zentral speichern und Abhängigkeiten in einer integrierten Google Cloud-Umgebung erstellen können. Das Docker-Image wird in Artifact Registry hochgeladen. Weitere Informationen dazu finden Sie in der Dokumentation zu Google Cloud Artifact Registry.

Sie verwenden Google Cloud Cloud Run, einen verwalteten Knative-Dienst, um das Docker-Image bereitzustellen. Es ist eine verwaltete Computing-Plattform, mit der Sie Container direkt auf der skalierbaren Google-Infrastruktur ausführen können.

Dataset

In der Demo wird das Stanford Sentiment Treebank-Dataset verwendet.

„Die Stanford Sentiment Treebank ist der erste Korpus mit vollständig beschrifteten Analysebäumen, die eine vollständige Analyse der Zusammensetzung der Stimmung in der Sprache ermöglichen. Der Korpus basiert auf dem von Pang und Lee (2005) vorgestellten Dataset und besteht aus 11.855 einzelnen Sätzen,die aus Filmrezensionen extrahiert wurden. Er wurde mit dem Stanford-Parser analysiert (Klein und Manning, 2003) und enthält insgesamt 215.154 eindeutige Phrasen aus diesen Parsing-Bäumen, die jeweils von drei menschlichen Jurymitgliedern annotiert wurden. Referenzmaterial

Hinweis

Für diesen Leitfaden benötigen Sie ein Google Cloud-Projekt. Sie können ein neues Projekt erstellen oder ein Projekt auswählen, das Sie bereits erstellt haben.

2. Google Cloud Console und Cloud Shell starten

Sie starten eine Google Cloud Console und verwenden in diesem Schritt Google Cloud Shell.

2-a: Google Cloud Console starten

Starten Sie einen Browser und rufen Sie die Google Cloud Console auf.

Die Google Cloud Console ist eine leistungsstarke, sichere Webverwaltungsoberfläche, mit der Sie Ihre Google Cloud-Ressourcen schnell verwalten können. Es ist ein DevOps-Tool, das Sie unterwegs nutzen können.

2-b: Google Cloud Shell starten

Starten Sie eine Google Cloud Shell. Das Bild unten dient als Referenz.

Einführung der Google Cloud Console

Auf dem Bildschirm sollte Folgendes zu sehen sein:

Google Cloud Console

In den nächsten Schritten verwenden Sie die Eingabeaufforderung.

Cloud Shell ist eine Umgebung für Online-Entwicklung und -Betrieb, auf die Sie mit Ihrem Browser von überall aus zugreifen können. Sie können Ihre Ressourcen mit dem Online-Terminal verwalten, auf dem Dienstprogramme wie das gcloud-Befehlszeilentool und kubectl vorinstalliert sind. Mit dem Cloud Shell Editor können Sie außerdem cloudbasierte Anwendungen entwickeln, erstellen, debuggen und bereitstellen. Cloud Shell bietet eine entwicklerfähige Onlineumgebung mit vorinstallierten bevorzugten Tools und 5 GB nichtflüchtigen Speicher.

2-c: Google Cloud-Projekt festlegen

Legen Sie das Google Cloud-Projekt und den Standort fest, an dem Sie die Google Cloud-Dienste erstellen. Mit diesen Informationen erstellen Sie eine Google Cloud Workbench und eine Artifact Registry. Sie verwenden die erste Variante, um einen Container zu erstellen und per Push zu übertragen. Mit Letzterem wird das Container-Image gespeichert.

Sie müssen die einzige obligatorische PROJECT_ID-Variable festlegen. Sie können die anderen Variablen ändern, aber die Standardwerte reichen aus, um das Lab auszuführen. Legen Sie das richtige Google Cloud-Projekt fest. Dieser wird vom gcloud-Befehl verwendet.

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

3. Docker-Images in Google Cloud Artifact Registry bereitstellen

3-a: Google Cloud Artifact Registry erstellen

Zuerst müssen Sie eine Artifact Registry zum Speichern von Docker-Images erstellen.

# 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: Docker-Image abrufen

Listen Sie dann mit dem folgenden Befehl alle LIT-Docker-Images im öffentlichen Repository auf.

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

Sie finden alle verfügbaren Images und ihr Tag, das sich auf die Image-Version bezieht, und wählen das Tag aus, das Sie bereitstellen möchten.

Google Cloud Docker-Images

Rufen Sie das ausgewählte Docker-Image mit dem folgenden Befehl ab.

# 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: Docker-Image taggen

Drittens: Taggen Sie das Image, das Sie gerade in das Ziel-Repository abgerufen haben.

# 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: Docker-Image übertragen

Übertragen Sie als Nächstes das Docker-Image per Push in das Ziel-Repository.

# 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: Docker-Image in Cloud Run bereitstellen

Stellen Sie das Docker-Image aus dem Ziel-Repository in Cloud Run bereit.

Google Cloud Deploy – Cloud Run

Wählen Sie unter „Bereitstellungsoption“ die Option „Eine Version aus einem vorhandenen Container-Image bereitstellen“ aus.

Geben Sie in Config den Namen $DEMO_NAME für Ihren Dienst an und wählen Sie als Region $GCP_LOCATION aus.

Für die Authentifizierung können Sie entweder „Nicht authentifizierte Aufrufe zulassen“ auswählen. oder „Authentifizierung erforderlich“. Wenn Sie „Authentifizierung erforderlich“ auswählen, müssen Sie möglicherweise weitere Schritte ausführen, um auf die Demo zuzugreifen. Daher wird empfohlen, „Nicht authentifizierte Aufrufe zulassen“ auszuwählen, wenn Sie sich nur mit der Demo vertraut machen möchten.

Google Cloud Run-Konfiguration

Wählen Sie in der Containerkonfiguration den Containerport auf 5432, den Arbeitsspeicher auf 32Gib und die CPU auf 8 aus.

Google Cloud-Containerkonfiguration

Nachdem Sie die Konfiguration festgelegt haben, erstellen Sie die Instanz.

4. LIT-Dienst auf der GCP ansehen

Nachdem Sie den Dienst erstellt haben, können Sie sich die Logs in der Google Cloud Console ansehen.

Navigation: Obere Leiste in der Google Cloud Console → Cloud Run (in der Suchleiste) → Wählen Sie die Anwendung „demo1“ aus → wählen Sie die LOGS aus. Sie können auch die Messwerte „METRICS“ usw. überprüfen.

Verwenden Sie in der Google Cloud Console die Suche und geben Sie „Cloud Run“ ein. Das Bild unten dient als Referenz.

Google Cloud Console-Suche

Wählen Sie „demo1“ aus. den Sie gerade erstellt haben. Das Bild unten dient als Referenz.

Cloud Run-Liste der Google Cloud Console

Sie können den Abschnitt LOGS überprüfen. In der Zwischenzeit kannst du die URL der Referenz herausfinden. Das Bild unten dient als Referenz. Cloud Run-Log der Google Cloud Console

Sie können sich den Abschnitt „MESSWERTE“ ansehen. Das Bild unten dient als Referenz. Cloud Run-Messwerte in der Google Cloud Console

5. URL der LIT-Demo ansehen

Wenn Sie aufgrund des Fehlers „Verboten“ nicht auf die URL zugreifen können, müssen Sie den Dienst ändern und den nicht authentifizierten Aufruf zulassen.

LIT: Cloud Run-Berechtigung ändern

Alternativ können Sie den Dienst mit dem folgenden Befehl an den lokalen Host weiterleiten.

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

Achten Sie darauf, dass die Region mit GCP_LOCATION übereinstimmt. Anschließend können Sie die URL des lokalen Hosts durchsuchen.

LIT-Proxy-Dienst

Die LIT-Demo sieht so aus:

LIT-Demo-Startseite

Sie überprüfen die Sentimentanalyse am Dataset Stanford Sentiment Treebank. Führen Sie die folgenden Schritte aus:

  • Verwenden Sie die Suchfunktion in der Datentabelle der LIT, um die 56 Datenpunkte zu finden, die das Wort „not“ enthalten.

LIT-Demosuche

  • Überprüfen Sie die Genauigkeit des BERT-Modells in der Messwerttabelle. Die Genauigkeit des BERT-Modells ist hoch.

LIT-Demogenauigkeit

  • Wählen Sie einzelne Datenpunkte aus und suchen Sie nach Erklärungen. Suchen Sie nach dem Wort „Depression“.

LIT-Demogenauigkeit

  • Wählen Sie „Es ist nicht der ultimative Gangsterfilm aus der Depressionszeit“ aus. Sehen Sie sich die Salience-Karte an. Salience-Karten deuten darauf hin, dass „nicht“ und „ultimative“ wichtig für die Vorhersage sind.

LIT-Demogenauigkeit

Es gibt viele LIT-Funktionen, die Sie ausprobieren können. In unserem kurzen YouTube-Video oder in der LIT ArXiv werden die Funktionen von LIT erläutert.

6. Glückwunsch

Sie haben das Codelab erfolgreich abgeschlossen. Zeit zum Chillen!

Bereinigen

Löschen Sie alle für das Lab erstellten Google Cloud-Dienste, um das Lab zu bereinigen. Verwenden Sie Google Cloud Shell, um die folgenden Befehle auszuführen.

Wenn die Google Cloud-Verbindung aufgrund von Inaktivität unterbrochen wird, setzen Sie die Variablen zurück. Befolgen Sie die Schritte 2-c und 4-1, um die Shell-Variablen und das Google Cloud-Projekt festzulegen.

# 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.