Google Cloud Platform'da Öğrenim Yorumlanabilirlik Aracı'nı (LIT) Dağıtma Demosu

1. Genel Bakış

Bu laboratuvarda, LIT demosunu hızlı bir şekilde dağıtmayla ilgili talimatlar sunulmaktadır. Amaç, model davranışını keşfetmek için LIT aracını tanımanızı sağlamaktır. Duygusal bir analiz yürütecek ve belirli kelimelerin önemini tespit etmek için Karşıt Gerçekçi LIT özelliğini kullanacaksınız. Demo, analizi gerçekleştirmek için bir veri kümesi içerir. Laboratuvarda, Google Cloud Platform'da LIT'yi dağıtma, verileri analiz etme ve dağıtılan hizmetleri silme ile ilgili adımlar açıklanmaktadır.

Öğrenme Yorumlanabilirlik Aracı (LIT) nedir?

🔥LIT; metin, görüntü ve tablo verilerini destekleyen görsel ve etkileşimli bir makine öğrenimi model anlama aracıdır. Bağımsız bir sunucu olarak veya Colab, Jupyter ve Google Cloud Vertex AI not defterleri gibi not defteri ortamlarının içinde çalıştırılabilir.

LIT, aşağıdaki gibi soruları yanıtlamak için tasarlanmıştır:

  • Modelim ne tür örneklerde kötü performans gösteriyor?
  • Modelim neden bu tahmini yaptı? Bu tahmin, yanıltıcı davranışlarla veya eğitim setindeki istenmeyen öncekilerle ilişkilendirilebilir mi?
  • Metin stili, fiil zamanı veya cinsiyetin hitap şekli gibi konularda değişiklik yaptığımda modelim tutarlı bir şekilde davranır mı?

Bu aracı LIT GitHub Repo'da bulabilirsiniz. Bu konuyla ilgili bir makale ArXiv'de de mevcuttur.

Yapacaklarınız

Kapsayıcı görüntüsünü çekmek, etiketlemek, aktarmak ve dağıtmak için Google Cloud Shell'i kullanacaksınız.

Entegre bir Google Cloud deneyimi kapsamında yapıları merkezi olarak depolamanıza ve bağımlılık oluşturmanıza olanak tanıyan Google Artifact Registry'yi kullanacaksınız. Docker görüntüsünü Artifact Registry'ye yükleyeceksiniz. Bu konu hakkında daha fazla bilgi için Google Cloud Artifact Registry belgelerini inceleyin.

Docker görüntüsünü dağıtmak için yönetilen bir Knative hizmeti olan Google Cloud Run'ı kullanacaksınız. Bu, container'ları doğrudan Google'ın ölçeklenebilir altyapısında çalıştırmanızı sağlayan bir yönetilen bilgi işlem platformudur.

Veri kümesi

Demo, Stanford Sentiment Treebank veri kümesini kullanır.

"Stanford Sentiment Treebank, dildeki duygunun bileşimsel etkilerinin eksiksiz bir şekilde analiz edilmesine olanak tanıyan, tamamen etiketlenmiş ayrıştırma ağaçlarına sahip ilk topluluktur. Ekip,Pang ve Lee'nin (2005) ortaya koyduğu veri kümesini temel alır ve film incelemelerinden alınan 11.855 tek cümleden oluşur. Stanford ayrıştırıcısı (Klein ve Manning, 2003) ile ayrıştırıldı ve bu farklı ağaçlardan her biri 3 jüri tarafından ek açıklama eklenen toplam 215.154 benzersiz ifade içeriyor." Referans makale

Başlamadan önce

Bu başvuru kılavuzu için bir Google Cloud projenize ihtiyacınız vardır. Yeni bir proje oluşturabilir veya daha önce oluşturduğunuz bir projeyi seçebilirsiniz.

2. Google Cloud Console ve Cloud Shell'i başlatma

Bu adımda bir Google Cloud Console başlatacak ve Google Cloud Shell'i kullanacaksınız.

