1. סקירה כללית
שיעור ה-Lab הזה מספק הוראות לפריסה מהירה של הדגמת LIT. המטרה היא להכיר את כלי LIT כדי לחקור את ההתנהגות של המודל. תבצעו ניתוח סנטימנטלי ותשתמשו בתכונה 'LIT נגדית' כדי למצוא את החשיבות של מילים ספציפיות. ההדגמה כוללת מערך נתונים לביצוע הניתוח. בשיעור ה-Lab תקבלו שלבים לפריסת LIT ב-Google Cloud Platform, לניתוח הנתונים ולמחיקת השירותים שנפרסו.
מהו הכלי להבנת הפרשנות (LIT)?
🔥LIT הוא כלי אינטראקטיבי וויזואלי להבנת מודלים של למידת מכונה, שתומך בטקסט, בתמונה ובנתונים בטבלה. אפשר להריץ אותו כשרת עצמאי או בתוך סביבות notebook כמו Colab, Jupyter ו-Google Cloud Vertex AI.
LIT נועד לענות על שאלות כמו:
- באילו דוגמאות הביצועים של המודל שלי חלשים?
- למה החיזוי הזה מבוסס על המודל שלי? האם אפשר לשייך את החיזוי הזה להתנהגות עוינת, או לאירועים קודמים לא רצויים בקבוצת האימון?
- האם המודל שלי מתנהג באופן עקבי אם משנים פרטים כמו סגנון הטקסט, זמן פועל או לשון הפנייה?
הכלי זמין במאגר GitHub של LIT. ניתן למצוא מאמר על כך גם ב-ArXiv.
הפעולות שתבצעו:
משתמשים ב-Google Cloud Shell כדי לשלוף, לתייג, לדחוף את קובץ האימג' בקונטיינר ולפרוס אותו.
שימוש ב-Google Artifact Registry יאפשר לכם לאחסן באופן ריכוזי ארטיפקטים וליצור יחסי תלות כחלק מחוויה משולבת ב-Google Cloud. עליך להעלות את קובץ האימג' של ה-Docker ל-Artifact Registry. מידע נוסף בנושא זמין במסמכי התיעוד של Google Cloud Artifact Registry.
כדי לפרוס את קובץ האימג' של Docker, תשתמשו ב-Google Cloud Cloud Run, שירות Knative מנוהל. זוהי פלטפורמת מחשוב מנוהלת שמאפשרת להריץ קונטיינרים ישירות על גבי התשתית של Google הניתנת להתאמה.
מערך נתונים
ההדגמה משתמשת במערך הנתונים Stanford Sentiment Treebank.
"The Stanford Sentiment Treebank הוא הקורפוס הראשון עם עצי ניתוח מתויגים מלא, שמאפשר ניתוח מלא של ההשפעות ההרכבת של סנטימנט בשפה. הקורפוס מבוסס על מערך הנתונים שהוצגו על ידי Pang ולי (2005) והוא מורכב מ-11,855 משפטים יחידים שנשלפו מביקורות על סרטים. הוא מנותח על ידי המנתח של סטנפורד (Klein and Manning, 2003) והוא כולל סך של 215,154 ביטויים ייחודיים מעצי הניתוח האלה, ששלושה שופטים אנושיים הוסיפו לכל אחד מהם הערות." מאמר עזרה
לפני שמתחילים
במדריך הזה תצטרכו פרויקט ב-Google Cloud. אפשר ליצור פרויקט חדש או לבחור פרויקט שכבר יצרת.
2. הפעלת מסוף Google Cloud ו-Cloud Shell
בשלב הזה תשיקו את מסוף Google Cloud ותשתמשו ב-Google Cloud Shell.
2-א: השקת מסוף Google Cloud
מפעילים דפדפן ונכנסים אל מסוף Google Cloud.
מסוף Google Cloud הוא ממשק מתקדם ומאובטח לניהול אתרים, שמאפשר לכם לנהל את משאבי Google Cloud במהירות. זהו כלי DevOps על הדרך.
2-ב: השקת Google Cloud Shell
מפעילים את Google Cloud Shell. אפשר להיעזר בתמונה הבאה.
אתם אמורים לראות משהו כזה:
בשלבים הבאים תשתמשו בשורת הפקודה.
Cloud Shell היא סביבת פיתוח ותפעול אונליין שאפשר לגשת אליה מכל מקום באמצעות הדפדפן. תוכלו לנהל את המשאבים באמצעות טרמינל אונליין שנטען מראש בכלים כמו כלי שורת הפקודה של Google Cloud, kubectl ועוד. תוכלו גם לפתח, לפתח, לנפות באגים ולפרוס אפליקציות מבוססות-ענן באמצעות ה-Cloud Shell Editor אונליין. שירות Cloud Shell מספק סביבה מוכנה מראש של מפתחים, עם ערכת כלים מועדפים מותקנת מראש ונפח אחסון מתמיד של 5GB.
2.ג: הגדרת פרויקט ב-Google Cloud
מגדירים את הפרויקט ב-Google Cloud ואת המיקום שבו יוצרים את שירותי Google Cloud. המידע ישמש אתכם כדי ליצור Google Cloud Workbench ו-Artifact Registry. תשתמשו בשיטה הראשונה כדי לבנות ולדחוף קונטיינר. תשתמשו בפורמט השני כדי לאחסן את קובץ האימג' של הקונטיינר.
עליכם להגדיר את משתנה החובה היחיד PROJECT_ID. אפשר לשנות את שאר המשתנים, אבל ערכי ברירת המחדל מספיקים להפעלת שיעור ה-Lab. מגדירים את הפרויקט הנכון ב-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
קודם כול, צריך ליצור רישום של פריטי מידע שנוצרו בתהליך הפיתוח (Artifact) כדי לאחסן תמונות Docer.
# 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
תוכלו למצוא את כל התמונות הזמינות ואת התג שלהן, שמפנה לגרסת התמונה, ולבחור את התג שרוצים לפרוס.
מושכים את תמונת ה-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
שלישית, מתייגים את התמונה שלמדתם עכשיו למאגר היעד.
# 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 של Push
לאחר מכן, מעבירים את קובץ האימג' של ה-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 להרצה בענן ממאגר היעד.
באפשרות הפריסה, בוחרים באפשרות "פריסת גרסה אחת מקובץ קונטיינר קיים".
ב'תצורה', נותנים לשירות שם זהה ל-$DEMO_NAME, ובוחרים את האזור שיהיה זהה לשם של $GCP_LOCATION.
בשביל אימות, אפשר לבחור באפשרות 'התרת הפעלות לא מאומתות' או 'דרישת אימות'. אם בוחרים באפשרות 'דרישת אימות', יכול להיות שתצטרכו לבצע שלבים נוספים כדי לגשת להדגמה. לכן מומלץ לבחור באפשרות 'לאפשר הפעלות לא מאומתות'. כשרוצים רק להכיר את ההדגמה.
בהגדרה של Containers, בוחרים שיציאת הקונטיינר תהיה 5432, הזיכרון יהיה 32Gib והמעבד יהיה 8.
אחרי שקובעים את ההגדרות, יוצרים את המכונה.
4. הצגת שירות LIT ב-GCP
אחרי יצירת השירות תוכלו לצפות ביומנים במסוף Google Cloud.
ניווט: הסרגל העליון במסוף Google Cloud ← Cloud Run (בסרגל החיפוש) ← בוחרים באפליקציית ההדגמה (דמו1) ← בוחרים באפשרות LOGS. אפשר גם לבדוק את המדדים וכו'.
במסוף Google Cloud, משתמשים ב-Search ומקלידים Cloud Run. אפשר להיעזר בתמונה הבאה.
בוחרים את 'demo1' השירות החדש שיצרתם. אפשר לעיין בתמונה בהמשך לעיונך.
ניתן לבדוק את הקטע LOGS. בינתיים, תוכלו למצוא את כתובת ה-URL של קובץ העזר. אפשר לעיין בתמונה בהמשך לעיונך.
אפשר לעיין בקטע 'מדדים'. אפשר לעיין בתמונה בהמשך לעיונך.
5. עיון בכתובת ה-URL של ההדגמה של LIT
אם אין גישה לכתובת ה-URL עקב שגיאה אסורה, צריך לשנות את השירות ולאפשר הפעלה לא מאומתת.
לחלופין, אפשר להעביר את השירות לשרת proxy באמצעות הפקודה שלמטה.
# Proxy the service to local host.
gcloud run services proxy $DEMO_NAME --project $PROJECT_ID
יש לוודא שהאזור זהה ל-GCP_LOCATION. לאחר מכן אפשר לעיין בכתובת ה-URL של המארח המקומי.
הדגמת LIT נראית כמו צילום המסך הבא:
תבדקו את 'ניתוח סנטימנטל' במערך הנתונים Stanford Sentiment Treebank. צריך לפעול לפי השלבים הבאים:
- משתמשים בפונקציית החיפוש בטבלת הנתונים של LIT כדי למצוא את 56 הנקודות שמכילות את המילה 'not'.
- בודקים את רמת הדיוק של מודל BERT בטבלת המדדים. רמת הדיוק של מודל BERT היא גבוהה.
- לבחור נקודות על הגרף ולחפש הסברים. מחפשים את המילה 'דיכאון'.
- בוחרים באפשרות "זה לא סרט הגנגסטר האולטימטיבי מתקופת הדיכאון". בודקים את מפת Salience. במפות Salience משתמע ש"לא" ו'אולטימטיבי' חשובים לחיזוי.
יש הרבה תכונות של LIT שאפשר לנסות. אתם יכולים למצוא את הסרטון הקצר של YouTube או את LIT ArXiv שמסבירים את התכונות של LIT.
6. מזל טוב
כל הכבוד על השלמת ה-Codelab! הגיע הזמן להירגע!
הסרת המשאבים
כדי לנקות את שיעור ה-Lab, צריך למחוק את כל שירותי Google Cloud שנוצרו לשיעור ה-Lab. מריצים את הפקודות הבאות באמצעות Google Cloud Shell.
אם Google Cloud Connection אבד בגלל חוסר פעילות, אפסו את המשתנים. פועלים לפי סעיפים 2-ג ו-4-1 כדי להגדיר את משתני המעטפת ולהגדיר את הפרויקט ב-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.