בדף הזה מוסבר איך להציג חיזויים ממודל סיווג התמונות שלכם ולראות את החיזויים האלה באפליקציית אינטרנט.
המדריך הזה כולל כמה דפים:הצגת תחזיות ממודל סיווג תמונות בהתאמה אישית.
בכל דף מניחים שכבר ביצעתם את ההוראות מהדפים הקודמים של המדריך.
בהמשך המסמך הזה נניח שאתם משתמשים באותה סביבת Cloud Shell שיצרתם כשפעלתם לפי ההוראות בדף הראשון של המדריך הזה. אם הסשן המקורי של Cloud Shell כבר לא פתוח, אפשר לחזור לסביבה באופן הבא:-
In the Google Cloud console, activate Cloud Shell.
-
בסשן של Cloud Shell, מריצים את הפקודה הבאה:
cd hello-custom-sample
במסוף Google Cloud , בקטע Vertex AI, עוברים לדף Models.
מוצאים את השורה של המודל שאומן בשלב הקודם במדריך הזה,
hello_custom, ולוחצים על שם המודל כדי לפתוח את דף הפרטים שלו.בכרטיסייה Deploy & test (פריסה ובדיקה), לוחצים על Deploy to endpoint (פריסה לנקודת קצה) כדי לפתוח את החלונית Deploy to endpoint (פריסה לנקודת קצה).
בשלב Define your endpoint (הגדרת נקודת הקצה), מוסיפים מידע בסיסי על נקודת הקצה:
בוחרים באפשרות יצירת נקודת קצה חדשה.
בשדה Endpoint name, מזינים
hello_custom.בקטע הגדרות המודל, מוודאים שמופיע שם המודל, שנקרא גם
hello_custom. מגדירים את ההגדרות הבאות של המודל:בשדה חלוקת התנועה, מזינים
100. Vertex AI תומך בפיצול תנועה לנקודת קצה לכמה מודלים, אבל במדריך הזה לא נעשה שימוש בתכונה הזו.בשדה Minimum number of compute nodes (מספר מינימלי של צמתי מחשוב), מזינים
1.ברשימה הנפתחת סוג מכונה, בוחרים באפשרות n1-standard-2 בקטע Standard.
לוחצים על סיום.
בקטע Logging, מוודאים ששני סוגי הרישום ביומן של התחזיות מופעלים.
לוחצים על Continue.
בשלב פרטי נקודת הקצה, מאשרים שנקודת הקצה תופעל ב-
us-central1 (Iowa).לא מסמנים את תיבת הסימון Use a customer-managed encryption key (CMEK) (שימוש במפתח הצפנה בניהול הלקוח). במדריך הזה לא נעשה שימוש ב-CMEK.
לוחצים על Deploy (פריסה) כדי ליצור את נקודת הקצה ולפרוס את המודל בנקודת הקצה.
אפשר להגדיר פונקציית Cloud Run לקבלת בקשות לא מאומתות. בנוסף, פונקציות מופעלות באמצעות חשבון שירות עם התפקיד Editor (עריכה) כברירת מחדל, שכולל את ההרשאה
aiplatform.endpoints.predictשנדרשת כדי לקבל תחזיות מנקודת הקצה של Vertex AI.הפונקציה הזו מבצעת גם עיבוד מקדים שימושי של הבקשות. נקודת הקצה של Vertex AI מצפה לבקשות חיזוי בפורמט של השכבה הראשונה בתרשים TensorFlow Keras שאומן: טנסור של מספרים ממשיים מנורמלים עם ממדים קבועים. הפונקציה מקבלת כקלט את כתובת ה-URL של תמונה, ומבצעת עיבוד מקדים של התמונה לפורמט הזה לפני שליחת בקשה לחיזוי מנקודת הקצה של Vertex AI.
במסוף Google Cloud , בקטע Vertex AI, עוברים לדף Endpoints.
מוצאים את השורה של נקודת הקצה שיצרתם בקטע הקודם, שנקראת
hello_custom. בשורה הזו, לוחצים על בקשה לדוגמה כדי לפתוח את החלונית בקשה לדוגמה.בחלונית בקשה לדוגמה, מחפשים את שורת קוד ה-Shell שתואמת לתבנית הבאה:
ENDPOINT_ID="ENDPOINT_ID"
ENDPOINT_ID הוא מספר שמזהה את נקודת הקצה הספציפית הזו.
מעתיקים את שורת הקוד הזו ומפעילים פתרונות חכמים אותה בסשן של Cloud Shell כדי להגדיר את המשתנה
ENDPOINT_ID.מריצים את הפקודה הבאה בסשן של Cloud Shell כדי לפרוס את פונקציית Cloud Run:
gcloud functions deploy classify_flower \ --region=us-central1 \ --source=function \ --runtime=python37 \ --memory=2048MB \ --trigger-http \ --allow-unauthenticated \ --set-env-vars=ENDPOINT_ID=${ENDPOINT_ID}מגדירים כמה משתני מעטפת לשימוש בפקודות בשלבים הבאים:
PROJECT_ID=PROJECT_ID BUCKET_NAME=BUCKET_NAMEמחליפים את מה שכתוב בשדות הבאים:
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud .
- BUCKET_NAME: השם של קטגוריית Cloud Storage שיצרתם כשפעלתם לפי ההוראות בדף הראשון של המדריך הזה.
עורכים את האפליקציה כדי לספק לה את כתובת ה-URL של הטריגר של פונקציית Cloud Run:
echo "export const CLOUD_FUNCTION_URL = 'https://us-central1-${PROJECT_ID}.cloudfunctions.net/classify_flower';" \ > webapp/function-url.jsמעלים את הספרייה
webappלקטגוריה שלכם ב-Cloud Storage:gcloud storage cp webapp gs://${BUCKET_NAME}/ --recursiveהופכים את הקבצים של אפליקציית האינטרנט שהעליתם עכשיו לקריאים באופן ציבורי:
gcloud storage objects update gs://${BUCKET_NAME}/webapp/** --add-acl-grant=entity=allUsers,role=READERעכשיו אפשר לעבור לכתובת ה-URL הבאה כדי לפתוח את אפליקציית האינטרנט ולקבל תחזיות:
https://storage.googleapis.com/BUCKET_NAME/webapp/index.html
פותחים את אפליקציית האינטרנט ולוחצים על תמונה של פרח כדי לראות את הסיווג של סוג הפרח על ידי מודל ה-ML. אפליקציית האינטרנט מציגה את התחזית כרשימה של סוגי פרחים, ואת ההסתברות שהתמונה מכילה כל סוג של פרח.
יצירת נקודת קצה
כדי לקבל תחזיות אונליין מהמודל של למידת המכונה שאומן לפי ההוראות בדף הקודם של המדריך הזה, צריך ליצור נקודת קצה ב-Vertex AI. נקודות קצה משמשות להצגת תחזיות אונליין ממודל אחד או יותר.
אחרי כמה דקות, הסמל יופיע ליד נקודת הקצה החדשה בטבלה Endpoints. במקביל, תקבלו גם אימייל שמאשר שיצרתם את נקודת הקצה ופרסתם את המודל בנקודת הקצה.
פריסת פונקציית Cloud Run
כדי לקבל תחזיות מנקודת הקצה של Vertex AI שיצרתם, אתם יכולים לשלוח בקשות לממשק REST של Vertex AI API. עם זאת, רק גורמים עם הרשאת aiplatform.endpoints.predict יכולים לשלוח בקשות לחיזוי אונליין. אי אפשר להגדיר את נקודת הקצה כציבורית כך שכל אחד יוכל לשלוח אליה בקשות, למשל דרך אפליקציית אינטרנט.
בקטע הזה, פורסים קוד ל-פונקציות Cloud Run כדי לטפל בבקשות לא מאומתות. קוד לדוגמה שהורדתם כשקראתם את הדף הראשון של המדריך הזה מכיל קוד לפונקציית Cloud Run הזו בספרייה function/. אפשר להריץ את הפקודה הבאה כדי לבדוק את הקוד של פונקציית Cloud Run:
less function/main.py
פריסת הפונקציה מיועדת למטרות הבאות:
כדי לפרוס את פונקציית Cloud Run:
פריסת אפליקציית אינטרנט לשליחת בקשות לחיזוי
לבסוף, מארחים אפליקציית אינטרנט סטטית ב-Cloud Storage כדי לקבל תחזיות מהמודל המאומן של למידת מכונה. אפליקציית האינטרנט שולחת בקשות לפונקציית Cloud Run, שמבצעת עיבוד מקדים של הבקשות ומקבלת תחזיות מנקודת הקצה של Vertex AI.
הספרייה webapp של קוד הדוגמה שהורדתם מכילה אפליקציית אינטרנט לדוגמה. בסשן של Cloud Shell, מריצים את הפקודות הבאות כדי להכין ולפרוס את אפליקציית האינטרנט:
בצילום המסך הבא, אפליקציית האינטרנט כבר קיבלה חיזוי אחד, ועכשיו היא בתהליך של שליחת בקשה לחיזוי נוסף.
המאמרים הבאים
פועלים לפי ההוראות בדף האחרון של המדריך כדי למחוק את המשאבים שיצרתם.