שימוש בנקודות קצה של גישה לשירותים פרטיים להסקת מסקנות אונליין

שימוש בנקודות קצה של גישה לשירותים פרטיים כדי להציג מסקנות אונליין באמצעות Vertex AI מספק חיבור מאובטח עם זמן אחזור נמוך לשירות המסקנות אונליין של Vertex AI. במדריך הזה מוסבר איך להגדיר גישה לשירותים פרטיים ב-Vertex AI באמצעות קישור בין רשתות VPC שכנות כדי לקשר את הרשת שלכם לשירות ההיקש אונליין של Vertex AI.

סקירה כללית

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

במדריך הזה מוסבר איך לבצע את המשימות הבאות:

  • אימות הסטטוס של חיבורי ה-Peering הקיימים.
  • בודקים שממשקי ה-API הנדרשים מופעלים.
  • יצירת נקודת קצה פרטית.
  • פריסת מודל לנקודת קצה פרטית.
    • יש תמיכה רק במודל אחד לכל נקודת קצה פרטית. זה שונה מנקודת קצה ציבורית של Vertex AI, שבה אפשר לפצל את התנועה בין כמה מודלים שנפרסו בנקודת קצה אחת.
    • נקודת קצה פרטית תומכת במודלים של AutoML לנתונים טבלאיים ובמודלים שעברו אימון בהתאמה אישית.
  • שליחת היקש לנקודת קצה פרטית.
  • ניקוי משאבים

בדיקת הסטטוס של חיבורי קישור בין רשתות שכנות (peering) קיימים

אם יש לכם חיבורי Peering קיימים שבהם אתם משתמשים עם Vertex AI, אתם יכולים לרשום אותם כדי לבדוק את הסטטוס:

gcloud compute networks peerings list --network NETWORK_NAME

הסטטוס של חיבורי ה-Peering אמור להיות ACTIVE. מידע נוסף על חיבורי Peering פעילים

הפעלת ממשקי ה-API הנדרשים

gcloud services enable aiplatform.googleapis.com
gcloud services enable dns.googleapis.com

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

כדי ליצור נקודת קצה פרטית, מוסיפים את הדגל --network כשיוצרים נקודת קצה באמצעות Google Cloud CLI:

gcloud beta ai endpoints create \
  --display-name=ENDPOINT_DISPLAY_NAME \
  --network=FULLY_QUALIFIED_NETWORK_NAME \
  --region=REGION

מחליפים את NETWORK_NAME בשם הרשת המוגדר במלואו:

projects/PROJECT_NUMBER/global/networks/NETWORK_NAME

אם יוצרים את נקודת הקצה בלי לציין רשת, נוצרת נקודת קצה ציבורית.

מגבלות של נקודות קצה פרטיות

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

  • נקודות קצה פרטיות לא תומכות בפיצול תעבורה. כפתרון עקיף, אפשר ליצור פיצול תנועה באופן ידני על ידי פריסת המודל לכמה נקודות קצה פרטיות, ופיצול התנועה בין כתובות ה-URL של ההסקה שמתקבלות לכל נקודת קצה פרטית.
  • נקודות קצה פרטיות לא תומכות ב-SSL/TLS.
  • כדי להפעיל רישום ביומן של גישה לנקודת קצה פרטית, צריך לפנות לכתובת vertex-ai-feedback@google.com.
  • אפשר להשתמש רק ברשת אחת לכל נקודות הקצה הפרטיות בפרויקט Google Cloud. אם רוצים לעבור לרשת אחרת, צריך לפנות אל vertex-ai-feedback@google.com.
  • מומלץ מאוד לנסות שוב בצד הלקוח במקרה של שגיאות שניתנות לתיקון. השגיאות האלה יכולות לכלול את השגיאות הבאות:
    • תשובה ריקה (קוד שגיאת HTTP‏ 0), יכול להיות שהסיבה היא חיבור זמני לא תקין.
    • קודי שגיאה של HTTP‏ 5xx שמציינים שהשירות לא זמין באופן זמני.
  • במקרה של קוד שגיאת HTTP‏ 429 שמציין שהמערכת עמוסה מדי, מומלץ להאט את התנועה כדי לפתור את הבעיה במקום לנסות שוב.
  • אין תמיכה בבקשות הסקה משירותי חיזוי (כמו PredictionServiceClient ו-PredictionServiceClient).
  • נקודת הקצה של Private Service Access לא תומכת במודלים בסיסיים שעברו התאמה. כדי לפרוס מודל בסיס שעבר התאמה, צריך להשתמש בנקודת קצה מסוג Private Service Connect.

מעקב אחרי נקודות קצה פרטיות

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

