การสาธิตการติดตั้งใช้งาน Learning Interpretability Tool (LIT) บน Google Cloud Platform

1. ภาพรวม

แล็บนี้จะให้คำแนะนำในการทำให้การสาธิต LIT ใช้งานได้อย่างรวดเร็ว วัตถุประสงค์คือการทำความคุ้นเคยกับเครื่องมือ LIT เพื่อสำรวจลักษณะการทำงานของโมเดล คุณจะทําการวิเคราะห์ด้านความรู้สึกและใช้ฟีเจอร์ LIT ที่มีการต่อรองเพื่อหาความสำคัญของคําที่เฉพาะเจาะจง การสาธิตจะมีชุดข้อมูลสำหรับทำการวิเคราะห์ ห้องทดลองมีขั้นตอนในการทำให้ LIT ใช้งานได้ใน Google Cloud Platform, วิเคราะห์ข้อมูล และลบบริการที่ทำให้ใช้งานได้แล้ว

เครื่องมือตีความการเรียนรู้ (LIT) คืออะไร

🔥LIT เป็นเครื่องมือทำความเข้าใจโมเดล ML แบบอินเทอร์แอกทีฟพร้อมภาพที่รองรับข้อมูลแบบข้อความ รูปภาพ และตาราง สามารถเรียกใช้เป็นเซิร์ฟเวอร์แบบสแตนด์อโลน หรือภายในสภาพแวดล้อมสมุดบันทึก เช่น Colab, Jupyter และสมุดบันทึกของ Google Cloud Vertex AI ก็ได้

LIT ออกแบบมาเพื่อตอบคำถามต่างๆ เช่น

  • โมเดลของฉันมีประสิทธิภาพต่ำในตัวอย่างประเภทใด
  • ทำไมโมเดลของฉันจึงสร้างการคาดการณ์นี้ การคาดการณ์นี้อาจเกิดจากพฤติกรรมที่ไม่พึงประสงค์ หรือมีการดำเนินการที่ไม่พึงประสงค์ในชุดการฝึกหรือไม่
  • โมเดลของฉันจะทำงานอย่างสม่ำเสมอไหมหากฉันเปลี่ยนสิ่งต่างๆ เช่น รูปแบบข้อความ กริยาแสดงเวลา หรือสรรพนามเพศ

เครื่องมือมีอยู่ใน LIT GitHub Repo เอกสารเกี่ยวกับรายงานนี้มีอยู่ใน ArXiv

สิ่งที่คุณจะทำ

คุณจะใช้ Google Cloud Shell เพื่อดึง ติดแท็ก พุช และทำให้อิมเมจคอนเทนเนอร์ใช้งานได้

คุณจะใช้ Google Artifact Registry ที่ช่วยให้คุณจัดเก็บอาร์ติแฟกต์จากศูนย์กลางและสร้างทรัพยากร Dependency ได้เป็นส่วนหนึ่งของประสบการณ์การใช้งาน Google Cloud แบบผสานรวม คุณจะอัปโหลดอิมเมจ Docker ไปยัง Artifact Registry โปรดดูข้อมูลเพิ่มเติมเกี่ยวกับนโยบายนี้ได้ที่เอกสารประกอบ Google Cloud Artifact Registry

คุณจะใช้ Google Cloud Cloud Run ซึ่งเป็นบริการ Knative ที่มีการจัดการ เพื่อทำให้อิมเมจ Docker ใช้งานได้ โดยเป็นแพลตฟอร์มการประมวลผลที่มีการจัดการซึ่งให้คุณเรียกใช้คอนเทนเนอร์บนโครงสร้างพื้นฐานที่รองรับการปรับขนาดของ Google ได้โดยตรง

ชุดข้อมูล

การสาธิตใช้ชุดข้อมูล Stanford Sentiment Treebank

