הסקת מסקנות אונליין היא בקשה סינכרונית, בניגוד להסקת מסקנות באצווה, שהיא בקשה אסינכרונית. משתמשים בהסקת מסקנות אונליין כשמבצעים בקשות בתגובה לקלט של אפליקציה או במצבים אחרים שבהם נדרשת הסקת מסקנות בזמן אמת.
כדי להשתמש במודל להצגת מסקנות אונליין, צריך לפרוס אותו לנקודת קצה. פריסת מודל משייכת משאבים פיזיים למודל, כדי שיוכל להכניס לשימוש בסביבת הייצור מסקנות אונליין עם זמן אחזור נמוך.
הנושאים שמוסברים במאמר:
- פריסת מודל בנקודת קצה
- קבלת הסקת מסקנות אונליין באמצעות המודל שפרסתם
לפני שמתחילים
כדי לקבל מסקנות אונליין, צריך קודם לאמן מודל.
פריסת מודל בנקודת קצה
אפשר לפרוס יותר ממודל אחד לנקודת קצה, ואפשר לפרוס מודל ליותר מנקודת קצה אחת. מידע נוסף על אפשרויות ועל תרחישי שימוש להטמעת מודלים
כדי לפרוס מודל, משתמשים באחת מהשיטות הבאות:
מסוף Google Cloud
במסוף Google Cloud , בקטע Vertex AI, נכנסים לדף Models.
לוחצים על שם המודל שרוצים לפרוס כדי לפתוח את דף הפרטים שלו.
בוחרים בכרטיסייה Deploy & Test (פריסה ובדיקה).
אם המודל כבר נפרס בנקודות קצה כלשהן, הן מפורטות בקטע Deploy your model.
לוחצים על Deploy to endpoint.
בדף Define your endpoint, מגדירים את האפשרויות הבאות:
אתם יכולים לבחור לפרוס את המודל לנקודת קצה חדשה או לנקודת קצה קיימת.
- כדי לפרוס את המודל לנקודת קצה חדשה, בוחרים באפשרות יצירת נקודת קצה חדשה ומזינים שם לנקודת הקצה החדשה.
- כדי לפרוס את המודל לנקודת קצה קיימת, בוחרים באפשרות הוספה לנקודת קצה קיימת ובוחרים את נקודת הקצה מהרשימה הנפתחת.
- אפשר להוסיף יותר ממודל אחד לנקודת קצה, ואפשר להוסיף מודל ליותר מנקודת קצה אחת. מידע נוסף
לוחצים על Continue.
בדף Model settings, קובעים את ההגדרות הבאות:
-
אם אתם פורסים את המודל לנקודת קצה חדשה, צריך להזין 100 בחלוקת התנועה. אם אתם פורסים את המודל לנקודת קצה קיימת שכבר פרוסים בה מודל אחד או יותר, אתם צריכים לעדכן את אחוז חלוקת התנועה של המודל שאתם פורסים ושל המודלים שכבר פרוסים, כך שסכום האחוזים יהיה 100%.
-
מזינים את המספר המינימלי של צמתי מחשוב שרוצים לספק למודל.
זה מספר הצמתים שהמודל הזה יכול להשתמש בהם בכל רגע. תחויבו על הצמתים שבהם נעשה שימוש, בין אם כדי לטפל בעומס של הסקת מסקנות או עבור צמתים במצב המתנה (מינימום), גם אם אין תנועה של הסקת מסקנות. לעיון בתמחור
-
בוחרים את סוג המכונה.
הגדלת משאבי המכונה תשפר את ביצועי ההסקה ותגדיל את העלויות.
-
לוחצים על המשך.
-
בדף Model monitoring (מעקב אחרי המודל), לוחצים על Continue (המשך).
בדף Monitoring objectives, מגדירים את ההגדרות הבאות:
- מזינים את המיקום של נתוני האימון.
- מזינים את השם של עמודת היעד.
לוחצים על Deploy (פריסה) כדי לפרוס את המודל בנקודת הקצה.
API
כשפורסים מודל באמצעות Vertex AI API, מבצעים את השלבים הבאים:
- אם צריך, יוצרים נקודת קצה.
- מוצאים את מזהה נקודת הקצה.
- פורסים את המודל בנקודת הקצה.
יצירת נקודת קצה
אם אתם פורסים מודל לנקודת קצה קיימת, אתם יכולים לדלג על השלב הזה.
gcloud
בדוגמה הבאה משתמשים בפקודה gcloud ai endpoints create:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
מחליפים את מה שכתוב בשדות הבאים:
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI.
ENDPOINT_NAME: השם המוצג של נקודת הקצה.
יכול להיות שיחלפו כמה שניות עד שכלי Google Cloud CLI ייצור את נקודת הקצה.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שלכם.
- PROJECT_ID: מזהה הפרויקט.
- ENDPOINT_NAME: השם המוצג של נקודת הקצה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints
תוכן בקשת JSON:
{
"display_name": "ENDPOINT_NAME"
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.CreateEndpointOperationMetadata",
"genericMetadata": {
"createTime": "2020-11-05T17:45:42.812656Z",
"updateTime": "2020-11-05T17:45:42.812656Z"
}
}
}
"done": true.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר Vertex AI quickstart using client libraries. מידע נוסף מופיע במאמרי העזרה של Vertex AI Java API.
כדי לבצע אימות ב-Vertex AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר Vertex AI quickstart using client libraries. מידע נוסף מופיע במאמרי העזרה של Vertex AI Node.js API.
כדי לבצע אימות ב-Vertex AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
אחזור מזהה נקודת הקצה
כדי לפרוס את המודל, צריך את מזהה נקודת הקצה.
gcloud
בדוגמה הבאה משתמשים בפקודה gcloud ai endpoints list:
gcloud ai endpoints list \
--region=LOCATION \
--filter=display_name=ENDPOINT_NAME
מחליפים את מה שכתוב בשדות הבאים:
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI.
ENDPOINT_NAME: השם המוצג של נקודת הקצה.
רושמים את המספר שמופיע בעמודה
ENDPOINT_ID. משתמשים במזהה הזה בשלב הבא.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI.
- PROJECT_ID: .
- ENDPOINT_NAME: השם המוצג של נקודת הקצה.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints?filter=display_name=ENDPOINT_NAME
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"endpoints": [
{
"name": "projects/PROJECT_NUMBER/locations/LOCATION_ID/endpoints/ENDPOINT_ID",
"displayName": "ENDPOINT_NAME",
"etag": "AMEw9yPz5pf4PwBHbRWOGh0PcAxUdjbdX2Jm3QO_amguy3DbZGP5Oi_YUKRywIE-BtLx",
"createTime": "2020-04-17T18:31:11.585169Z",
"updateTime": "2020-04-17T18:35:08.568959Z"
}
]
}
פריסת המודל
בוחרים את הכרטיסייה של השפה או הסביבה שלכם:
gcloud
בדוגמאות הבאות משתמשים בפקודה gcloud ai endpoints deploy-model.
בדוגמה הבאה מתבצעת פריסה של Model אל Endpoint בלי להשתמש במעבדי GPU כדי להאיץ את הצגת התחזיות, ובלי לפצל את התנועה בין כמה משאבי DeployedModel:
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- ENDPOINT_ID: המזהה של נקודת הקצה.
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI.
- MODEL_ID: המזהה של המודל שרוצים לפרוס.
-
DEPLOYED_MODEL_NAME: שם ל-
DeployedModel. אפשר להשתמש גם בשם המוצג שלModelבשבילDeployedModel. -
MACHINE_TYPE: אופציונלי. משאבי המכונה שמשמשים לכל צומת בפריסה הזו. הגדרת ברירת המחדל היא
n1-standard-2. מידע נוסף על סוגי מכונות -
MIN_REPLICA_COUNT: מספר הצמתים המינימלי לפריסה הזו.
אפשר להגדיל או להקטין את מספר הצמתים לפי הצורך בהתאם לעומס ההסקה, עד למספר המקסימלי של הצמתים ולפחות למספר הזה של הצמתים.
הערך הזה חייב להיות שווה ל-1 או גדול ממנו. אם לא מציינים את הדגל
--min-replica-count, ערך ברירת המחדל הוא 1. -
MAX_REPLICA_COUNT: המספר המקסימלי של הצמתים לפריסה הזו.
אפשר להגדיל או להקטין את מספר הצמתים בהתאם לעומס ההסקה, עד למספר הצמתים הזה ולעולם לא פחות ממספר הצמתים המינימלי.
אם לא מציינים את הדגל
--max-replica-count, המספר המקסימלי של הצמתים מוגדר לערך של--min-replica-count.
מריצים את הפקודה gcloud ai endpoints deploy-model:
Linux, macOS או Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=100
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME ` --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=100
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME ^ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=100
חלוקת התנועה
הדגל --traffic-split=0=100 בדוגמאות שלמעלה שולח 100% מתנועת החיזוי שמתקבלת ב-Endpoint אל DeployedModel החדש, שמיוצג על ידי המזהה הזמני 0. אם Endpoint כבר יש משאבים אחרים, אפשר לפצל את התנועה בין המשאבים החדשים לבין המשאבים הישנים.DeployedModelDeployedModel
לדוגמה, כדי לשלוח 20% מהתנועה ל-DeployedModel החדש ו-80% מהתנועה ל-DeployedModel ישן יותר, מריצים את הפקודה הבאה.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- OLD_DEPLOYED_MODEL_ID: המזהה של
DeployedModelהקיים.
מריצים את הפקודה gcloud ai endpoints deploy-model:
Linux, macOS או Cloud Shell
gcloud ai endpoints deploy-model ENDPOINT_ID\ --region=LOCATION_ID \ --model=MODEL_ID \ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE \ --min-replica-count=MIN_REPLICA_COUNT \ --max-replica-count=MAX_REPLICA_COUNT \ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (PowerShell)
gcloud ai endpoints deploy-model ENDPOINT_ID` --region=LOCATION_ID ` --model=MODEL_ID ` --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE ` --min-replica-count=MIN_REPLICA_COUNT ` --max-replica-count=MAX_REPLICA_COUNT ` --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
Windows (cmd.exe)
gcloud ai endpoints deploy-model ENDPOINT_ID^ --region=LOCATION_ID ^ --model=MODEL_ID ^ --display-name=DEPLOYED_MODEL_NAME \ --machine-type=MACHINE_TYPE ^ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
משתמשים בשיטה endpoints.predict כדי לבקש הסקה אונליין.
פורסים את המודל.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI.
- PROJECT_ID: .
- ENDPOINT_ID: המזהה של נקודת הקצה.
- MODEL_ID: המזהה של המודל שרוצים לפרוס.
-
DEPLOYED_MODEL_NAME: שם ל-
DeployedModel. אפשר להשתמש גם בשם המוצג שלModelבשבילDeployedModel. -
MACHINE_TYPE: אופציונלי. משאבי המכונה שמשמשים לכל צומת בפריסה הזו. הגדרת ברירת המחדל היא
n1-standard-2. מידע נוסף על סוגי מכונות - ACCELERATOR_TYPE: סוג המאיץ שיצורף למכונה. אופציונלי אם לא מציינים את ACCELERATOR_COUNT או אם הערך שלו הוא אפס. לא מומלץ לשימוש ב: מודלים של AutoML או מודלים שאומנו בהתאמה אישית ומשתמשים בתמונות שלא מבוססות על GPU. מידע נוסף
- ACCELERATOR_COUNT: מספר המאיצים שכל עותק משוכפל צריך להשתמש בהם. זה שינוי אופציונלי. צריך להיות אפס או לא מוגדר למודלים של AutoML או למודלים שאומנו בהתאמה אישית שמשתמשים בתמונות שאינן GPU.
- MIN_REPLICA_COUNT: מספר הצמתים המינימלי לפריסה הזו. אפשר להגדיל או להקטין את מספר הצמתים לפי הצורך בהתאם לעומס ההסקה, עד למספר המקסימלי של הצמתים ולפחות למספר הזה של הצמתים. הערך הזה חייב להיות שווה ל-1 או גדול ממנו.
- MAX_REPLICA_COUNT: המספר המקסימלי של הצמתים לפריסה הזו. אפשר להגדיל או להקטין את מספר הצמתים בהתאם לעומס ההסקה, עד למספר הצמתים הזה ולעולם לא פחות ממספר הצמתים המינימלי.
- REQUIRED_REPLICA_COUNT: אופציונלי. מספר הצמתים הנדרש כדי שהפריסה הזו תסומן כהצלחה. הערך חייב להיות גדול מ-1 או שווה לו, וקטן ממספר הצמתים המינימלי או שווה לו. אם לא מציינים ערך, ערך ברירת המחדל הוא המספר המינימלי של צמתים.
- TRAFFIC_SPLIT_THIS_MODEL: אחוז תנועת התחזיות לנקודת הקצה הזו שתנותב למודל שנפרס באמצעות הפעולה הזו. ברירת המחדל היא 100. סכום האחוזים של כל התנועה צריך להיות 100. מידע נוסף על פיצול תנועה
- DEPLOYED_MODEL_ID_N: אופציונלי. אם מודלים אחרים נפרסים בנקודת הקצה הזו, צריך לעדכן את אחוז חלוקת התנועה שלהם כך שסכום כל האחוזים יהיה 100.
- TRAFFIC_SPLIT_MODEL_N: ערך אחוז פיצול התנועה למזהה המודל שנפרס.
- PROJECT_NUMBER: מספר הפרויקט שנוצר באופן אוטומטי
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:deployModel
תוכן בקשת JSON:
{
"deployedModel": {
"model": "projects/PROJECT/locations/us-central1/models/MODEL_ID",
"displayName": "DEPLOYED_MODEL_NAME",
"dedicatedResources": {
"machineSpec": {
"machineType": "MACHINE_TYPE",
"acceleratorType": "ACCELERATOR_TYPE",
"acceleratorCount": "ACCELERATOR_COUNT"
},
"minReplicaCount": MIN_REPLICA_COUNT,
"maxReplicaCount": MAX_REPLICA_COUNT,
"requiredReplicaCount": REQUIRED_REPLICA_COUNT
},
},
"trafficSplit": {
"0": TRAFFIC_SPLIT_THIS_MODEL,
"DEPLOYED_MODEL_ID_1": TRAFFIC_SPLIT_MODEL_1,
"DEPLOYED_MODEL_ID_2": TRAFFIC_SPLIT_MODEL_2
},
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/PROJECT_ID/locations/LOCATION/endpoints/ENDPOINT_ID/operations/OPERATION_ID",
"metadata": {
"@type": "type.googleapis.com/google.cloud.aiplatform.v1.DeployModelOperationMetadata",
"genericMetadata": {
"createTime": "2020-10-19T17:53:16.502088Z",
"updateTime": "2020-10-19T17:53:16.502088Z"
}
}
}
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר Vertex AI quickstart using client libraries. מידע נוסף מופיע במאמרי העזרה של Vertex AI Java API.
כדי לבצע אימות ב-Vertex AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר Vertex AI quickstart using client libraries. מידע נוסף מופיע במאמרי העזרה של Vertex AI Node.js API.
כדי לבצע אימות ב-Vertex AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
איך משנים את הגדרות ברירת המחדל של רישום מסקנות ביומן
קבלת סטטוס פעולה
חלק מהבקשות מפעילות תהליכים ארוכים שדורשים זמן להשלמה. הבקשות האלה מחזירות שם פעולה, שאפשר להשתמש בו כדי לראות את הסטטוס של הפעולה או לבטל אותה. Vertex AI מספק שיטות עזר לביצוע קריאות לפעולות ממושכות. מידע נוסף זמין במאמר בנושא עבודה עם פעולות ממושכות.
קבלת הסקה אונליין באמצעות המודל שפרסתם
כדי לבצע הסקה אונליין, שולחים פריט בדיקה אחד או יותר למודל לצורך ניתוח, והמודל מחזיר תוצאות שמבוססות על היעד של המודל. אתם יכולים להשתמש במסוף Google Cloud או ב-Vertex AI API כדי לבקש הסקה אונליין.
מסוף Google Cloud
במסוף Google Cloud , בקטע Vertex AI, נכנסים לדף Models.
ברשימת המודלים, לוחצים על שם המודל כדי לבקש מסקנות.
בוחרים בכרטיסייה Deploy & test (פריסה ובדיקה).
בקטע Test your model (בדיקת המודל), מוסיפים פריטי בדיקה כדי לבקש הסקה. נתוני ההסקה של נקודת הבסיס ימולאו בשבילכם, או שתוכלו להזין נתוני הסקה משלכם וללחוץ על חיזוי.
אחרי שההסקה מסתיימת, Vertex AI מחזיר את התוצאות במסוף.
API: Classification
gcloud
-
יוצרים קובץ בשם
request.jsonעם התוכן הבא:{ "instances": [ { PREDICTION_DATA_ROW } ] }מחליפים את מה שכתוב בשדות הבאים:
-
PREDICTION_DATA_ROW: אובייקט JSON עם מפתחות כשמות התכונות וערכים כערכי התכונות התואמים. לדוגמה, אם יש לכם מערך נתונים עם מספר, מערך של מחרוזות וקטגוריה, שורת הנתונים יכולה להיראות כמו בקשת הדוגמה הבאה:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
חובה לציין ערך לכל תכונה שכלולה בהדרכה. הפורמט של הנתונים שמשמשים לחיזוי צריך להיות זהה לפורמט ששימש לאימון. פרטים נוספים זמינים במאמר בנושא פורמט הנתונים לחיזויים.
-
-
מריצים את הפקודה הבאה:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
מחליפים את מה שכתוב בשדות הבאים:
- ENDPOINT_ID: המזהה של נקודת הקצה.
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI.
REST
משתמשים בשיטה endpoints.predict כדי לבקש הסקה אונליין.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
LOCATION_ID: האזור שבו נמצאת נקודת הקצה. לדוגמה,
us-central1. - PROJECT_ID: מזהה הפרויקט.
- ENDPOINT_ID: המזהה של נקודת הקצה.
-
PREDICTION_DATA_ROW: אובייקט JSON עם מפתחות כשמות התכונות וערכים כערכי התכונות התואמים. לדוגמה, אם יש לכם מערך נתונים עם מספר, מערך של מחרוזות וקטגוריה, שורת הנתונים יכולה להיראות כמו בקשת הדוגמה הבאה:
"length":3.6, "material":"cotton", "tag_array": ["abc","def"]
חובה לציין ערך לכל תכונה שכלולה בהדרכה. הפורמט של הנתונים שמשמשים לחיזוי צריך להיות זהה לפורמט ששימש לאימון. פרטים נוספים זמינים במאמר בנושא פורמט הנתונים לחיזויים.
- DEPLOYED_MODEL_ID: פלט של ה-method
predict. המזהה של המודל ששימש ליצירת ההיקש.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
גוף בקשת JSON:
{
"instances": [
{
PREDICTION_DATA_ROW
}
]
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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/endpoints/ENDPOINT_ID:predict"
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/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"predictions": [
{
"scores": [
0.96771615743637085,
0.032283786684274673
],
"classes": [
"0",
"1"
]
}
]
"deployedModelId": "2429510197"
}
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר Vertex AI quickstart using client libraries. מידע נוסף מופיע במאמרי העזרה של Vertex AI Java API.
כדי לבצע אימות ב-Vertex AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר Vertex AI quickstart using client libraries. מידע נוסף מופיע במאמרי העזרה של Vertex AI Node.js API.
כדי לבצע אימות ב-Vertex AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
API: Regression
gcloud
-
יוצרים קובץ בשם `request.json` עם התוכן הבא:
{ "instances": [ { PREDICTION_DATA_ROW } ] }מחליפים את מה שכתוב בשדות הבאים:
-
PREDICTION_DATA_ROW: אובייקט JSON עם מפתחות כשמות התכונות וערכים כערכי התכונות התואמים. לדוגמה, אם יש לכם מערך נתונים עם מספר, מערך של מספרים וקטגוריה, שורת הנתונים יכולה להיראות כמו הבקשה הבאה לדוגמה:
"age":3.6, "sq_ft":5392, "code": "90331"
חובה לציין ערך לכל תכונה שכלולה בהדרכה. הפורמט של הנתונים שמשמשים לחיזוי צריך להיות זהה לפורמט ששימש לאימון. פרטים נוספים זמינים במאמר בנושא פורמט הנתונים לחיזויים.
-
-
מריצים את הפקודה הבאה:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
מחליפים את מה שכתוב בשדות הבאים:
- ENDPOINT_ID: המזהה של נקודת הקצה.
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI.
REST
משתמשים בשיטה endpoints.predict כדי לבקש הסקה אונליין.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
LOCATION_ID: האזור שבו נמצאת נקודת הקצה. לדוגמה,
us-central1. - PROJECT_ID: .
- ENDPOINT_ID: המזהה של נקודת הקצה.
-
PREDICTION_DATA_ROW: אובייקט JSON עם מפתחות כשמות התכונות וערכים כערכי התכונות התואמים. לדוגמה, אם יש לכם מערך נתונים עם מספר, מערך של מספרים וקטגוריה, שורת הנתונים יכולה להיראות כמו הבקשה הבאה לדוגמה:
"age":3.6, "sq_ft":5392, "code": "90331"
חובה לציין ערך לכל תכונה שכלולה בהדרכה. הפורמט של הנתונים שמשמשים לחיזוי צריך להיות זהה לפורמט ששימש לאימון. פרטים נוספים זמינים במאמר בנושא פורמט הנתונים לחיזויים.
- DEPLOYED_MODEL_ID: פלט של ה-method
predict. המזהה של המודל ששימש ליצירת ההיקש.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
גוף בקשת JSON:
{
"instances": [
{
PREDICTION_DATA_ROW
}
]
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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/endpoints/ENDPOINT_ID:predict"
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/endpoints/ENDPOINT_ID:predict" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"predictions": [
[
{
"value": 65.14233
}
]
],
"deployedModelId": "DEPLOYED_MODEL_ID"
}
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר Vertex AI quickstart using client libraries. מידע נוסף מופיע במאמרי העזרה של Vertex AI Java API.
כדי לבצע אימות ב-Vertex AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר Vertex AI quickstart using client libraries. מידע נוסף מופיע במאמרי העזרה של Vertex AI Node.js API.
כדי לבצע אימות ב-Vertex AI, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
פירוש תוצאות התחזית
סיווג
מודלים של סיווג מחזירים ציון מהימנות.
ציון הביטחון מציין את מידת החוזק של השיוך בין כל סיווג או תווית לבין פריט בדיקה במודל. ככל שהמספר גבוה יותר, כך רמת הביטחון של המודל גבוהה יותר לגבי ההחלה של התווית על הפריט. אתם קובעים מה צריך להיות ציון מהימנות התוצאות כדי שתקבלו את התוצאות של המודל.
רגרסיה
מודלים של רגרסיה מחזירים ערך הסקה.
אם המודל משתמש בהסקה הסתברותית, השדה value מכיל את המינימיזציה של יעד האופטימיזציה. לדוגמה, אם יעד האופטימיזציה שלכם הוא minimize-rmse, השדה value מכיל את הערך הממוצע.
אם הערך הוא minimize-mae, השדה value מכיל את ערך החציון.
אם המודל משתמש בהסקה הסתברותית עם קוונטילים, Vertex AI מספק ערכי קוונטילים והסקות בנוסף לערך המינימלי של יעד האופטימיזציה. ערכי הכמותון מוגדרים במהלך אימון המודל. הערכים של ההסקה לגבי קוונטיל הם הערכים שמשויכים לערכי הקוונטיל.
TabNet מספק יכולת מובנית לפרשנות של המודל, ומאפשר למשתמשים לקבל תובנות לגבי התכונות שבהן נעשה שימוש כדי לקבל החלטה. האלגוריתם משתמש במנגנון תשומת הלב, שלומד לשפר באופן סלקטיבי את ההשפעה של חלק מהתכונות, תוך צמצום ההשפעה של תכונות אחרות באמצעות ממוצע משוקלל. כדי לקבל החלטה מסוימת, TabNet מחליט באופן הדרגתי כמה חשיבות לתת לכל תכונה. לאחר מכן, המערכת משלבת את כל השלבים כדי ליצור תחזית סופית. המשמעות של ערכי תשומת הלב היא כפלית, כלומר ערכים גבוהים יותר מציינים שהתכונה מילאה תפקיד גדול יותר בתחזית, וערך של אפס מציין שהתכונה לא מילאה תפקיד בהחלטה הזו. מכיוון ש-TabNet משתמש בכמה שלבי החלטה, תשומת הלב שמוקדשת לתכונות בכל השלבים משולבת באופן לינארי אחרי שינוי קנה מידה מתאים. השילוב הלינארי הזה בכל שלבי ההחלטה של TabNet הוא חשיבות התכונה הכוללת ש-TabNet מספקת לכם.
פלט לדוגמה של מסקנות
המטען הייעודי (payload) שמוחזר מהסקת מסקנות אונליין עם חשיבות התכונות ממודל רגרסיה דומה לדוגמה הבאה.
{
"predictions":[
{
"value":0.3723912537097931,
"feature_importance":{
"MSSubClass":0.12,
"MSZoning":0.33,
"LotFrontage":0.27,
"LotArea":0.06,
...
}
}
]
}