2-a: Google Cloud Console'u kullanıma sunma

Bir tarayıcı başlatın ve Google Cloud Console'a gidin.

Google Cloud Console, Google Cloud kaynaklarınızı hızlı bir şekilde yönetmenize olanak tanıyan güçlü ve güvenli bir web yöneticisi arayüzüdür. Hareket halindeyken kullanabileceğiniz bir DevOps aracıdır.

2-b: Google Cloud Shell'i başlatma

Bir Google Cloud Shell başlatın. Referans için aşağıdaki resme bakın.

Google Cloud Console Lansmanı

Aşağıdakine benzer bir tablo görürsünüz:

Google Cloud Console

Sonraki adımlarda komut istemini kullanacaksınız.

Cloud Shell, tarayıcınızı kullanarak her yerden erişebileceğiniz bir online geliştirme ve işlem ortamıdır. gcloud komut satırı aracı ve kubectl gibi yardımcı programlarla önceden yüklenmiş online terminalini kullanarak kaynaklarınızı yönetebilirsiniz. Ayrıca, online Cloud Shell Düzenleyici'yi kullanarak bulut tabanlı uygulamalarınızı geliştirebilir, derleyebilir, hata ayıklayabilir ve dağıtabilirsiniz. Cloud Shell, geliştiricilere önceden yüklenmiş favori araç seti ve 5 GB kalıcı depolama alanı bulunan online bir ortam sağlar.

2-c: Google Cloud projesi oluşturma

Google Cloud projesini ve Google Cloud hizmetlerini oluşturacağınız konumu belirleyin. Bu bilgileri kullanarak Google Cloud Workbench ve Artifact Registry oluşturacaksınız. Birincisi, container'ı derlemek ve aktarmak için kullanılır. Container görüntüsünü depolamak için ikinci boyut kullanılır.

Tek zorunlu PROJECT_ID değişkenini ayarlamanız gerekir. Diğer değişkenleri değiştirebilirsiniz ancak laboratuvarı çalıştırmak için varsayılan değerler yeterlidir. Doğru Google Cloud projesini belirleyin. gcloud komutu tarafından kullanılır.

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

3. Docker Görüntülerini Google Cloud Artifact Registry'ye Dağıtma

3-a: Google Cloud Artifact Registry oluşturma

Öncelikle Docker görüntülerini depolamak için bir yapı kaydı oluşturmanız gerekir.

# 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 Görüntüsü Alma

İkinci olarak, aşağıdaki komutu kullanarak herkese açık depodaki tüm LIT Docker görüntülerini listeleyin.

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

Mevcut tüm resimleri ve resim sürümünü ifade eden etiketlerini bulabilir, dağıtmak istediğiniz etiketi seçebilirsiniz.

Google Cloud Docker Görüntüleri

Aşağıdaki komutu kullanarak seçtiğiniz Docker görüntüsünü alı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: Docker Görüntüsünü Etiketleme

Üçüncü olarak, az önce çektiğiniz görüntüyü hedef depoya etiketleyin.

# 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 görüntüsü aktarma

Ardından Docker görüntüsünü hedef depoya aktarın.

# 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 Görüntüsünü CloudRun'a Dağıtma

Docker görüntüsünü hedef depodan bulut çalıştırmasına dağıtın.

Google Cloud Dağıtma Cloud Run

Dağıtım seçeneğinde "Mevcut bir container görüntüsünden bir düzeltme dağıt"ı seçin.

Config'de, hizmetinize $DEMO_NAME ile aynı adı verin ve $GCP_LOCATION ile aynı olacak şekilde Bölge seçin.

Kimlik doğrulama için "Kimliği doğrulanmayan çağrılara izin ver"i seçebilirsiniz veya "Kimlik doğrulaması iste"yi seçin. "Kimlik doğrulaması iste"yi seçerseniz demoya erişmek için ek adımlar tamamlamanız gerekebilir. Bu nedenle, "Kimliği doğrulanmayan çağrılara izin ver"i seçmeniz önerilir yalnızca demoyu daha yakından tanıyalım.

