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.
Auf dem Bildschirm sollte Folgendes zu sehen sein:
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.
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.
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.
Wählen Sie in der Containerkonfiguration den Containerport auf 5432, den Arbeitsspeicher auf 32Gib und die CPU auf 8 aus.
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.
Wählen Sie „demo1“ aus. den Sie gerade erstellt haben. Das Bild unten dient als Referenz.
Sie können den Abschnitt LOGS überprüfen. In der Zwischenzeit kannst du die URL der Referenz herausfinden. Das Bild unten dient als Referenz.
Sie können sich den Abschnitt „MESSWERTE“ ansehen. Das Bild unten dient als Referenz.
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.
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.
Die LIT-Demo sieht so aus:
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.
- Überprüfen Sie die Genauigkeit des BERT-Modells in der Messwerttabelle. Die Genauigkeit des BERT-Modells ist hoch.
- Wählen Sie einzelne Datenpunkte aus und suchen Sie nach Erklärungen. Suchen Sie nach dem Wort „Depression“.
- 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.
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.