"Stanford Sentiment Treebank เป็นคลังข้อมูลแรกที่มีต้นไม้แบบแยกวิเคราะห์ที่มีป้ายกำกับอย่างสมบูรณ์ ทำให้สามารถวิเคราะห์ผลกระทบทางองค์ประกอบของอารมณ์ในภาษาต่างๆ ได้อย่างสมบูรณ์ คลังข้อมูลจะอิงตามชุดข้อมูลของ Pang and Lee (2005) และประกอบด้วยประโยคเดี่ยว 11,855 ประโยคที่ดึงมาจากรีวิวภาพยนตร์ มีการแยกวิเคราะห์ด้วยโปรแกรมแยกวิเคราะห์ของสแตนฟอร์ด (Klein and Manning, 2003) และมีวลีที่ไม่ซ้ำกันรวม 215,154 วลีจากต้นไม้แยกวิเคราะห์เหล่านั้น โดยแต่ละวลีมีเจ้าหน้าที่ 3 คนใส่คำอธิบายประกอบ" ข้อมูลอ้างอิง

ก่อนเริ่มต้น

สำหรับคู่มืออ้างอิงนี้ คุณต้องมีโปรเจ็กต์ Google Cloud คุณจะสร้างโปรเจ็กต์ใหม่หรือเลือกโปรเจ็กต์ที่สร้างไว้แล้วก็ได้

2. เปิด Google Cloud Console และ Cloud Shell

ซึ่งเป็นการเปิดคอนโซล Google Cloud และใช้ Google Cloud Shell ในขั้นตอนนี้

2-ก: เปิดตัวคอนโซล Google Cloud

เปิดเบราว์เซอร์และไปที่คอนโซล Google Cloud

คอนโซล Google Cloud เป็นอินเทอร์เฟซสำหรับผู้ดูแลระบบเว็บที่ปลอดภัยและมีประสิทธิภาพซึ่งจะช่วยให้คุณจัดการทรัพยากร Google Cloud ได้อย่างรวดเร็ว เป็นเครื่องมือของ DevOps ทุกที่ทุกเวลา

2-ข: เปิดใช้งาน Google Cloud Shell

เปิด Google Cloud Shell ดูรูปภาพด้านล่างสำหรับการอ้างอิง

เปิดตัวคอนโซล Google Cloud

คุณควรจะเห็นบางสิ่งเช่นนี้:

Google Cloud Console

คุณจะใช้พรอมต์คำสั่งในขั้นตอนถัดไป

Cloud Shell คือสภาพแวดล้อมในการพัฒนาซอฟต์แวร์และการดำเนินการออนไลน์ที่เข้าถึงได้ทุกที่ด้วยเบราว์เซอร์ของคุณ คุณจัดการทรัพยากรได้ด้วยเทอร์มินัลออนไลน์ที่โหลดไว้ล่วงหน้าพร้อมกับยูทิลิตี เช่น เครื่องมือบรรทัดคำสั่ง gcloud, kubectl และอื่นๆ นอกจากนี้ คุณยังพัฒนา สร้าง แก้ไขข้อบกพร่อง และทำให้แอปในระบบคลาวด์ใช้งานได้โดยใช้ Cloud Shell Editor ออนไลน์ Cloud Shell มอบสภาพแวดล้อมออนไลน์ที่พร้อมให้บริการแก่นักพัฒนาซอฟต์แวร์ ซึ่งมีชุดเครื่องมือโปรดที่ติดตั้งไว้ล่วงหน้าและพื้นที่เก็บข้อมูลถาวร 5 GB

2-ค: ตั้งค่าโปรเจ็กต์ Google Cloud

ตั้งค่าโปรเจ็กต์ Google Cloud และตำแหน่งที่คุณจะสร้างบริการ Google Cloud ซึ่งคุณจะใช้ข้อมูลนี้เพื่อสร้าง Google Cloud Workbench และ Artifact Registry คุณจะต้องใช้ตัวเลือกแรกในการสร้างและพุชคอนเทนเนอร์ คุณจะต้องใช้รายการหลังเพื่อจัดเก็บอิมเมจคอนเทนเนอร์