כדי להתאים אישית את המעקב, שולחים שאילתות על המדדים הבאים ב-Cloud Monitoring:

  • aiplatform.googleapis.com/prediction/online/private/response_count

    מספר התשובות של ההסקה. אפשר לסנן את המדד הזה לפי deployed_model_id או קוד תגובת HTTP.

  • aiplatform.googleapis.com/prediction/online/private/prediction_latencies

    זמן האחזור של בקשת ההסקה באלפיות השנייה. אפשר לסנן את המדד הזה לפי deployed_model_id, רק לבקשות מוצלחות.

כאן אפשר לקרוא איך בוחרים את המדדים האלה, שולחים שאילתות לגביהם ומציגים אותם ב-Metrics Explorer.

פריסת מודל

אתם יכולים לייבא מודל חדש או לפרוס מודל קיים שכבר העלתם. כדי להעלות מודל חדש, משתמשים ב-gcloud ai models upload. מידע נוסף זמין במאמר בנושא ייבוא מודלים ל-Vertex AI.

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

  2. אחרי שפורסים את נקודת הקצה, אפשר לקבל את ה-URI של ההסקה ממטא-הנתונים של נקודת הקצה הפרטית.

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

      ENDPOINT_ID=$(gcloud ai endpoints list \
                --region=REGION \
                --filter=displayName:ENDPOINT_DISPLAY_NAME \
                --format="value(ENDPOINT_ID.scope())")
      

      אחרת, כדי לראות את מזהה נקודת הקצה ואת השם לתצוגה של כל נקודות הקצה, מריצים את הפקודה הבאה:

      gcloud ai endpoints list --region=REGION
      
    2. לבסוף, כדי לקבל את ה-URI של ההסקה, מריצים את הפקודה הבאה:

      gcloud beta ai endpoints describe ENDPOINT_ID \
        --region=REGION \
        --format="value(deployedModels.privateEndpoints.predictHttpUri)"
      

פורמט ה-URI של הסקה פרטית

מזהה ה-URI של ההיסק נראה שונה בנקודות קצה פרטיות בהשוואה לנקודות קצה ציבוריות של Vertex AI:

http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict

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

שליחת היקש לנקודת קצה פרטית

  1. יוצרים מכונה של Compute Engine ברשת ה-VPC. חשוב ליצור את המכונה באותה רשת VPC שנוצר עבורה שיתוף פעולה עם Vertex AI.

  2. מתחברים באמצעות SSH למכונת Compute Engine ומתקינים את לקוח ההסקה, אם רלוונטי. אחרת, אפשר להשתמש ב-curl.

  3. כשמבצעים חיזוי, משתמשים בכתובת ה-URL של ההסקה שמתקבלת מפריסת המודל. בדוגמה הזו, אתם שולחים את הבקשה מלקוח ההסקה במכונת Compute Engine באותה רשת VPC:

    curl -X POST -d@PATH_TO_JSON_FILE  http://ENDPOINT_ID.aiplatform.googleapis.com/v1/models/DEPLOYED_MODEL_ID:predict
    

    בדוגמה הזו של הבקשה, PATH_TO_JSON_FILE הוא הנתיב לבקשת ההסקה שלכם, שנשמרה כקובץ JSON. לדוגמה, example-request.json.

פינוי משאבים

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

דוגמה: בדיקת נקודות קצה פרטיות ב-VPC משותף

בדוגמה הזו נעשה שימוש בשני Google Cloud פרויקטים עם רשת VPC משותפת:

  • הפרויקט המארח מארח את רשת ה-VPC המשותפת.
  • פרויקט הלקוח מארח מכונה של Compute Engine שבה מריצים לקוח הסקה, כמו curl, או לקוח REST משלכם במכונה של Compute Engine, כדי לשלוח בקשות הסקה.

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

  1. יוצרים את חיבורי ה-peering לגישה לשירותים פרטיים בפרויקט המארח. מריצים את gcloud services vpc-peerings connect:

    gcloud services vpc-peerings connect \
      --service=servicenetworking.googleapis.com \
      --network=HOST_SHARED_VPC_NAME \
      --ranges=PREDICTION_RESERVED_RANGE_NAME \
      --project=HOST_PROJECT_ID
    
  2. יוצרים את נקודת הקצה בפרויקט הלקוח באמצעות שם הרשת של פרויקט המארח. מריצים את gcloud beta ai endpoints create:

    gcloud beta ai endpoints create \
      --display-name=ENDPOINT_DISPLAY_NAME \
      --network=HOST_SHARED_VPC_NAME \
      --region=REGION \
      --project=CLIENT_PROJECT_ID
    
  3. שליחת בקשות להסקת מסקנות באמצעות לקוח ההסקה בפרויקט הלקוח.