Wdrażanie narzędzia do interpretowalności nauki (LIT) w Google Cloud Platform

1. Omówienie

Ten moduł zawiera instrukcje szybkiego wdrażania wersji demonstracyjnej LIT. Celem jest zapoznanie się z narzędziem LIT, które umożliwia poznanie zachowania modelu. Przeprowadzasz analizę nastawienia i używasz funkcji LIT (kontrfaktycznej analizy LIT), aby określić znaczenie określonych słów. Wersja demonstracyjna zawiera zbiór danych do przeprowadzenia analizy. Moduł przedstawia kroki wdrażania LIT w Google Cloud Platform, analizowania danych i usuwania wdrożonych usług.

Co to jest narzędzie do analizowania interpretowalności (LIT)?

🔥LIT to wizualne, interaktywne narzędzie do rozumienia modeli ML, które obsługuje dane tekstowe, graficzne i tabelowe. Można go uruchomić jako samodzielny serwer lub w środowiskach notatników, takich jak Colab, Jupyter i notatniki Google Cloud Vertex AI.

LIT pomaga odpowiedzieć na takie pytania jak:

  • Z jakim typem przykładów model radzi sobie słabo?
  • Dlaczego model sformułował tę prognozę? Czy tę prognozę można przypisać niewłaściwym zachowaniu lub niepożądanym wcześniejszym osobom w zbiorze treningowym?
  • Czy mój model zachowuje się spójnie, jeśli zmienię takie elementy jak styl tekstu, czas czasownika czy rodzaj zaimka?

Narzędzie jest dostępne w repozytorium LIT GitHub. Dokument na ten temat jest też dostępny w ArXiv.

Jakie zadania wykonasz:

Wykorzystasz Google Cloud Shell do pobierania, tagowania, wypychania i wdrażania obrazu kontenera.

Będziesz korzystać z Google Artifact Registry, które umożliwia centralne przechowywanie artefaktów i zależności kompilacji w ramach zintegrowanej usługi Google Cloud. Obraz Dockera prześlesz do Artifact Registry. Więcej informacji na ten temat znajdziesz w dokumentacji Google Cloud Artifact Registry.

Do wdrożenia obrazu Dockera użyjesz Google Cloud Run – zarządzanej usługi Knative. Jest to zarządzana platforma obliczeniowa, która umożliwia uruchamianie kontenerów bezpośrednio na skalowalnej infrastrukturze Google.

Zbiór danych

W wersji demonstracyjnej wykorzystano zbiór danych Stanford Sentiment Treebank.

„The Stanford Sentiment Treebank to pierwszy korpus z w pełni oznakowanymi drzewami analizy, co umożliwia pełną analizę kompozycji oddziaływania nastawienia w języku. Ten korpus opiera się na zbiorze danych wprowadzonych przez Panga i Lee (2005) i składa się z 11 855 pojedynczych zdań wyodrębnionych z recenzji filmów. Został on przeanalizowany za pomocą parsera Stanforda (Klein i Manning, 2003) i zawiera łącznie 215 154 unikalnych wyrażeń z analizowanych drzew, każde z adnotacjami przez 3 sędziów”. Artykuł referencyjny

Zanim zaczniesz

Aby skorzystać z tego przewodnika, potrzebujesz projektu Google Cloud. Możesz utworzyć nowy lub wybrać już utworzony projekt.

2. Uruchamianie konsoli Google Cloud i Cloud Shell

W tym kroku uruchomisz konsolę Google Cloud i użyjesz Google Cloud Shell.

2-a. Uruchamianie konsoli Google Cloud

Uruchom przeglądarkę i otwórz konsolę Google Cloud.

Konsola Google Cloud to zaawansowany i bezpieczny interfejs administratora internetowego, który umożliwia szybkie zarządzanie zasobami Google Cloud. Narzędzie do DevOps dostępne z dowolnego miejsca.

2-b. Uruchamianie Google Cloud Shell

Uruchom Google Cloud Shell. Patrz ilustracja poniżej.

Wprowadzenie Google Cloud Console

Powinien pojawić się ekran podobny do tego:

Google Cloud Console

W kolejnych krokach będziesz używać wiersza poleceń.

Cloud Shell to środowisko programistyczne i operacyjne online, które jest dostępne z dowolnego miejsca przy użyciu przeglądarki. Możesz zarządzać zasobami za pomocą terminala online wyposażonego w narzędzia wiersza poleceń gcloud czy kubectl. Możesz także tworzyć, kompilować, debugować i wdrażać aplikacje działające w chmurze za pomocą edytora online Cloud Shell. Cloud Shell to gotowe dla programistów środowisko online z zainstalowanym wstępnie zestawem ulubionych narzędzi i 5 GB miejsca na dane.

2-c: Ustaw projekt Google Cloud

Ustaw projekt Google Cloud i lokalizację, w której chcesz utworzyć usługi Google Cloud. Informacje te pomogą Ci utworzyć Google Cloud Workbench i Artifact Registry. Wykorzystasz pierwszy z nich do utworzenia i wypchnięcia kontenera. Będziesz używać tego drugiego do przechowywania obrazu kontenera.

Musisz ustawić jedyną wymaganą zmienną PROJECT_ID. Możesz też zmodyfikować pozostałe zmienne, ale do uruchomienia modułu wystarczą wartości domyślne. Ustaw właściwy projekt Google Cloud. Jest on używany w poleceniu gcloud.

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

3. Wdrażanie obrazów Dockera w Google Cloud Artifact Registry