คุณต้องตั้งค่าตัวแปร PROJECT_ID ที่จำเป็นเพียงตัวเดียว คุณสามารถแก้ไขตัวแปรอื่นๆ ได้ แต่ค่าเริ่มต้นจะเพียงพอต่อการเรียกใช้ห้องทดลอง ตั้งค่าโปรเจ็กต์ Google Cloud ที่ถูกต้อง ซึ่งจะใช้โดยคำสั่ง gcloud

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

3. ทำให้อิมเมจ Docker ใช้งานได้กับ Google Cloud Artifact Registry

3-ก: สร้าง Google Cloud Artifact Registry

ก่อนอื่น คุณต้องสร้างรีจิสทรีของอาร์ติแฟกต์เพื่อจัดเก็บอิมเมจ 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: ดึงรูปภาพ Docker

จากนั้น ให้ระบุอิมเมจ Docker LIT ทั้งหมดในที่เก็บสาธารณะโดยใช้คำสั่งด้านล่าง

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

คุณค้นหาอิมเมจที่มีอยู่ทั้งหมดและแท็กของรูปภาพเหล่านั้นได้ ซึ่งจะอ้างถึงเวอร์ชันอิมเมจ แล้วเลือกแท็กที่ต้องการติดตั้งใช้งาน

อิมเมจ Google Cloud Docker

ดึงอิมเมจ Docker ที่เลือกโดยใช้คำสั่งด้านล่าง

# 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 แท็ก

ขั้นที่ 3 ติดแท็กรูปภาพที่คุณเพิ่งดึงไปยังที่เก็บเป้าหมาย

# 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- มิติ: พุชรูปภาพ Docker

จากนั้นพุชอิมเมจ Docker ไปยังที่เก็บเป้าหมาย

# 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 ใช้งานได้ใน CloudRun

ทำให้อิมเมจ Docker ใช้งานได้จากที่เก็บเป้าหมายไปยังระบบคลาวด์

Cloud Run ทำให้ Google Cloud ใช้งานได้

ในตัวเลือกการติดตั้งใช้งาน ให้เลือก "ทำให้การแก้ไข 1 รายการใช้งานได้จากอิมเมจคอนเทนเนอร์ที่มีอยู่"

ในการกำหนดค่า ให้ตั้งชื่อบริการให้เหมือนกับ $DEMO_NAME และเลือกภูมิภาคให้เหมือนกับ $GCP_LOCATION

สำหรับการตรวจสอบสิทธิ์ คุณสามารถเลือก "อนุญาตการเรียกใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์" อย่างใดอย่างหนึ่ง หรือ "ต้องมีการตรวจสอบสิทธิ์" หากเลือก "ต้องมีการตรวจสอบสิทธิ์" คุณอาจต้องทำตามขั้นตอนเพิ่มเติมเพื่อเข้าถึงการสาธิต ดังนั้น ขอแนะนำให้เลือก "อนุญาตการเรียกใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์" หากคุณเพียงแค่ต้องการ ทำความคุ้นเคยกับการสาธิต

การกำหนดค่า Google Cloud Run

ในการกำหนดค่าคอนเทนเนอร์ ให้เลือกพอร์ตคอนเทนเนอร์เป็น 5432, หน่วยความจำเป็น 32 GB และ CPU เป็น 8

การกำหนดค่าคอนเทนเนอร์ Google Cloud

หลังจากกำหนดค่าแล้ว ให้สร้างอินสแตนซ์

4. ดูบริการ LIT บน GCP

หลังจากสร้างบริการแล้ว คุณจะดูบันทึกใน Google Cloud Console ได้

การนําทาง: แถบด้านบนใน Google Cloud Console → Cloud Run (ในแถบค้นหา) → เลือกแอปพลิเคชัน Demo1 → เลือก LOGS คุณยังดูเมตริก ฯลฯ ได้ด้วย