Google Cloud Run Yapılandırması

Containers yapılandırmasında Container bağlantı noktası 5432, Bellek 32 Gib ve CPU 8 olarak seçin.

Google Cloud Container Yapılandırması

Yapılandırmayı ayarladıktan sonra örneği oluşturun.

4. GCP'de LIT Hizmeti'ni görüntüleyin

Hizmeti oluşturduktan sonra günlükleri Google Cloud Console'da izleyebilirsiniz.

Gezinme: Google Cloud Console'da üst çubuk → Cloud Run (arama çubuğunda) → demo1 uygulamasını seçin → LOGS'ları seçin. Ayrıca, METRICS vb. değerleri de kontrol edebilirsiniz.

Google Cloud Console'da, Arama'yı kullanın ve "Cloud Run" yazın. Referans için aşağıdaki resme bakın.

Google Cloud Console Arama

"Demo1"i seçin ekleyebilirsiniz. Referans olması için aşağıdaki resme bakın.

Google Cloud Console Cloud Run listesi

GÜNLÜKLER bölümünü kontrol edebilirsiniz. Bu sırada referansın URL'sini bulabilirsiniz. Referans olması için aşağıdaki resme bakın. Google Cloud Console Cloud Run Günlüğü.

METRİKLER bölümünü kontrol edebilirsiniz. Referans olması için aşağıdaki resme bakın. Google Cloud Console Cloud Run Metrikleri.

5. LIT Demo URL'sine göz atın

Yasak hatası nedeniyle URL'ye erişemiyorsanız hizmeti değiştirmeniz ve kimliği doğrulanmamış çağrıya izin vermeniz gerekir.

LIT Cloud Run İznini Değiştirme

Alternatif olarak, aşağıdaki komutu kullanarak hizmeti yerel ana makineye proxy olarak ayarlayabilirsiniz.

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

Bölgenin GCP_LOCATION ile aynı olduğundan emin olun. Ardından, yerel ana bilgisayar URL'sine göz atabilirsiniz.

LIT Proxy Hizmeti

LIT demosu aşağıdaki ekran görüntüsündeki gibi görünür:

LIT Demo ana sayfası

Stanford Sentiment Treebank veri kümesinde Duygusal Analiz'i kontrol edeceksiniz. Aşağıdaki adımları uygulayın

  • "not" kelimesini içeren 56 veri noktasını bulmak için LIT'nin veri tablosundaki arama işlevini kullanın.

LIT Demo Arama

  • Metrikler Tablosunda BERT modelinin doğruluğunu kontrol edin. BERT modelinin doğruluğu yüksektir.

LIT Demo Doğruluğu

  • Tek tek veri noktalarını seçin ve açıklamaları arayın. "Depresyon" kelimesini arayın.

LIT Demo Doğruluğu

  • "Bu, depresyon döneminin en iyi gangster filmi değil"i seçin. Salience Haritası'nı kontrol edin. Salience haritalarına göre ve "ultimate" (en önemli oluşturmak önemlidir.

LIT Demo Doğruluğu

Deneyebileceğiniz birçok LIT özelliği vardır. LIT özelliklerini açıklayan kısa YouTube videomuzu veya LIT ArXiv'i bulabilirsiniz.

6. Tebrikler

Codelab'i tamamladığınız için tebrikler. Rahatlama zamanı

Temizleme

Laboratuvarı temizlemek istiyorsanız laboratuvar için oluşturulan tüm Google Cloud hizmetlerini silin. Aşağıdaki komutları çalıştırmak için Google Cloud Shell'i kullanın.

Google Cloud bağlantısı etkinlik olmaması nedeniyle kesilirse değişkenleri sıfırlayın. Kabuk değişkenlerini ve Google Cloud projesini ayarlamak için 2-c ve 4-1'i izleyin.

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