ההבדל בין מסקנות אונליין לבין מסקנות באצווה
הסקות אונליין הן בקשות סינכרוניות שנשלחות לנקודת קצה של מודל. כדאי להשתמש בהסקת מסקנות אונליין כשמבצעים בקשות בתגובה לקלט של אפליקציה או במצבים שבהם נדרשת הסקת מסקנות בזמן אמת.
הסקת מסקנות באצווה היא בקשה אסינכרונית. אתם שולחים בקשות למסקנות באצווה ישירות ממשאב המודל, בלי שתצטרכו לפרוס את המודל לנקודת קצה. לגבי נתוני תמונות, כדאי להשתמש בהסקת מסקנות באצווה כשלא נדרשת תשובה מיידית ורוצים לעבד נתונים שנצברו באמצעות בקשה אחת.
קבלת מסקנות אונליין
פריסת מודל לנקודת קצה
כדי להשתמש במודל להסקת מסקנות אונליין, צריך לפרוס אותו לנקודת קצה. פריסת מודל משייכת משאבים פיזיים למודל, כדי שיוכל להפיק מסקנות אונליין עם זמן אחזור נמוך.
אפשר לפרוס יותר ממודל אחד לנקודת קצה, ואפשר לפרוס מודל ליותר מנקודת קצה אחת. מידע נוסף על אפשרויות ועל תרחישי שימוש להטמעת מודלים
כדי לפרוס מודל, משתמשים באחת מהשיטות הבאות:
מסוף Google Cloud
במסוף Google Cloud , בקטע Agent Platform, עוברים לדף Models.
לוחצים על שם המודל שרוצים לפרוס כדי לפתוח את דף הפרטים שלו.
בוחרים בכרטיסייה Deploy & Test (פריסה ובדיקה).
אם המודל כבר נפרס לנקודות קצה כלשהן, הן מפורטות בקטע Deploy your model.
לוחצים על Deploy to endpoint.
כדי לפרוס את המודל לנקודת קצה חדשה, בוחרים באפשרות יצירת נקודת קצה חדשה ומזינים שם לנקודת הקצה החדשה. כדי לפרוס את המודל לנקודת קצה קיימת, בוחרים באפשרות הוספה לנקודת קצה קיימת ובוחרים את נקודת הקצה מהרשימה הנפתחת.
אפשר להוסיף יותר ממודל אחד לנקודת קצה, ואפשר להוסיף מודל ליותר מנקודת קצה אחת. מידע נוסף
אם פורסים את המודל לנקודת קצה קיימת שפרוסים בה מודל אחד או יותר, צריך לעדכן את אחוז חלוקת התנועה של המודל שפורסים ושל המודלים שכבר פרוסים, כך שסכום האחוזים יהיה 100%.
בוחרים באפשרות AutoML Image (תמונת AutoML) ומגדירים אותה באופן הבא:
אם אתם פורסים את המודל לנקודת קצה חדשה, צריך להזין 100 בפיצול התעבורה. אחרת, צריך לשנות את ערכי חלוקת התנועה של כל המודלים בנקודת הקצה כך שהסכום שלהם יהיה 100.
מזינים את מספר צמתי החישוב שרוצים לספק עבור המודל.
זה מספר הצמתים שהמודל הזה יכול להשתמש בהם בכל רגע. אתם מחויבים על הצמתים, גם אם אין תנועה של הסקת מסקנות. לעיון בתמחור
מודלים של סיווג בלבד (אופציונלי): בקטע אפשרויות של הסבר בוחרים באפשרות הפעלת שיוך תכונות למודל הזה כדי להפעיל את Vertex Explainable AI. מאשרים את הגדרות התצוגה החזותית הקיימות או בוחרים ערכים חדשים ולוחצים על סיום.
פריסת מודלים של AutoML לסיווג תמונות עם Vertex Explainable AI מוגדרת וביצוע הסקת מסקנות עם הסברים היא אופציונלית. הפעלת Vertex Explainable AI בזמן הפריסה כרוכה בעלויות נוספות על סמך מספר הצמתים שנפרסו וזמן הפריסה. מידע נוסף מופיע במאמר בנושא תמחור.
לוחצים על סיום ליד המודל, ואם כל אחוזי פיצול התנועה נכונים, לוחצים על המשך.
האזור שבו המודל נפרס מוצג. זה צריך להיות האזור שבו יצרתם את המודל.
לוחצים על Deploy (פריסה) כדי לפרוס את המודל בנקודת הקצה.
API
כשפורסים מודל באמצעות Agent Platform API, מבצעים את השלבים הבאים:
- אם צריך, יוצרים נקודת קצה.
- מוצאים את מזהה נקודת הקצה.
- פורסים את המודל בנקודת הקצה.
יצירת נקודת קצה
אם אתם פורסים מודל לנקודת קצה קיימת, אתם יכולים לדלג על השלב הזה.
gcloud
בדוגמה הבאה משתמשים בפקודה gcloud ai endpoints create:
gcloud ai endpoints create \
--region=LOCATION \
--display-name=ENDPOINT_NAME
מחליפים את מה שכתוב בשדות הבאים:
- LOCATION_ID: האזור שבו משתמשים בפלטפורמת הסוכנים.
- ENDPOINT_NAME: השם המוצג של נקודת הקצה.
יכול להיות שיחלפו כמה שניות עד שכלי Google Cloud CLI ייצור את נקודת הקצה.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שלכם.
- PROJECT_ID: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers). .
- 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ההוראות להגדרה במאמר התחלה מהירה של פלטפורמת הסוכנים באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר התחלה מהירה של פלטפורמת הסוכנים באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את 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: האזור שבו משתמשים בפלטפורמת הסוכנים.
- ENDPOINT_NAME: השם המוצג של נקודת הקצה.
רושמים את המספר שמופיע בעמודה ENDPOINT_ID. משתמשים במזהה הזה בשלב הבא.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שבו משתמשים בפלטפורמת הסוכנים.
- 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 בלי לפצל את התנועה בין כמה משאבי DeployedModel:
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- ENDPOINT_ID: המזהה של נקודת הקצה.
- LOCATION_ID: האזור שבו משתמשים בפלטפורמת הסוכנים.
- MODEL_ID: המזהה של המודל שרוצים לפרוס.
-
DEPLOYED_MODEL_NAME: שם ל-
DeployedModel. אפשר להשתמש גם בשם המוצג שלModelבשבילDeployedModel. - MIN_REPLICA_COUNT: מספר הצמתים המינימלי לפריסה הזו. אפשר להגדיל או להקטין את מספר הצמתים לפי הצורך בהתאם לעומס ההסקה, עד למספר המקסימלי של הצמתים, אבל אף פעם לא פחות ממספר הצמתים הזה.
-
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 \ --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 ` --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 ^ --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 כבר יש משאבים אחרים, אפשר לפצל את התנועה בין המשאבים החדשים לבין המשאבים הישנים.DeployedModelEndpointDeployedModel
לדוגמה, כדי לשלוח 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 \ --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 \ --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 \ --min-replica-count=MIN_REPLICA_COUNT ^ --max-replica-count=MAX_REPLICA_COUNT ^ --traffic-split=0=20,OLD_DEPLOYED_MODEL_ID=80
REST
פורסים את המודל.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שבו משתמשים בפלטפורמת הסוכנים.
- PROJECT_ID: .
- ENDPOINT_ID: המזהה של נקודת הקצה.
- MODEL_ID: המזהה של המודל שרוצים לפרוס.
-
DEPLOYED_MODEL_NAME: שם ל-
DeployedModel. אפשר להשתמש גם בשם המוצג שלModelבשבילDeployedModel. - MIN_REPLICA_COUNT: מספר הצמתים המינימלי לפריסה הזו. אפשר להגדיל או להקטין את מספר הצמתים לפי הצורך בהתאם לעומס ההסקה, עד למספר המקסימלי של הצמתים, אבל אף פעם לא פחות ממספר הצמתים הזה.
- MAX_REPLICA_COUNT: המספר המקסימלי של הצמתים לפריסה הזו. אפשר להגדיל או להקטין את מספר הצמתים בהתאם לעומס ההסקה, עד למספר הצמתים הזה ולעולם לא פחות ממספר הצמתים המינימלי.
- 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_ID/locations/LOCATION_ID/models/MODEL_ID",
"displayName": "DEPLOYED_MODEL_NAME",
"automaticResources": {
"minReplicaCount": MIN_REPLICA_COUNT,
"maxReplicaCount": MAX_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_ID/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ההוראות להגדרה במאמר התחלה מהירה של פלטפורמת הסוכנים באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר התחלה מהירה של פלטפורמת הסוכנים באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
איך משנים את הגדרות ברירת המחדל של רישום מסקנות
קבלת סטטוס פעולה
חלק מהבקשות מפעילות תהליכים ארוכים שדורשים זמן להשלמה. הבקשות האלה מחזירות שם פעולה, שאפשר להשתמש בו כדי לראות את הסטטוס של הפעולה או לבטל אותה. פלטפורמת הסוכנים מספקת שיטות עזר לביצוע קריאות לפעולות ממושכות. מידע נוסף זמין במאמר בנושא עבודה עם פעולות ממושכות.
ביצוע הסקה אונליין באמצעות המודל שפרסתם
כדי לבצע הסקה אונליין, שולחים פריט בדיקה אחד או יותר למודל לצורך ניתוח, והמודל מחזיר תוצאות שמבוססות על היעד של המודל. מידע נוסף על תוצאות ההסקה זמין בדף פירוש תוצאות.
המסוף
משתמשים במסוף Google Cloud כדי לבקש הסקה אונליין. צריך לפרוס את המודל בנקודת קצה.
במסוף Google Cloud , בקטע Agent Platform, עוברים לדף Models.
ברשימת המודלים, לוחצים על שם המודל כדי לבקש מסקנות.
בוחרים בכרטיסייה Deploy & test (פריסה ובדיקה).
בקטע Test your model (בדיקת המודל), מוסיפים פריטי בדיקה כדי לבקש הסקה.
כדי לבקש הסקה ממודלים של AutoML למטרות שקשורות לתמונות, צריך להעלות תמונה.
מידע על חשיבות התכונות המקומיות זמין במאמר קבלת הסברים.
אחרי שההסקה מסתיימת, Gemini Enterprise Agent Platform מחזירה את התוצאות במסוף.
API
משתמשים ב-Agent Platform API כדי לבקש הסקה אונליין. צריך לפרוס את המודל בנקודת קצה.
מטרות של סוג נתוני תמונה כוללות סיווג וזיהוי אובייקטים.
הסקת מסקנות במודל Edge: כשמשתמשים במודלים של AutoML Edge להסקת מסקנות, צריך להמיר כל קובץ מסקנות שאינו JPEG לקובץ JPEG לפני ששולחים את בקשת המסקנות.
gcloud
יוצרים קובץ בשם
request.jsonעם התוכן הבא:{ "instances": [{ "content": "CONTENT" }], "parameters": { "confidenceThreshold": THRESHOLD_VALUE, "maxPredictions": MAX_PREDICTIONS } }מחליפים את מה שכתוב בשדות הבאים:
- CONTENT: תוכן התמונה בקידוד base64.
- THRESHOLD_VALUE אופציונלי: המודל מחזיר רק תחזיות עם ציוני מהימנות שלפחות הערך הזה.
- MAX_PREDICTIONS אופציונלי: המודל מחזיר עד מספר התחזיות הזה עם ציוני הסמך הכי גבוהים.
מריצים את הפקודה הבאה:
gcloud ai endpoints predict ENDPOINT_ID \ --region=LOCATION_ID \ --json-request=request.json
מחליפים את מה שכתוב בשדות הבאים:
- ENDPOINT_ID: המזהה של נקודת הקצה.
- LOCATION_ID: האזור שבו משתמשים בפלטפורמת הסוכנים.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שבו נמצאת נקודת הקצה. לדוגמה:
us-central1. - PROJECT_ID: .
- ENDPOINT_ID: המזהה של נקודת הקצה.
- CONTENT: תוכן התמונה בקידוד base64.
- THRESHOLD_VALUE אופציונלי: המודל מחזיר רק תחזיות עם ציוני מהימנות שלפחות הערך הזה.
- MAX_PREDICTIONS אופציונלי: המודל מחזיר עד מספר התחזיות הזה עם ציוני הסמך הכי גבוהים.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/endpoints/ENDPOINT_ID:predict
גוף בקשת JSON:
{
"instances": [{
"content": "CONTENT"
}],
"parameters": {
"confidenceThreshold": THRESHOLD_VALUE,
"maxPredictions": MAX_PREDICTIONS
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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": [
{
"confidences": [
0.975873291,
0.972160876,
0.879488528,
0.866532683,
0.686478078
],
"displayNames": [
"Salad",
"Salad",
"Tomato",
"Tomato",
"Salad"
],
"ids": [
"7517774415476555776",
"7517774415476555776",
"2906088397049167872",
"2906088397049167872",
"7517774415476555776"
],
"bboxes": [
[
0.0869686604,
0.977020741,
0.395135701,
1
],
[
0,
0.488701463,
0.00157663226,
0.512249
],
[
0.361617863,
0.509664357,
0.772928834,
0.914706349
],
[
0.310678929,
0.45781514,
0.565507233,
0.711237729
],
[
0.584359646,
1,
0.00116168708,
0.130817384
]
]
}
],
"deployedModelId": "3860570043075002368"
}
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר התחלה מהירה של פלטפורמת הסוכנים באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר התחלה מהירה של פלטפורמת הסוכנים באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
קבלת מסקנות לגבי אצווה
כדי לשלוח בקשה להסקת מסקנות באצווה, צריך לציין מקור קלט ופורמט פלט שבו Gemini Enterprise Agent Platform ישמור את תוצאות ההסקה. כדי להסיק מסקנות באצווה עבור סוג המודל של תמונות AutoML, צריך קובץ קלט JSON Lines ושם של קטגוריה ב-Cloud Storage לאחסון הפלט.
הדרישות לגבי נתוני הקלט
בקלט של בקשות באצווה מציינים את הפריטים לשליחה למודל לצורך הסקה. במודלים לזיהוי אובייקטים בתמונות, אפשר להשתמש בקובץ JSON Lines כדי לציין רשימה של תמונות להסקת מסקנות, ואז לאחסן את קובץ ה-JSON Lines בקטגוריה ב-Cloud Storage. בדוגמה הבאה מוצגת שורה אחת בקובץ JSON Lines של קלט:
{"content": "gs://sourcebucket/datasets/images/source_image.jpg", "mimeType": "image/jpeg"}
שליחת בקשה להסקת מסקנות באצווה
לגבי בקשות להסקת מסקנות באצווה, אפשר להשתמש במסוף Google Cloud או ב-Agent Platform API. בהתאם למספר פריטי הקלט ששלחתם, יכול להיות שיעבור זמן עד שמשימת הסקת מסקנות באצווה תושלם.
מסוף Google Cloud
משתמשים במסוף Google Cloud כדי לבקש הסקה באצווה.
במסוף Google Cloud , בקטע Agent Platform, עוברים לדף Batch predictions.
לוחצים על יצירה כדי לפתוח את החלון תחזית חדשה של נתונים מצטברים ומבצעים את השלבים הבאים:
- מזינים שם להסקת המסקנות באצווה.
- בשדה שם המודל, בוחרים את שם המודל שרוצים להשתמש בו להסקת המסקנות של הקבוצה הזו.
- בקטע Source path (נתיב המקור), מציינים את המיקום ב-Cloud Storage שבו נמצא קובץ הקלט של JSON Lines.
- בנתיב היעד, מציינים מיקום ב-Cloud Storage שבו יישמרו התוצאות של ההסקה באצווה. פורמט הפלט נקבע לפי היעד של המודל. מודלים של AutoML למטרות של אובייקטים בתמונות יוצרים קובצי JSON Lines.
API
משתמשים ב-Agent Platform API כדי לשלוח בקשות להסקת מסקנות באצווה.
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שבו המודל מאוחסן ועבודת ההסקה באצווה מבוצעת. לדוגמה,
us-central1. - PROJECT_ID:
- BATCH_JOB_NAME: השם המוצג של העבודה באצווה
- MODEL_ID: המזהה של המודל שבו רוצים להשתמש כדי להסיק מסקנות
- THRESHOLD_VALUE (אופציונלי): Gemini Enterprise Agent Platform מחזירה רק
הסקות עם ציוני סמך שלפחות הערך הזה. ערך ברירת המחדל הוא
0.0. - MAX_PREDICTIONS (אופציונלי): Gemini Enterprise Agent Platform מחזירה עד מספר ההסקות הזה, החל מההסקות עם ציוני המהימנות הכי גבוהים. ערך ברירת המחדל הוא
10. - URI: ה-URI של Cloud Storage שבו נמצא קובץ ה-JSON Lines של הקלט.
- BUCKET: הקטגוריה של Cloud Storage
- PROJECT_NUMBER: מספר הפרויקט שנוצר באופן אוטומטי
ה-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/locations/LOCATION/models/MODEL_ID",
"modelParameters": {
"confidenceThreshold": THRESHOLD_VALUE,
"maxPredictions": MAX_PREDICTIONS
},
"inputConfig": {
"instancesFormat": "jsonl",
"gcsSource": {
"uris": ["URI"],
},
},
"outputConfig": {
"predictionsFormat": "jsonl",
"gcsDestination": {
"outputUriPrefix": "OUTPUT_BUCKET",
},
},
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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_NUMBER/locations/LOCATION_ID/batchPredictionJobs/BATCH_JOB_ID",
"displayName": "BATCH_JOB_NAME",
"model": "projects/PROJECT_ID/locations/LOCATION_ID/models/MODEL_ID",
"inputConfig": {
"instancesFormat": "jsonl",
"gcsSource": {
"uris": [
"CONTENT"
]
}
},
"outputConfig": {
"predictionsFormat": "jsonl",
"gcsDestination": {
"outputUriPrefix": "BUCKET"
}
},
"state": "JOB_STATE_PENDING",
"createTime": "2020-05-30T02:58:44.341643Z",
"updateTime": "2020-05-30T02:58:44.341643Z",
"modelDisplayName": "MODEL_NAME",
"modelObjective": "MODEL_OBJECTIVE"
}
אפשר לשלוח שאילתות לגבי הסטטוס של העבודה בקבוצה באמצעות BATCH_JOB_ID עד שהעבודה state תהיה JOB_STATE_SUCCEEDED.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
אחזור תוצאות של הסקה בקבוצות
פלטפורמת הסוכנים של Gemini Enterprise שולחת את פלט ההסקה של אצווה ליעד שציינתם.
כשמשימת הסקת מסקנות באצווה מסתיימת, הפלט של הסקת המסקנות מאוחסן בקטגוריה של Cloud Storage שציינתם בבקשה.
דוגמה לתוצאות של הסקת מסקנות באצווה
אלה תוצאות לדוגמה של הסקה באצווה ממודל לזיהוי אובייקטים בתמונה.
חשוב: תיבות תוחמות מוגדרות כך:
"bboxes": [
[xMin, xMax, yMin, yMax],
...]
xMin ו-xMax הם ערכי ה-x המינימלי והמקסימלי, ו-
yMin ו-yMax הם ערכי ה-y המינימלי והמקסימלי, בהתאמה.
{
"instance": {"content": "gs://bucket/image.jpg", "mimeType": "image/jpeg"},
"prediction": {
"ids": [1, 2],
"displayNames": ["cat", "dog"],
"bboxes": [
[0.1, 0.2, 0.3, 0.4],
[0.2, 0.3, 0.4, 0.5]
],
"confidences": [0.7, 0.5]
}
}