ใน Google Cloud Console ให้ใช้การค้นหาและพิมพ์ "Cloud Run" ดูรูปภาพด้านล่างสำหรับการอ้างอิง

ค้นหา Google Cloud Console

เลือก "การสาธิต1" บริการที่คุณเพิ่งสร้างขึ้น ดูรูปภาพด้านล่างเพื่อใช้อ้างอิง

รายการ Cloud Run ของ Google Cloud Console

คุณสามารถตรวจสอบส่วน "บันทึก" ในระหว่างนี้ คุณสามารถดู URL ของข้อมูลอ้างอิงได้ ดูรูปภาพด้านล่างเพื่อใช้อ้างอิง บันทึก Cloud Run ของคอนโซล Google Cloud

คุณสามารถดูส่วนเมตริก ดูรูปภาพด้านล่างเพื่อใช้อ้างอิง เมตริก Cloud Run ของ Google Cloud Console

5. เรียกดู URL การสาธิต LIT

หากเข้าถึง URL ไม่ได้เนื่องจากเกิดข้อผิดพลาด "ต้องห้าม" คุณต้องเปลี่ยนบริการและอนุญาตการเรียกใช้ที่ไม่ผ่านการตรวจสอบสิทธิ์

LIT เปลี่ยนสิทธิ์ Cloud Run

หรือพร็อกซีบริการกับโฮสต์ในเครื่องได้โดยใช้คำสั่งด้านล่าง

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

ตรวจสอบว่าภูมิภาคตรงกับ GCP_LOCATION จากนั้นคุณจะเรียกดู URL โฮสต์ในเครื่องได้

บริการพร็อกซี LIT

การสาธิต LIT มีลักษณะดังภาพหน้าจอด้านล่าง

หน้าแรกของ LIT การสาธิต

คุณกำลังตรวจสอบการวิเคราะห์ความรู้สึกในชุดข้อมูล Stanford Sentiment Treebank โปรดทำตามขั้นตอนด้านล่าง

  • ใช้ฟังก์ชันค้นหาในตารางข้อมูลของ LIT เพื่อค้นหาจุดข้อมูล 56 จุดที่มีคำว่า "ไม่"

การค้นหาการสาธิต LIT

  • ตรวจสอบความถูกต้องของรูปแบบ BERT ในตารางเมตริก โมเดล BERT มีความแม่นยำสูง

ความถูกต้องของเดโม LIT

  • เลือกจุดข้อมูลแต่ละจุดแล้วมองหาคำอธิบาย ค้นหาคำว่า "โรคซึมเศร้า"

ความถูกต้องของเดโม LIT

  • เลือก "นี่ไม่ใช่ภาพยนตร์อันธพาลในยุคซึมเศร้า" ดูแผนที่ Salience แผนที่ Salience แนะนำว่า "ไม่" และ "สุดยอด" มีความสำคัญต่อการคาดการณ์

ความถูกต้องของเดโม LIT

มีฟีเจอร์ LIT มากมายให้คุณลองใช้ ดูวิดีโอ YouTube สั้นๆ ของเรา หรือ LIT ArXiv ที่อธิบายเกี่ยวกับฟีเจอร์ LIT

6. ขอแสดงความยินดี

เยี่ยมมากที่ Codelab ทำสำเร็จ ได้เวลาชิลล์แล้ว!

ล้างข้อมูล

หากต้องการล้างข้อมูลในห้องทดลอง ให้ลบบริการ Google Cloud ทั้งหมดที่สร้างขึ้นสำหรับห้องทดลอง ใช้ Google Cloud Shell เพื่อเรียกใช้คำสั่งต่อไปนี้

หากการเชื่อมต่อ Google Cloud หายไปเนื่องจากไม่มีการใช้งาน ให้รีเซ็ตตัวแปร ทำตาม 2-c และ 4-1 เพื่อตั้งค่าตัวแปร Shell และตั้งค่าโปรเจ็กต์ 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.