שימוש ברישום ביומן של הסקת מסקנות אונליין

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

סוגים של יומני הסקה

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

  • רישום ביומן של קונטיינרים, שבו נרשמים ביומן הזרמים stdout ו-stderr מצמתי ההסקה אל Cloud Logging. היומנים האלה נדרשים לצורך ניפוי באגים.

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

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

  • רישום גישה, שרושם מידע כמו חותמת זמן וזמן אחזור לכל בקשה ב-Cloud Logging.

    רישום הגישה מושבת כברירת מחדל בנקודות הקצה של השירותים v1 ו-v1beta1. אפשר להפעיל רישום ביומן של הגישה כשפורסים מודל לנקודת קצה.

  • רישום ביומן של בקשות ותגובות, שרושם ביומן דגימה של בקשות ותגובות של הסקת מסקנות אונליין בטבלה ב-BigQuery.

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

אפשר להפעיל או להשבית כל סוג של יומן בנפרד.

הגדרות של יומן מסקנות

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

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

הסקת מסקנות אונליין בקצב גבוה של שאילתות לשנייה (QPS) יכולה ליצור מספר גדול של יומנים, שחלים עליהם תעריפי Cloud Logging. כדי לקבל אומדן של התמחור של יומני ההיסקים אונליין, אפשר לעיין במאמר אומדן החיובים בנושא רישום ביומן. כדי לצמצם את העלות הזו, אפשר להשבית את הרישום של מסקנות.

הפעלה והשבתה של יומני מסקנות

בדוגמאות הבאות אפשר לראות איפה צריך לשנות את הגדרות ברירת המחדל של היומן:

המסוף

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

משתמשים ב-API בארכיטקטורת REST כדי לעדכן את ההגדרות של יומני קונטיינרים.

משתמשים ב-REST API כדי להפעיל רישום ביומן של בקשות ותגובות.Google Cloud מסוף Google Cloud ו-CLI של gcloud לא תומכים בהגדרת רישום ביומן של בקשות ותגובות.

כדי לקבל מידע נוסף על פריסת מודלים, אפשר לקרוא את המאמר בנושא פריסת מודל באמצעות מסוף Google Cloud .

gcloud

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

נקודת קצה של שירות v1

מריצים את gcloud ai endpoints deploy-model:

gcloud ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --disable-container-logging \
  --enable-access-logging

נקודת קצה של שירות v1beta1

מריצים את gcloud beta ai endpoints deploy-model:

gcloud beta ai endpoints deploy-model ENDPOINT_ID\
  --region=LOCATION \
  --model=MODEL_ID \
  --display-name=DEPLOYED_MODEL_NAME \
  --machine-type=MACHINE_TYPE \
  --accelerator=count=2,type=nvidia-tesla-t4 \
  --enable-access-logging \
  --enable-container-logging

משתמשים ב-API בארכיטקטורת REST כדי לעדכן את ההגדרות של יומני קונטיינרים.

משתמשים ב-REST API כדי להפעיל רישום ביומן של בקשות ותגובות.Google Cloud מסוף Google Cloud ו-CLI של gcloud לא תומכים בהגדרת רישום ביומן של בקשות ותגובות.

כדי לקבל מידע נוסף על פריסת מודלים, אפשר לקרוא את המאמר פריסת מודל באמצעות Agent Platform API.

REST

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

נקודת קצה של שירות v1

כדי להשבית את הרישום ביומן של מאגר התגים, מגדירים את השדה disableContainerLogging לערך True כשקוראים לפונקציה projects.locations.endpoints.deployModel או projects.locations.endpoints.mutateDeployedModel.

כדי להפעיל רישום ביומן של הגישה, מגדירים את enableAccessLogging ל-True כשפורסים את המודל באמצעות projects.locations.endpoints.deployModel.

נקודת קצה של שירות v1beta1

כדי להפעיל רישום ביומן של מאגר התגים, מגדירים את השדה enableContainerLogging לערך True כשקוראים ל-projects.locations.endpoints.deployModel או ל-projects.locations.endpoints.mutateDeployedModel.

כדי להפעיל רישום ביומן של הגישה, מגדירים את enableAccessLogging ל-True כשפורסים את המודל באמצעות projects.locations.endpoints.deployModel.

כדי לקבל מידע נוסף על פריסת מודלים, אפשר לקרוא את המאמר פריסת מודל באמצעות Agent Platform API.

רישום ביומן של בקשות ותגובות

אפשר להפעיל רישום ביומן של בקשות ותגובות רק כשיוצרים נקודת קצה באמצעות projects.locations.endpoints.create או כשמבצעים תיקון של נקודת קצה קיימת באמצעות projects.locations.endpoints.patch.

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

