חדש: אימון בהתאמה אישית – הצגת תחזיות ממודל סיווג תמונות בהתאמה אישית

בדף הזה מוסבר איך להציג חיזויים ממודל סיווג התמונות שלכם ולראות את החיזויים האלה באפליקציית אינטרנט.

המדריך הזה כולל כמה דפים:

  1. הגדרת הפרויקט והסביבה.

  2. אימון מודל מותאם אישית לסיווג תמונות.

  3. הצגת חיזויים ממודל מותאם אישית לסיווג תמונות.

  4. פינוי מקום בפרויקט

בכל דף מניחים שכבר ביצעתם את ההוראות מהדפים הקודמים של המדריך.

בהמשך המסמך הזה נניח שאתם משתמשים באותה סביבת Cloud Shell שיצרתם כשפעלתם לפי ההוראות בדף הראשון של המדריך הזה. אם הסשן המקורי של Cloud Shell כבר לא פתוח, אפשר לחזור לסביבה באופן הבא:

  1. במסוף Google Cloud , מפעילים את Cloud Shell.

    הפעלת Cloud Shell

  2. בסשן של Cloud Shell, מריצים את הפקודה הבאה:

    cd hello-custom-sample

יצירת נקודת קצה

כדי לקבל חיזויים אונליין ממודל ה-ML שאומן לפי ההוראות בדף הקודם של המדריך הזה, צריך ליצור נקודת קצה של Agent Platform. נקודות קצה משמשות להצגת תחזיות אונליין ממודל אחד או יותר.

  1. במסוף Google Cloud , בקטע Agent Platform, עוברים לדף Models.

    מעבר אל 'מודלים'

  2. מוצאים את השורה של המודל שאומן בשלב הקודם במדריך הזה, hello_custom, ולוחצים על שם המודל כדי לפתוח את דף הפרטים שלו.

  3. בכרטיסייה Deploy & test (פריסה ובדיקה), לוחצים על Deploy to endpoint (פריסה לנקודת קצה) כדי לפתוח את החלונית Deploy to endpoint (פריסה לנקודת קצה).

  4. בשלב Define your endpoint (הגדרת נקודת הקצה), מוסיפים מידע בסיסי על נקודת הקצה:

    1. בוחרים באפשרות יצירת נקודת קצה חדשה.

    2. בשדה Endpoint name מזינים hello_custom.

    3. בקטע הגדרות המודל, מוודאים שמופיע שם המודל, שנקרא גם hello_custom. מציינים את הגדרות המודל הבאות:

      1. בשדה Traffic split, מזינים 100. Agent Platform תומכת בפיצול תנועה לנקודת קצה לכמה מודלים, אבל במדריך הזה לא נעשה שימוש בתכונה הזו.

      2. בשדה Minimum number of compute nodes (מספר מינימלי של צמתי מחשוב), מזינים 1.

      3. ברשימה הנפתחת סוג מכונה, בוחרים באפשרות n1-standard-2 בקטע Standard.

      4. לוחצים על סיום.

    4. בקטע Logging, מוודאים ששני סוגי הרישום ביומן של התחזיות מופעלים.

    לוחצים על Continue.

  5. בשלב פרטי נקודת הקצה, מאשרים שנקודת הקצה תופעל ב-us-central1 (Iowa).

    לא מסמנים את תיבת הסימון Use a customer-managed encryption key (CMEK) (שימוש במפתח הצפנה בניהול הלקוח). במדריך הזה לא נעשה שימוש ב-CMEK.

  6. לוחצים על Deploy (פריסה) כדי ליצור את נקודת הקצה ולפרוס את המודל בנקודת הקצה.

אחרי כמה דקות, הסמל יופיע ליד נקודת הקצה החדשה בטבלה נקודות קצה. במקביל, תקבלו גם אימייל שמאשר שיצרתם את נקודת הקצה ופרסתם את המודל בנקודת הקצה.

פריסת פונקציית Cloud Run

אפשר לקבל תחזיות מנקודת הקצה של Agent Platform שיצרתם, על ידי שליחת בקשות לממשק REST של Agent Platform API. עם זאת, רק לגורמים עם הרשאת aiplatform.endpoints.predict יש אפשרות לשלוח בקשות לחיזוי אונליין. אי אפשר להגדיר את נקודת הקצה כציבורית כך שכל אחד יוכל לשלוח אליה בקשות, למשל דרך אפליקציית אינטרנט.

בקטע הזה נסביר איך לפרוס קוד ל-Cloud Run functions כדי לטפל בבקשות לא מאומתות. קוד לדוגמה שהורדתם כשקראתם את הדף הראשון של המדריך הזה מכיל קוד לפונקציית Cloud Run הזו בספרייה function/. אפשר להריץ את הפקודה הבאה כדי לבדוק את הקוד של פונקציית Cloud Run:

