בדף הזה מוסבר איך ליצור תחזית באמצעות מודל התחזית שאומן.
כדי ליצור תחזית, שולחים בקשת הסקה באצווה ישירות למודל החיזוי. מציינים מקור קלט ומיקום פלט לאחסון תוצאות התחזית.
חיזוי באמצעות AutoML לא תואם לפריסת נקודות קצה או להסקות אונליין. כדי לבקש הסקות אונליין ממודל החיזוי, משתמשים ב-Tabular Workflow for Forecasting.
אתם יכולים לבקש הסקה עם הסברים (שנקראים גם שיוך (Attribution) של מאפיינים) כדי לראות איך המודל הגיע להסקה. ערכי החשיבות של המאפיינים המקומיים מציינים את מידת התרומה של כל מאפיין לתוצאת ההסקה. לסקירה כללית של המושגים, קראו את המאמר שיוך תכונות לחיזוי.
לפני שמתחילים
כדי ליצור תחזית, צריך לאמן מודל תחזית. מידע נוסף זמין במאמר אימון מודל חיזוי.
נתוני קלט
נתוני הקלט לבקשות להסקת נתונים באצווה הם הנתונים שהמודל משתמש בהם כדי ליצור תחזיות. אפשר לספק נתוני קלט באחד משני הפורמטים הבאים:
- אובייקטים של CSV ב-Cloud Storage
- טבלאות ב-BigQuery
מומלץ להשתמש באותו פורמט של נתוני הקלט ששימש לאימון המודל. לדוגמה, אם אימנתם את המודל באמצעות נתונים ב-BigQuery, מומלץ להשתמש בטבלה ב-BigQuery כקלט להסקת המסקנות באצווה. Gemini Enterprise Agent Platform מתייחס לכל השדות להזנת קלט ב-CSV כמחרוזות, ולכן שילוב של פורמטים של נתוני אימון ונתוני קלט עלול לגרום לשגיאות.
מקור הנתונים חייב להכיל נתונים בטבלה שכוללים את כל העמודות ששימשו לאימון המודל, בכל סדר שהוא. אפשר לכלול עמודות שלא היו בנתוני האימון, או שהיו בנתוני האימון אבל לא נכללו באימון. העמודות הנוספות האלה נכללות בפלט אבל לא משפיעות על תוצאות התחזית.
הדרישות לגבי נתוני הקלט
הקלט של מודלים לחיזוי חייב לעמוד בדרישות הבאות:
- כל הערכים בעמודת הזמן חייבים להיות קיימים ותקינים.
- כל העמודות שמשמשות בבקשת ההסקה צריכות להיות בנתוני הקלט. אם העמודות ריקות או לא קיימות, פלטפורמת Agent ממלאת את הנתונים באופן אוטומטי.
- תדירות הנתונים של נתוני הקלט ושל נתוני האימון צריכה להיות זהה. אם חסרות שורות בסדרת הזמן, צריך להוסיף אותן באופן ידני בהתאם לידע המתאים בתחום.
- סדרות זמן עם חותמות זמן כפולות מוסרות מההסקה. כדי לכלול אותם, צריך להסיר את חותמות הזמן הכפולות.
- לספק נתונים היסטוריים לכל סדרת זמנים שרוצים לחזות. כדי לקבל את התחזיות הכי מדויקות, כמות הנתונים צריכה להיות שווה לחלון ההקשר שמוגדר במהלך אימון המודל. לדוגמה, אם חלון ההקשר הוא 14 ימים, צריך לספק נתונים היסטוריים של 14 ימים לפחות. אם תספקו פחות נתונים, Agent Platform תמלא את הנתונים בערכים ריקים.
- התחזית מתחילה בשורה הראשונה של סדרת הזמנים (לפי סדר הזמנים) עם ערך null בעמודת היעד. ערך ה-null חייב להיות רציף בסדרת הזמן. לדוגמה, אם עמודת היעד מסודרת לפי זמן, לא יכול להיות מצב שבו הערכים
1,2,null,3,4,null,nullמופיעים בסדרת זמן אחת. בקובצי CSV, Gemini Enterprise Agent Platform מתייחס למחרוזת ריקה כערך null, וב-BigQuery יש תמיכה מובנית בערכי null.
טבלה ב-BigQuery
אם בוחרים טבלה ב-BigQuery כקלט, צריך לוודא את הדברים הבאים:
- הגודל של טבלאות מקור נתונים ב-BigQuery לא יכול להיות יותר מ-100GB.
- אם הטבלה נמצאת בפרויקט אחר, צריך להקצות את התפקיד
BigQuery Data Editorלחשבון השירות של Agent Platform באותו פרויקט.
קובץ CSV
אם אתם בוחרים אובייקט CSV ב-Cloud Storage כקלט, אתם צריכים לוודא ש:
- מקור הנתונים חייב להתחיל בשורת כותרת עם שמות העמודות.
- הגודל של כל אובייקט במקור הנתונים לא יכול להיות יותר מ-10GB. אפשר לכלול כמה קבצים, עד לגודל מקסימלי של 100GB.
- אם הקטגוריה של Cloud Storage נמצאת בפרויקט אחר, צריך להקצות את התפקיד
Storage Object Creatorלחשבון השירות של Agent Platform באותו פרויקט. - כל המחרוזות חייבות להיות מוקפות במירכאות כפולות (").
פורמט הפלט
פורמט הפלט של בקשת ההסקה באצווה לא חייב להיות זהה לפורמט הקלט. לדוגמה, אם אתם משתמשים בטבלה ב-BigQuery כקלט, אתם יכולים להפיק את תוצאות החיזוי לאובייקט CSV ב-Cloud Storage.
שליחת בקשה להסקת מסקנות באצווה למודל
כדי לשלוח בקשות להסקת מסקנות באצווה, אתם יכולים להשתמש במסוף Cloud de Confiance או ב-Agent Platform API. מקור נתוני הקלט יכול להיות אובייקטים של CSV שמאוחסנים בקטגוריה של Cloud Storage או בטבלאות של BigQuery. בהתאם לכמות הנתונים שאתם שולחים כקלט, יכול להיות שיעבור זמן מה עד שהמשימה של הסקת המסקנות באצווה תסתיים.
מסוף Cloud de Confiance
משתמשים במסוף Cloud de Confiance כדי לשלוח בקשה להסקה באצווה.
- בקטע Agent Platform במסוף Cloud de Confiance , נכנסים לדף Batch inferences.
- לוחצים על Create כדי לפתוח את החלון New batch inference.
- בקטע Define your batch inference, מבצעים את הפעולות הבאות:
- מזינים שם להסקת הנתונים באצווה.
- בשדה Model name, בוחרים את שם המודל שבו רוצים להשתמש להסקת המסקנות באצווה.
- בקטע Version, בוחרים את גרסת המודל.
- בקטע Select source, בוחרים אם נתוני הקלט של המקור הם קובץ CSV ב-Cloud Storage או טבלה ב-BigQuery.
- בקובצי CSV, מציינים את המיקום ב-Cloud Storage שבו נמצא קובץ הקלט בפורמט CSV.
- בטבלאות BigQuery, צריך לציין את מזהה הפרויקט שבו נמצאת הטבלה, את מזהה מערך הנתונים ב-BigQuery ואת מזהה הטבלה או התצוגה ב-BigQuery.
- בקטע Batch inference output, בוחרים באפשרות CSV או BigQuery.
- אם בחרתם ב-CSV, ציינו את הקטגוריה של Cloud Storage שבה Gemini Enterprise Agent Platform שומרת את הפלט.
- ב-BigQuery, אפשר לציין מזהה פרויקט או מערך נתונים קיים:
- כדי לציין את מזהה הפרויקט, מזינים את מזהה הפרויקט בשדה Google Cloud project ID. Gemini Enterprise Agent Platform יוצרת בשבילכם קבוצת נתוני פלט חדשה.
- כדי לציין קבוצת נתונים קיימת, מזינים את הנתיב שלה ב-BigQuery בשדה מזהה פרויקט בענן של Google, למשל
bq://projectid.datasetid.
- אופציונלי. אם יעד הפלט הוא BigQuery או JSONL ב-Cloud Storage, אפשר להפעיל שיוך של מאפיינים בנוסף להסקות. כדי לעשות את זה, בוחרים באפשרות Enable feature attributions for this model. אי אפשר להשתמש בשיוך תכונות בקובצי CSV ב-Cloud Storage. מידע נוסף
- אופציונלי: ניתוח מעקב אחרי מודלים להסקות באצווה זמין בגרסת טרום-השקה (Preview). הדרישות המוקדמות להוספת הגדרת זיהוי ההטיה למשימת ההסקה באצווה.
- לוחצים על המתג Enable model monitoring for this batch inference.
- בוחרים מקור נתונים לאימון. מזינים את נתיב הנתונים או המיקום של מקור נתוני האימון שבחרתם.
- אופציונלי: בקטע Alert thresholds, מציינים את ערכי הסף להפעלת התראות.
- בשדה Notification emails, מזינים כתובת אימייל אחת או יותר, מופרדות בפסיקים, כדי לקבל התראות באימייל כשמודל חורג מסף ההתראה.
- אופציונלי: בשדה Notification channels, מוסיפים ערוצים של Cloud Monitoring כדי לקבל התראות כשהמודל חורג מסף ההתראה. אפשר לבחור ערוצים קיימים של Cloud Monitoring או ליצור ערוץ חדש בלחיצה על Manage notification channels. המסוף תומך בערוצי ההתראות PagerDuty, Slack ו-Pub/Sub.
- לוחצים על יצירה.
API : BigQuery
REST
משתמשים ב-method batchPredictionJobs.create כדי לבקש הסקת מסקנות באצווה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שבו המודל מאוחסן ושבו מופעלת משימת ההסקה באצווה. לדוגמה,
us-central1. - PROJECT_ID: מזהה הפרויקט.
- BATCH_JOB_NAME: השם המוצג של המשימה באצווה
- MODEL_ID: המזהה של המודל שבו משתמשים כדי להסיק מסקנות
-
INPUT_URI: הפניה למקור הנתונים ב-BigQuery. בטופס:
bq://bqprojectId.bqDatasetId.bqTableId
-
OUTPUT_URI: הפניה ליעד ב-BigQuery (המקום שבו נכתבות ההסקות). מציינים את מזהה הפרויקט ואופציונלית, מזהה של מערך נתונים קיים. צריך להשתמש בטופס הבא:
אם תציינו רק את מזהה הפרויקט, Agent Platform תיצור בשבילכם מערך נתונים חדש לפלט. צריך להשתמש בטופס הבא:bq://bqprojectId.bqDatasetId
bq://bqprojectId
- GENERATE_EXPLANATION: ערך ברירת המחדל הוא false. צריך להגדיר את הערך true כדי להפעיל את שיוך התכונות. מידע נוסף זמין במאמר שיוך תכונות לחיזוי.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
גוף בקשת JSON:
{
"displayName": "BATCH_JOB_NAME",
"model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID",
"inputConfig": {
"instancesFormat": "bigquery",
"bigquerySource": {
"inputUri": "INPUT_URI"
}
},
"outputConfig": {
"predictionsFormat": "bigquery",
"bigqueryDestination": {
"outputUri": "OUTPUT_URI"
}
},
"generate_explanation": GENERATE_EXPLANATION
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs/67890",
"displayName": "batch_job_1 202005291958",
"model": "projects/12345/locations/us-central1/models/5678",
"state": "JOB_STATE_PENDING",
"inputConfig": {
"instancesFormat": "bigquery",
"bigquerySource": {
"inputUri": "INPUT_URI"
}
},
"outputConfig": {
"predictionsFormat": "bigquery",
"bigqueryDestination": {
"outputUri": bq://12345
}
},
"dedicatedResources": {
"machineSpec": {
"machineType": "n1-standard-32",
"acceleratorCount": "0"
},
"startingReplicaCount": 2,
"maxReplicaCount": 6
},
"manualBatchTuningParameters": {
"batchSize": 4
},
"outputInfo": {
"bigqueryOutputDataset": "bq://12345.reg_model_2020_10_02_06_04
}
"state": "JOB_STATE_PENDING",
"createTime": "2020-09-30T02:58:44.341643Z",
"updateTime": "2020-09-30T02:58:44.341643Z",
}
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי הוראות ההגדרה של Java במדריך למתחילים של Agent Platform באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. למידע נוסף, ראו הגדרת אימות לסביבת פיתוח מקומית.
לפני שמריצים דוגמאות קוד, צריך להגדיר את משתנה הסביבה GOOGLE_CLOUD_UNIVERSE_DOMAIN לערך s3nsapis.fr.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של ה-API מבוסס-Python.
API : Cloud Storage
REST
משתמשים ב-method batchPredictionJobs.create כדי לבקש הסקת מסקנות באצווה.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שבו המודל מאוחסן ושבו מופעלת משימת ההסקה באצווה. לדוגמה,
us-central1. - PROJECT_ID:
- BATCH_JOB_NAME: השם המוצג של המשימה באצווה
- MODEL_ID: המזהה של המודל שבו משתמשים כדי להסיק מסקנות
-
URI: נתיבים (URI) לקטגוריות של Cloud Storage שמכילות את נתוני האימון.
יכול להיות יותר מאירוע אחד. לכל URI יש את הפורמט הבא:
gs://bucketName/pathToFileName
-
OUTPUT_URI_PREFIX: הנתיב ליעד ב-Cloud Storage שבו ייכתבו ההסקות. Agent Platform כותבת הסקות באצווה לספריית משנה עם חותמת זמן בנתיב הזה. מגדירים את הערך הזה למחרוזת בפורמט הבא:
gs://bucketName/pathToOutputDirectory
- GENERATE_EXPLANATION: ערך ברירת המחדל הוא false. צריך להגדיר את הערך true כדי להפעיל את שיוך התכונות. האפשרות הזו זמינה רק אם יעד הפלט הוא JSONL. שיוך תכונות לא נתמך בקובצי CSV ב-Cloud Storage. מידע נוסף זמין במאמר שיוך תכונות לחיזוי.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs
גוף בקשת JSON:
{
"displayName": "BATCH_JOB_NAME",
"model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID",
"inputConfig": {
"instancesFormat": "csv",
"gcsSource": {
"uris": [
URI1,...
]
},
},
"outputConfig": {
"predictionsFormat": "csv",
"gcsDestination": {
"outputUriPrefix": "OUTPUT_URI_PREFIX"
}
},
"generate_explanation": GENERATE_EXPLANATION
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs"
PowerShell
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION_ID/batchPredictionJobs/67890",
"displayName": "batch_job_1 202005291958",
"model": "projects/12345/locations/us-central1/models/5678",
"state": "JOB_STATE_PENDING",
"inputConfig": {
"instancesFormat": "csv",
"gcsSource": {
"uris": [
"gs://bp_bucket/reg_mode_test"
]
}
},
"outputConfig": {
"predictionsFormat": "csv",
"gcsDestination": {
"outputUriPrefix": "OUTPUT_URI_PREFIX"
}
},
"dedicatedResources": {
"machineSpec": {
"machineType": "n1-standard-32",
"acceleratorCount": "0"
},
"startingReplicaCount": 2,
"maxReplicaCount": 6
}
"outputInfo": {
"gcsOutputDataset": "OUTPUT_URI_PREFIX/prediction-batch_job_1 202005291958-2020-09-30T02:58:44.341643Z"
}
"state": "JOB_STATE_PENDING",
"createTime": "2020-09-30T02:58:44.341643Z",
"updateTime": "2020-09-30T02:58:44.341643Z",
}
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של ה-API מבוסס-Python.
אחזור תוצאות של הסקת מסקנות באצווה
פלטפורמת הסוכנים של Gemini Enterprise שולחת את הפלט של הסקות באצווה ליעד שציינתם. היעד יכול להיות BigQuery או Cloud Storage.
אין תמיכה בפלט של Cloud Storage לשיוך תכונות.
BigQuery
קבוצת נתוני הפלט
אם אתם משתמשים ב-BigQuery, הפלט של הסקת אצווה נשמר במערך נתונים של פלט. אם סיפקתם קבוצת נתונים ל-Gemini Enterprise Agent Platform, השם של קבוצת הנתונים (BQ_DATASET_NAME) הוא השם שסיפקתם קודם. אם לא סיפקתם קבוצת נתונים לפלט, Gemini Enterprise Agent Platform יצרה אחת בשבילכם. כדי למצוא את השם שלו (BQ_DATASET_NAME):
- במסוף Cloud de Confiance , נכנסים לדף Batch inferences ב-Gemini Enterprise Agent Platform.
- בוחרים את ההסקה שיצרתם.
-
מערך הנתונים של הפלט מופיע במיקום הייצוא. שם מערך הנתונים מופיע בפורמט הבא:
prediction_MODEL_NAME_TIMESTAMP
טבלאות פלט
קבוצת הנתונים של הפלט מכילה אחת או יותר משלוש טבלאות הפלט הבאות:
-
טבלת הסקה
הטבלה הזו מכילה שורה לכל שורה בנתוני הקלט שבהם התבקשה הסקה (כלומר, שבהם TARGET_COLUMN_NAME = null). לדוגמה, אם הקלט כלל 14 ערכי null בעמודת היעד (כמו מכירות ב-14 הימים הבאים), בקשת ההסקה תחזיר 14 שורות, מספר המכירות לכל יום. אם בקשת ההסקה חורגת מטווח התחזית של המודל, Gemini Enterprise Agent Platform מחזירה רק הסקות עד לטווח התחזית.
-
טבלת אימות שגיאות
הטבלה הזו מכילה שורה לכל שגיאה לא קריטית שמתרחשת בשלב הצבירה, שמתבצע לפני הסקת המסקנות באצווה. כל שגיאה לא קריטית תואמת לשורה בנתוני הקלט ש-Agent Platform לא הצליחה להחזיר תחזית לגביה.
-
טבלת השגיאות
הטבלה הזו מכילה שורה לכל שגיאה לא קריטית שזוהתה במהלך הסקת מסקנות באצווה. כל שגיאה לא קריטית תואמת לשורה בנתוני הקלט ש-Agent Platform לא הצליחה להחזיר תחזית לגביה.
טבלת החיזויים
שם הטבלה (BQ_PREDICTIONS_TABLE_NAME) נוצר על ידי הוספת `predictions_` לחותמת הזמן של תחילת משימת ההסקה באצווה: predictions_TIMESTAMP
כדי לאחזר את טבלת ההסקות:
-
במסוף, נכנסים לדף BigQuery.
כניסה ל-BigQuery -
מריצים את השאילתה הבאה:
SELECT * FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
פלטפורמת הסוכנים של Gemini Enterprise שומרת את ההסקות בעמודה predicted_TARGET_COLUMN_NAME.value.
אם אימנתם מודל באמצעות Temporal Fusion Transformer (TFT), תוכלו למצוא את פלט הפרשנות של TFT בעמודה predicted_TARGET_COLUMN_NAME.tft_feature_importance.
העמודה הזו מחולקת לעמודות המשנה הבאות:
-
context_columns: מאפייני חיזוי שערכי חלון ההקשר שלהם משמשים כקלט למקודד הזיכרון לטווח קצר לזמן ארוך (LSTM) של TFT. -
context_weights: משקלי החשיבות של המאפיינים שמשויכים לכל אחד מהערכים שלcontext_columnsבמופע החזוי. -
horizon_columns: מאפייני חיזוי שערכי אופק החיזוי שלהם משמשים כקלט למפענח הזיכרון לטווח קצר לזמן ארוך (LSTM) של TFT. -
horizon_weights: משקלי החשיבות של המאפיינים שמשויכים לכל אחד מהערכים שלhorizon_columnsבמופע החזוי. -
attribute_columns: מאפייני חיזוי שהם בלתי תלויים בזמן. -
attribute_weights: המשקלים שמשויכים לכל אחד מהערכים שלattribute_columns.
אם המודל
עבר אופטימיזציה להפסד קוונטיל וקבוצת הקוונטילים כוללת את החציון, הערך של predicted_TARGET_COLUMN_NAME.value הוא ערך ההסקה בחציון. אחרת, predicted_TARGET_COLUMN_NAME.value הוא ערך ההסקה באחוזון הנמוך ביותר בקבוצה. לדוגמה, אם קבוצת האחוזונים היא [0.1, 0.5, 0.9], אז value היא ההסקה לאחוזון 0.5.
אם קבוצת האחוזונים היא [0.1, 0.9], אז value היא ההסקה לגבי האחוזון 0.1.
בנוסף, פלטפורמת הסוכנים של Gemini Enterprise שומרת ערכי קוונטיל והסקת מסקנות בעמודות הבאות:
-
predicted_TARGET_COLUMN_NAME.quantile_values: הערכים של האחוזונים, שמוגדרים במהלך אימון המודל. לדוגמה,0.1,0.5ו-0.9. -
predicted_TARGET_COLUMN_NAME.quantile_predictions: ערכי ההסקה שמשויכים לערכי האחוזונים.
אם המודל משתמש בהסקה הסתברותית,
predicted_TARGET_COLUMN_NAME.value מכיל את הממזער של
יעד האופטימיזציה. לדוגמה, אם יעד האופטימיזציה הוא minimize-rmse,
הערך של predicted_TARGET_COLUMN_NAME.value הוא הערך הממוצע. אם הוא minimize-mae, השדה predicted_TARGET_COLUMN_NAME.value מכיל את הערך החציוני.
אם המודל משתמש בהסקה הסתברותית עם קוונטילים, Gemini Enterprise Agent Platform שומרת את ערכי הקוונטילים וההסקות בעמודות הבאות:
-
predicted_TARGET_COLUMN_NAME.quantile_values: הערכים של האחוזונים, שמוגדרים במהלך אימון המודל. לדוגמה,0.1,0.5ו-0.9. -
predicted_TARGET_COLUMN_NAME.quantile_predictions: ערכי ההסקה שמשויכים לערכי הקוונטיל.
אם הפעלתם שיוך תכונות, תוכלו למצוא אותן גם בטבלת ההסקה. כדי לגשת לשיוכים של תכונה BQ_FEATURE_NAME, מריצים את השאילתה הבאה:
SELECT explanation.attributions[OFFSET(0)].featureAttributions.BQ_FEATURE_NAME FROM BQ_DATASET_NAME.BQ_PREDICTIONS_TABLE_NAME
מידע נוסף זמין במאמר שיוך תכונות לחיזוי.
טבלת אימות שגיאות
שם הטבלה (BQ_ERRORS_VALIDATION_TABLE_NAME) נוצר על ידי הוספת חותמת הזמן של תחילת משימת ההסקה באצווה ל-errors_validation: errors_validation_TIMESTAMP
-
במסוף, נכנסים לדף BigQuery.
כניסה ל-BigQuery -
מריצים את השאילתה הבאה:
SELECT * FROM BQ_DATASET_NAME.BQ_ERRORS_VALIDATION_TABLE_NAME
- errors_TARGET_COLUMN_NAME
טבלת השגיאות
שם הטבלה (BQ_ERRORS_TABLE_NAME) נוצר על ידי הוספת `errors_` לחותמת הזמן של תחילת משימת ההסקה באצווה: errors_TIMESTAMP
-
במסוף, נכנסים לדף BigQuery.
כניסה ל-BigQuery -
מריצים את השאילתה הבאה:
SELECT * FROM BQ_DATASET_NAME.BQ_ERRORS_TABLE_NAME
- errors_TARGET_COLUMN_NAME.code
- errors_TARGET_COLUMN_NAME.message
Cloud Storage
אם ציינתם את Cloud Storage כיעד הפלט, התוצאות של בקשת ההסקה באצווה יוחזרו כאובייקטים של CSV בתיקייה חדשה בקטגוריה שציינתם. שם התיקייה הוא שם המודל, עם הקידומת "prediction-" והסיומת של חותמת הזמן שבה התחילה משימת ההסקה באצווה. שם התיקייה ב-Cloud Storage מופיע בכרטיסייה Batch predictions של המודל.
תיקיית Cloud Storage מכילה שני סוגים של אובייקטים:-
אובייקטים של הסקה
אובייקטי ההסקה נקראים predictions_1.csv, predictions_2.csv וכן הלאה. הם מכילים שורת כותרת עם שמות העמודות, ושורה לכל תחזית שהוחזרה. מספר ערכי ההסקה תלוי בקלט ההסקה ובאופק החיזוי. לדוגמה, אם הקלט כלל 14 רשומות ריקות בעמודת היעד (כמו מכירות ב-14 הימים הבאים), בקשת ההסקה תחזיר 14 שורות, מספר המכירות לכל יום. אם בקשת ההסקה חורגת מאופק החיזוי של המודל, Gemini Enterprise Agent Platform מחזירה רק הסקות עד לאופק החיזוי.
ערכי התחזית מוחזרים בעמודה בשם `predicted_TARGET_COLUMN_NAME`. בתחזיות של קוונטילים, עמודת הפלט מכילה את ההסקה של הקוונטילים ואת ערכי הקוונטילים בפורמט JSON.
-
אובייקטים של שגיאות
אובייקטי השגיאות נקראים errors_1.csv, errors_2.csv וכן הלאה. הם מכילים שורת כותרת, ושורה לכל שורה בנתוני הקלט ש-Agent Platform לא הצליחה להחזיר תחזית עבורה (לדוגמה, אם תכונה שלא יכולה להיות null הייתה null).
הערה: אם התוצאות גדולות, הן מפוצלות לכמה אובייקטים.
שאילתות לדוגמה לשיוך תכונות ב-BigQuery
דוגמה 1: קביעת שיוכים להסקה אחת
חשבו על השאלה הבאה:
בכמה עלו המכירות החזויות של מוצר מסוים בחנות מסוימת ב-24 בנובמבר בעקבות פרסום המוצר?
השאילתה המתאימה היא:
SELECT
* EXCEPT(explanation, predicted_sales),
ROUND(predicted_sales.value, 2) AS predicted_sales,
ROUND(
explanation.attributions[OFFSET(0)].featureAttributions.advertisement,
2
) AS attribution_advertisement
FROM
`project.dataset.predictions`
WHERE
product = 'product_0'
AND store = 'store_0'
AND date = '2019-11-24'
דוגמה 2: קביעת החשיבות של תכונה גלובלית
חשבו על השאלה הבאה:
מה הייתה התרומה של כל תכונה למכירות החזויות הכוללות?
אתם יכולים לחשב באופן ידני את חשיבות המאפיינים הגלובלית על ידי צבירת השיוכים של חשיבות המאפיינים המקומית. השאילתה המתאימה היא:
WITH
/*
* Aggregate from (id, date) level attributions to global feature importance.
*/
attributions_aggregated AS (
SELECT
SUM(ABS(attributions.featureAttributions.date)) AS date,
SUM(ABS(attributions.featureAttributions.advertisement)) AS advertisement,
SUM(ABS(attributions.featureAttributions.holiday)) AS holiday,
SUM(ABS(attributions.featureAttributions.sales)) AS sales,
SUM(ABS(attributions.featureAttributions.store)) AS store,
SUM(ABS(attributions.featureAttributions.product)) AS product,
FROM
project.dataset.predictions,
UNNEST(explanation.attributions) AS attributions
),
/*
* Calculate the normalization constant for global feature importance.
*/
attributions_aggregated_with_total AS (
SELECT
*,
date + advertisement + holiday + sales + store + product AS total
FROM
attributions_aggregated
)
/*
* Calculate the normalized global feature importance.
*/
SELECT
ROUND(date / total, 2) AS date,
ROUND(advertisement / total, 2) AS advertisement,
ROUND(holiday / total, 2) AS holiday,
ROUND(sales / total, 2) AS sales,
ROUND(store / total, 2) AS store,
ROUND(product / total, 2) AS product,
FROM
attributions_aggregated_with_total
דוגמה לפלט של הסקת אצווה ב-BigQuery
לדוגמה, בקבוצת נתונים של מכירות משקאות חריפים, יש ארבע חנויות בעיר "Ida Grove": "Ida Grove Food Pride", "Discount Liquors of Ida Grove", "Casey's General Store #3757" ו-"Brew Ida Grove". store_name הוא series identifier, ובשלוש מתוך ארבע החנויות נשלחות בקשות להסקת מסקנות לגבי עמודת היעד sale_dollars. נוצרת שגיאת אימות כי לא התבקשה תחזית לגבי "Discount Liquors of Ida Grove".
הקטע הבא נלקח מקבוצת הנתונים של הקלט שמשמשת להסקת מסקנות:
הקטע הבא הוא חלק מתוצאות ההסקה:
הנה קטע משגיאות האימות:
פלט לדוגמה של הסקת אצווה למודל שעבר אופטימיזציה של הפסד קוונטיל
הדוגמה הבאה היא פלט של הסקת אצווה למודל שעבר אופטימיזציה של quantile-loss. בתרחיש הזה, מודל החיזוי חזה את המכירות ל-14 הימים הבאים בכל חנות.
ערכי האחוזונים מופיעים בעמודה predicted_Sales.quantile_values. בדוגמה הזו, המודל חזה ערכים באחוזונים 0.1, 0.5 ו-0.9.
ערכי ההסקה מופיעים בעמודה predicted_Sales.quantile_predictions.
זהו מערך של ערכי מכירות, שממופים לערכי האחוזונים בעמודה predicted_Sales.quantile_values. בשורה הראשונה, אנחנו רואים שההסתברות שערך המכירות יהיה נמוך מ-4484.04 היא 10%. הסבירות שערך המכירות יהיה נמוך מ-5615.64 היא 50%. ההסתברות שערך המכירות יהיה נמוך מ-6853.29 היא 90%. ההסקה לגבי השורה הראשונה, שמיוצגת כערך יחיד, היא 5615.64.