כשיוצרים או מתקנים נקודת קצה, מאכלסים את השדה predictRequestResponseLoggingConfig של משאב נקודת הקצה בערכים הבאים:

  • ‫enabled: הערך מוגדר ל-True כדי להפעיל רישום ביומן של בקשות ותגובות.

  • ‫samplingPercentage: מספר בין 0 ל-1 שמגדיר את החלק היחסי של הבקשות שיירשמו ביומן. לדוגמה, מגדירים את הערך הזה ל-1 כדי לרשום ביומן את כל הבקשות, או ל-0.1 כדי לרשום ביומן 10% מהבקשות.

  • ‫BigQueryDestination: הטבלה ב-BigQuery שתשמש לרישום ביומן. אם מציינים רק שם של פרויקט, נוצר מערך נתונים חדש עם השם logging_ENDPOINT_DISPLAY_NAME_ENDPOINT_ID, כאשר ENDPOINT_DISPLAY_NAME הוא שם שתואם לכללי מתן השמות ב-BigQuery. אם לא מציינים שם טבלה, נוצרת טבלה חדשה בשם request_response_logging.

    הסכימה של טבלה ב-BigQuery צריכה להיראות כך:

    שם השדהסוגמצב
    endpointמחרוזתיכול להיות ריק
    deployed_model_idמחרוזתיכול להיות ריק
    logging_timeTIMESTAMPיכול להיות ריק
    request_idNUMERICיכול להיות ריק
    request_payloadמחרוזתמרובה ערכים
    response_payloadמחרוזתמרובה ערכים

דוגמה להגדרה:

{
   "predict_request_response_logging_config": {
     "enabled": true,
     "sampling_rate": 0.5,
     "bigquery_destination": {
       "output_uri": "bq://PROJECT_ID.DATASET_NAME.TABLE_NAME"
     }
   }
}

רישום ביומן של בקשות ושל תגובות של הסקת מסקנות לנקודות קצה ייעודיות ולנקודות קצה של Private Service Connect

בנקודות קצה ייעודיות ובנקודות קצה של Private Service Connect, אפשר להשתמש ברישום ביומן של בקשות ותשובות כדי לתעד את מטען הבקשה והתשובה בגודל של עד 10MB (מטען גדול יותר ידלג אוטומטית) עבור מודלים של TensorFlow,‏ PyTorch,‏ sklearn ו-XGBoost.

רישום ביומן של בקשות ותגובות זמין רק לשיטות predict ו-rawPredict.

כדי להפעיל רישום ביומן של בקשות ותגובות, מאכלסים את השדה predictRequestResponseLoggingConfig של משאב נקודת הקצה בערכים הבאים:

  • ‫enabled: הערך מוגדר ל-True כדי להפעיל רישום ביומן של בקשות ותגובות.

  • ‫samplingRate: השבר של הבקשות והתגובות שיירשמו ביומן. צריך להגדיר מספר שגדול מ-0 וקטן מ-1 או שווה ל-1. לדוגמה, מגדירים את הערך הזה ל-1 כדי לרשום ביומן את כל הבקשות, או ל-0.1 כדי לרשום ביומן 10% מהבקשות.

  • ‫BigQueryDestination: המיקום ב-BigQuery של תוכן הפלט, כ-URI לפרויקט או לטבלה.

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

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
     dedicatedEndpointEnabled: true, \
     predictRequestResponseLoggingConfig: { \
       enabled: true, \
       samplingRate: 1.0, \
       bigqueryDestination: { \
          outputUri:"bq://PROJECT_ID" \
       } \
     } \
   }'

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

  • ‫LOCATION_ID: האזור שבו משתמשים ב-Agent Platform.
  • ‫PROJECT_NUMBER: מספר הפרויקט ב- Google Cloud.
  • ‫ENDPOINT_NAME: השם המוצג של נקודת הקצה.
  • ‫PROJECT_ID: מזהה הפרויקט ב- Google Cloud .

הדוגמה הבאה היא של הגדרה ליצירת נקודת קצה (endpoint) מסוג Private Service Connect עם רישום ביומן של בקשות ותגובות:

curl -X POST \
-H "Content-Type: application/json" \
-H "Authorization: Bearer `gcloud auth print-access-token`" https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints \
-d '{displayName: "ENDPOINT_NAME", \
     privateServiceConnectConfig: { \
       enablePrivateServiceConnect: true, \
       projectAllowlist: ["ALLOWED_PROJECTS"] \
     }, \
     predictRequestResponseLoggingConfig: { \
       enabled: true, \
       samplingRate: 1.0, \
       bigqueryDestination: { \
          outputUri:"bq://PROJECT_ID" \
       } \
     } \
   }'

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

  • ‫ALLOWED_PROJECTS: רשימה מופרדת בפסיקים של מזהי פרויקטים, כל אחד מהם מוקף במירכאות. Google Cloudלדוגמה: ["PROJECTID1", "PROJECTID2"]. אם פרויקט לא מופיע ברשימה הזו, לא תוכלו לשלוח ממנו בקשות להסקת מסקנות לנקודת הקצה של Agent Platform. חשוב לכלול את VERTEX_AI_PROJECT_ID ברשימה הזו כדי שתוכלו להתקשר לנקודת הקצה מאותו פרויקט שבו היא נמצאת.

רישום ביומן של בקשות ותשובות ומעקב אחרי מודלים גרסה 1

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

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

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

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