less function/main.py

פריסת הפונקציה מיועדת למטרות הבאות:

  • אפשר להגדיר פונקציית Cloud Run לקבלת בקשות לא מאומתות. בנוסף, הפונקציות מורצות באמצעות חשבון שירות עם התפקיד Editor (עריכה) כברירת מחדל, שכולל את ההרשאה aiplatform.endpoints.predict שנדרשת כדי לקבל תחזיות מנקודת הקצה של Agent Platform.

  • הפונקציה הזו מבצעת גם עיבוד מקדים שימושי של הבקשות. נקודת הקצה של Agent Platform מצפה לבקשות חיזוי בפורמט של השכבה הראשונה בתרשים TensorFlow Keras שאומן: טנסור של מספרים ממשיים מנורמלים עם ממדים קבועים. הפונקציה מקבלת כקלט את כתובת ה-URL של תמונה ומבצעת עיבוד מקדים של התמונה לפורמט הזה לפני שליחת בקשה לחיזוי מנקודת הקצה של Agent Platform.

כדי לפרוס את פונקציית Cloud Run:

  1. במסוף Google Cloud , בקטע Agent Platform, עוברים לדף Endpoints.

    לדף Endpoints

  2. מוצאים את השורה של נקודת הקצה שיצרתם בקטע הקודם, שנקראת hello_custom. בשורה הזו, לוחצים על בקשה לדוגמה כדי לפתוח את החלונית בקשה לדוגמה.

  3. בחלונית בקשה לדוגמה, מחפשים את השורה של קוד ה-Shell שתואמת לתבנית הבאה:

    ENDPOINT_ID="ENDPOINT_ID"

    ENDPOINT_ID הוא מספר שמזהה את נקודת הקצה הספציפית הזו.

    מעתיקים את שורת הקוד הזו ומריצים אותה בסשן של Cloud Shell כדי להגדיר את המשתנה ENDPOINT_ID.

  4. מריצים את הפקודה הבאה בסשן 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}
    

פריסת אפליקציית אינטרנט לשליחת בקשות לחיזוי

בסוף, מארחים אפליקציית אינטרנט סטטית ב-Cloud Storage כדי לקבל תחזיות ממודל ה-ML שאומן. אפליקציית האינטרנט שולחת בקשות לפונקציית Cloud Run, שמבצעת עיבוד מקדים שלהן ומקבלת תחזיות מנקודת הקצה של Agent Platform.

הספרייה webapp של קוד הדוגמה שהורדתם מכילה אפליקציית אינטרנט לדוגמה. בסשן של Cloud Shell, מריצים את הפקודות הבאות כדי להכין ולפרוס את אפליקציית האינטרנט:

  1. מגדירים כמה משתני מעטפת לשימוש בפקודות בשלבים הבאים:

    PROJECT_ID=PROJECT_ID
    BUCKET_NAME=BUCKET_NAME
    

    מחליפים את מה שכתוב בשדות הבאים:

  2. עורכים את האפליקציה כדי לספק לה את כתובת ה-URL של הטריגר של פונקציית Cloud Run:

    echo "export const CLOUD_FUNCTION_URL = 'https://us-central1-${PROJECT_ID}.cloudfunctions.net/classify_flower';" \
      > webapp/function-url.js
    
  3. מעלים את הספרייה webapp לקטגוריה שלכם ב-Cloud Storage:

    gcloud storage cp webapp gs://${BUCKET_NAME}/ --recursive
    
  4. הופכים את הקבצים של אפליקציית האינטרנט שהעליתם עכשיו לקריאים באופן ציבורי:

    gcloud storage objects update gs://${BUCKET_NAME}/webapp/** --add-acl-grant=entity=allUsers,role=READER
    
  5. עכשיו אפשר לעבור לכתובת ה-URL הבאה כדי לפתוח את אפליקציית האינטרנט ולקבל תחזיות:

    https://storage.googleapis.com/BUCKET_NAME/webapp/index.html
    

    פותחים את אפליקציית האינטרנט ולוחצים על תמונה של פרח כדי לראות את הסיווג של סוג הפרח על ידי מודל ה-ML. אפליקציית האינטרנט מציגה את התחזית כרשימה של סוגי פרחים, ואת הסבירות שהתמונה מכילה כל סוג של פרח.

בצילום המסך הבא, אפליקציית האינטרנט כבר קיבלה חיזוי אחד, ועכשיו היא בתהליך של שליחת בקשת חיזוי נוספת.

אפליקציית אינטרנט עם ארבע תמונות מתויגות של פרחים. מתחתיו מופיעות הסתברויות של התוויות שנחזו. בכרטיס אחר יש סרגל טעינה מתחתיו.

המאמרים הבאים

פועלים לפי ההוראות בדף האחרון של המדריך כדי למחוק את המשאבים שיצרתם.