3-a. Tworzenie Google Cloud Artifact Registry

Najpierw musisz utworzyć artefakt do przechowywania obrazów Dockera.

# 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: Pobieranie obrazu Dockera

Następnie wymień wszystkie obrazy Dockera LIT w repozytorium publicznym za pomocą poniższego polecenia.

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

Możesz znaleźć wszystkie dostępne obrazy i ich tag odnoszący się do wersji obrazu, a następnie wybrać tag, który chcesz wdrożyć.

Obrazy Google Cloud Docker

Pobierz wybrany obraz Dockera za pomocą poniższego polecenia.

# 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: Dodaj tagi do obrazu Dockera

Po trzecie, otaguj pobrany właśnie obraz do repozytorium docelowego.

# 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: Wypchnij obraz Dockera

Następnie wypchnij obraz Dockera do repozytorium docelowego.

# 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: Wdrażanie obrazu Dockera w Cloud Run

Wdróż obraz Dockera w Cloud Run z repozytorium docelowego.

Google Cloud Deploy – Cloud Run

W opcji wdrażania wybierz „Wdróż jedną wersję z istniejącego obrazu kontenera”.

W konfiguracji nadaj usłudze taką samą nazwę jak $DEMO_NAME, a region wybierz taki sam jak region $GCP_LOCATION.

W sekcji Authentication możesz wybrać opcję „Zezwalaj na nieuwierzytelnione wywołania”. lub „Wymagaj uwierzytelnienia”. Jeśli wybierzesz „Wymagaj uwierzytelnienia”, może być konieczne wykonanie dodatkowych czynności, aby uzyskać dostęp do wersji demonstracyjnej. Dlatego zalecamy wybranie opcji „Zezwalaj na nieuwierzytelnione wywołania” jeśli chcecie tylko zapoznać się z wersją demonstracyjną.

Konfiguracja Google Cloud Run

W konfiguracji kontenerów wybierz port kontenera 5432, pamięć 32 Gib i 8 CPU.

Konfiguracja Google Cloud Container

Po ustawieniu konfiguracji utwórz instancję.

4. Wyświetl usługę LIT w GCP

Po utworzeniu usługi możesz obserwować logi w konsoli Google Cloud.

Nawigacja: pasek górny w konsoli Google Cloud → Cloud Run (na pasku wyszukiwania) → wybierz aplikację demo1 → wybierz LOGS. Możesz też sprawdzić DANE itp.

W konsoli Google Cloud użyj wyszukiwarki i wpisz „Cloud Run”. Patrz ilustracja poniżej.

Wyszukiwanie w Google Cloud Console

Wybierz „demo1” utworzonej właśnie usłudze. Dla ułatwienia patrz ilustracja poniżej.

Lista Cloud Run w konsoli Google Cloud

Możesz sprawdzić sekcję LOGS. Do tego czasu możesz skorzystać z materiałów referencyjnych. Dla ułatwienia patrz ilustracja poniżej. Log Cloud Run konsoli Google Cloud

Możesz sprawdzić sekcję DANE. Dla ułatwienia patrz ilustracja poniżej. Wskaźniki Cloud Run w konsoli Google Cloud

5. Przeglądaj URL demonstracyjny LIT

Jeśli nie możesz uzyskać dostępu do adresu URL z powodu błędu „Dostęp zabroniony”, musisz zmienić usługę i zezwolić na nieuwierzytelnione wywołania.

Zmiana uprawnienia w Cloud Run przy użyciu LIT

Możesz też udostępnić usługę na serwerze lokalnym za pomocą poniższego polecenia.

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

Sprawdź, czy region jest taki sam jak w GCP_LOCATION. Następnie możesz przeglądać adres URL hosta lokalnego.

Usługa proxy LIT

Wersja demonstracyjna LIT wygląda tak jak na zrzucie ekranu poniżej:

Strona główna LIT Demo

Sprawdzisz analizę nastawienia w zbiorze danych Stanford Sentiment Treebank. Wykonaj te czynności:

  • Za pomocą funkcji wyszukiwania w tabeli danych LIT znajdź 56 punktów danych zawierających słowo „nie”.

Wyszukiwanie demonstracyjne LIT

  • Sprawdź dokładność modelu BERT w tabeli wskaźników. Dokładność modelu BERT jest wysoka.

Dokładność demonstracji LIT

  • Zaznaczaj poszczególne punkty danych i szukaj wyjaśnień. Wyszukaj słowo „depresja”.

Dokładność demonstracji LIT

  • Wybierz „To nie jest najlepszy film gangsterski z ery depresji”. Sprawdź mapę lokalizacji. Mapy lokalizacji sugerują, że „nie” i „najlepszy” są ważne dla prognozy.

Dokładność demonstracji LIT

Jest wiele funkcji LIT, które możesz wypróbować. Obejrzyj nasz krótki film w YouTube lub film LIT ArXiv, w których omawiamy funkcje LIT.

6. Gratulacje

Udało Ci się ukończyć ćwiczenia z programowania. Czas na relaks!

Czyszczenie danych

Aby wyczyścić moduł, usuń wszystkie utworzone na jego potrzeby usługi Google Cloud. Użyj Google Cloud Shell do uruchomienia tych poleceń.

Jeśli połączenie z Google Cloud zostanie utracone z powodu braku aktywności, zresetuj zmienne. Wykonaj punkty 2-c i 4.1, aby ustawić zmienne powłoki i ustawić projekt 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.