בדף הזה מוסבר איך ליצור אפליקציה ולשלב רכיבים – כמו זרמי קלט, מודלים לניתוח ומחסני נתונים לאחסון – לשימוש בפלטפורמת האפליקציות של Vertex AI Vision.
כדי לבנות אפליקציה, צריך לקחת בחשבון את מקורות הנתונים, את הניתוח שרוצים לבצע ואת האופן שבו רוצים לאחסן את התוצאות. אפליקציה מקצה לקצה יכולה לכלול טפסים שונים בהתאם לתרחיש השימוש. לכן, אופן בניית האפליקציה תלוי ביעד שלכם.
לפני שמתחילים, חשוב להעריך את תרחיש השימוש והמטרה מנקודת מבט של אתיקה של בינה מלאכותית, ולחשוב על ההשפעה של המודלים והאפליקציות על משתמשי הקצה במקרה של בעיות. מידע נוסף על השלבים הראשונים בתהליך הערכת התרחיש לדוגמה לצורך הוגנות בנוסף, עליכם לוודא שהשימוש שלכם ב-Vertex AI Vision נעשה בהתאם Google Cloudלתנאים ולהגבלות או לגרסה אופליין שלהם, ובהתאם Google Cloudלמדיניות השימוש המקובל.
כשאתם יוצרים את האפליקציה, חשוב לזכור שטכנולוגיות ראייה מבוססות-AI עלולות לחזק או ליצור הטיה לא הוגנת ולהשפיע על זכויות אדם בסיסיות. פיתוח האפליקציה צריך לכלול שיקולים אתיים על סמך הערכים של החברה שלכם, ובדיקת נאותות משפטית לגבי תרחיש השימוש הספציפי שלכם, כולל תרחישי שימוש בסיכון גבוה. כמו בכל הטכנולוגיות, עליכם לקחת בחשבון את כל החוקים והתקנות הרלוונטיים שחלים על השימוש שלכם בטכנולוגיות AI/ML באזור שבו אתם מטמיעים את הטכנולוגיה. הלקוחות אחראים לבדיקת הנאותות הנדרשת להטמעה של תרחישי שימוש שנחשבים לבעלי סיכון גבוה באזור מסוים.
יצירת אפליקציה חדשה
כדי להוסיף רכיבים כמו מקור נתונים או מודלים לאפליקציה, צריך קודם ליצור את האפליקציה עצמה. כדי שאפשר יהיה לפרוס אפליקציות, הן צריכות לכלול את הרכיבים הבאים:
- צומת קלט של מקור נתונים (מקור נתונים).
- לפחות עוד צומת רכיב אחד, כמו מודל או מחסן נתונים.
יצירת אפליקציה מותאמת אישית חדשה
המסוף
יוצרים אפליקציה במסוף Google Cloud .
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
לוחצים על הלחצן יצירה.
מזינים את שם האפליקציה ובוחרים את האזור. אזורים נתמכים
לוחצים על יצירה.
יצירת אפליקציה באמצעות תבנית
המסוף
יוצרים אפליקציה במסוף Google Cloud .
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
לוחצים על הלחצן יצירה.
מזינים את שם האפליקציה ובוחרים את האזור. אזורים נתמכים
לוחצים על יצירה.
בדף של כלי בניית האפליקציות, לוחצים על הצומת Application template (תבנית אפליקציה).
בחלונית ההגדרות הצדדית, לוחצים על הלחצן בחירת מודל.
בוחרים מודל מהתפריט הנפתח.
הוספת קלט של מקור נתונים
אפליקציה חייבת להכיל צומת של שידור וידאו. לא ניתן לפרוס את האפליקציה אם לא מוסיפים צומת Streams.
אם האפליקציה לא נפרסה, העדכון של קלט הנתונים יוחל על האפליקציה באופן אוטומטי. אם האפליקציה כבר נפרסה, צריך לבטל את הפריסה שלה ולעדכן אותה כדי שהשינויים יחולו. פרטים נוספים מופיעים בקטע בנושא עדכון אפליקציה.
המסוף
מוסיפים מקור לנתונים לאפליקציה במסוף Google Cloud .
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
לוחצים על הצגת האפליקציה ליד האפליקציה הרצויה.
ברשימת הרכיבים שבצד, בוחרים באפשרות Video streams מתוך רשימת Connectors. צומת הסטרימינג נוסף לתרשים האפליקציה, ונפתח תפריט צדדי של סטרימינג של וידאו.
בוחרים באפשרות הוספת מקורות וידאו.
אם בוחרים באפשרות בחירה מתוך מקורות נתונים קיימים, בוחרים את מקור הנתונים הקיים ולוחצים על הוספת מקורות נתונים.
אם בוחרים באפשרות הרשמה של מקורות חדשים, מוסיפים שם למקור החדש ולוחצים על הוספת מקורות.
REST
כדי להוסיף מקור נתונים לאפליקציה, שולחים בקשת POST באמצעות השיטה projects.locations.applications.addStreamInput.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT: מזהה הפרויקט או מספר הפרויקט ב- Google Cloud.
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה:
us-central1, europe-west4. אזורים זמינים - APPLICATION_ID: המזהה של אפליקציית היעד.
- STREAM_ID: המזהה של מקור הנתונים של היעד.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
גוף בקשת JSON:
{
"applicationStreamInputs": [
{
"streamWithAnnotation": {
"stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
}
},
{
"streamWithAnnotation": {
"stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
}
}
]
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
אמור להתקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.
הוספת קלט לסטרימינג עם הערות לצמתים
כשיוצרים זרם קלט של אפליקציה, אפשר להוסיף הערות לזרם באמצעות Vertex AI Vision API. אפשר גם להוסיף הערות לצומת ב-Google Cloud console.
המסוף
בדוגמה הבאה מוסיפים הערות זמינות (STREAM_ANNOTATION_TYPE_ACTIVE_ZONE ו-STREAM_ANNOTATION_TYPE_CROSSING_LINE) למודל של ספירת תפוסה.
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
בוחרים באפשרות הצגת האפליקציה לצד שם האפליקציה מהרשימה.
בדף של כלי בניית האפליקציות, בוחרים את המודל עם קלט הסטרימינג שרוצים להוסיף לו הערות.
בחלונית הצדדית של הגדרות המודל, מרחיבים את הקטע Advanced setting (הגדרות מתקדמות). אחרי שמרחיבים את הקטע, לוחצים על הלחצן יצירת אזורים או קווים פעילים.
בתצוגת הגלריה של הזרם, בוחרים זרם קלט כדי לצייר אזורים או קווים פעילים.
בתצוגת העריכה, בוחרים באפשרות הוספת קווים עם כמה נקודות או באפשרות הוספת פוליגון פשוט כדי להוסיף הערות. בחלונית הצדדית, אפשר לשנות את השם של האזור או של הקו, למחוק אזורים או קווים קיימים או להחליף את כיוון הקו.
REST ושורת הפקודה
בדוגמה הבאה מוצג קוד להוספת הערות לסטרימינג.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT: מזהה הפרויקט או מספר הפרויקט ב- Google Cloud.
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה:
us-central1, europe-west4. אזורים זמינים - APPLICATION_ID: המזהה של אפליקציית היעד.
- STREAM_ID: המזהה של מקור הנתונים של היעד.
- NODE_NAME: השם של צומת היעד מגרף האפליקציה. לדוגמה,
builtin-occupancy-count. - ANNOTATION_ID: המזהה של ההערה שרוצים להוסיף.
- ANNOTATION_DISPLAYNAME: השם המוצג שצוין על ידי המשתמש של ההערה הממוקדת.
- ANNOTATION_TYPE: אחד מערכי ה-enum הזמינים. הסוג הזה צריך להיות זהה ל
annotation_payloadהאובייקט, כלומרactiveZoneאוcrossingLine. הערכים הזמינים הם:STREAM_ANNOTATION_TYPE_UNSPECIFIEDSTREAM_ANNOTATION_TYPE_ACTIVE_ZONESTREAM_ANNOTATION_TYPE_CROSSING_LINE
-
normalizedVertices: כל קודקוד מצוין על ידי ערכי קואורדינטות x ו-y. הקואורדינטות הן ערכים ממשיים מנורמלים [0,1] ביחס לתמונה המקורית. הערך 0.0 הוא X_MIN או Y_MIN, והערך 1.0 הוא X_MAX או Y_MAX.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput
גוף בקשת JSON:
{
"applicationStreamInputs": [
{
"streamWithAnnotation": {
"stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
"nodeAnnotations": [
{
"node": "NODE_NAME",
"annotations": [
{
"id": "ANNOTATION_ID",
"displayName": "ANNOTATION_DISPLAYNAME",
"sourceStream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID",
"type": ANNOTATION_TYPE,
"activeZone": {
"normalizedVertices": {
"x": 0.07434944,
"y": 0.18061674
},
"normalizedVertices": {
"x": 0.64684016,
"y": 0.16079295
},
"normalizedVertices": {
"x": 0.6047088,
"y": 0.92070484
},
"normalizedVertices": {
"x": 0.1251549,
"y": 0.76651984
}
}
}
]
}
]
}
}
]
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput"
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:addStreamInput" | Select-Object -Expand Content
אמור להתקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.
הסרת קלט של מקור נתונים
REST
כדי להסיר זרם מאפליקציה, שולחים בקשת POST באמצעות השיטה projects.locations.applications.removeStreamInput.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT: מזהה הפרויקט או מספר הפרויקט ב- Google Cloud.
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI Vision. לדוגמה:
us-central1, europe-west4. אזורים זמינים - APPLICATION_ID: המזהה של אפליקציית היעד.
- STREAM_ID: המזהה של מקור הנתונים של היעד.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput
גוף בקשת JSON:
{
"targetStreamInputs": [
{
"stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
},
{
"stream": "projects/PROJECT/locations/LOCATION_ID/clusters/application-cluster-0/streams/STREAM_ID"
}
]
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput"
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://visionai.googleapis.com/v1/projects/PROJECT/locations/LOCATION_ID/applications/APPLICATION_ID:removeStreamInput" | Select-Object -Expand Content
אמור להתקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.
הוספת מודל שעבר אימון מראש ב-Vertex AI Vision
אחרי שיוצרים אפליקציה, אפשר להוסיף מודל ולקשר אותו לסטרימינג, למודלים אחרים או למחסן מדיה.
יש שני סוגים של מודלים – מודלים שעברו אימון מראש או מודלים שעברו אימון על ידי המשתמש. באופן דומה, יש שני סוגים של מודלים שאומנו על ידי משתמשים: AutoML או אימון בהתאמה אישית:
- מודלים שעברו אימון מראש מבצעים מטרה ספציפית, עוברים אימון על נתונים מוכללים ומוכנים לשימוש.
- מודלים של AutoML שאומנו על ידי המשתמש או מודלים שאומנו בהתאמה אישית מחייבים אתכם לזהות ולספק נתוני דוגמה, ואז לאמן מודלים שמתאימים יותר לתרחיש השימוש הייחודי שלכם. אתם מאמנים את המודלים האלה באמצעות Vertex AI, מוצר שמציע שתי אפשרויות אימון: מודלים שאומנו באמצעות AutoML ומודלים שאומנו בהתאמה אישית. מידע נוסף זמין במאמר בחירת שיטת אימון.
כדי להוסיף מודל Vertex AI Vision שאומן מראש לגרף האפליקציה, פועלים לפי ההוראות הבאות.
המסוף
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
בוחרים באפשרות הצגת האפליקציה לצד שם האפליקציה מהרשימה.
בדף של כלי בניית האפליקציות, בוחרים את המודל שרוצים להוסיף מתוך הרשימה מודלים של AI. לכל מודל יש הגדרות קונפיגורציה משלו.
כדי לחבר את המודל הזה לצומת של מקור קלט, בוחרים את צומת המקור ולוחצים על הוספת פלט.
בוחרים את הצומת של מודל ה-AI החדש שנוצר מתוך הרשימה צמתים זמינים.
הוספת מודל של Vertex AI שאומן על ידי משתמש
אחרי שיוצרים אפליקציה, אפשר להוסיף מודל ולקשר אותו לסטרימינג, למודלים אחרים או למחסן מדיה.
יש שני סוגים של מודלים – מודלים שעברו אימון מראש או מודלים שעברו אימון על ידי המשתמש. באופן דומה, יש שני סוגים של מודלים שאומנו על ידי משתמשים: AutoML או אימון בהתאמה אישית:
- מודלים שעברו אימון מראש מבצעים מטרה ספציפית, עוברים אימון על נתונים מוכללים ומוכנים לשימוש.
- מודלים של AutoML שאומנו על ידי המשתמש או מודלים שאומנו בהתאמה אישית מחייבים אתכם לזהות ולספק נתוני דוגמה, ואז לאמן מודלים שמתאימים יותר לתרחיש השימוש הייחודי שלכם. אתם מאמנים את המודלים האלה באמצעות Vertex AI, מוצר שמציע שתי אפשרויות אימון: מודלים שאומנו באמצעות AutoML ומודלים שאומנו בהתאמה אישית. מידע נוסף זמין במאמר בחירת שיטת אימון.
הוספת מודל סטרימינג לזיהוי אובייקטים של Vertex AI AutoML
כדי להוסיף לגרף האפליקציה מודל סטרימינג של זיהוי אובייקטים ב-Vertex AI AutoML שאימנתם, פועלים לפי ההוראות הבאות.
לפני שתוכלו לאמן מודל Vertex AI AutoML, תצטרכו להכין את הנתונים לזיהוי אובייקטים וליצור מערך נתונים.
אימון מודל לשימוש ב-Vertex AI Vision
אחרי שיוצרים מערך נתונים עם אוסף מייצג של נתונים ב-Vertex AI, אפשר לאמן מודל לשימוש ב-Vertex AI Vision.
המסוף
במסוף Google Cloud , בלוח הבקרה של Vertex AI, עוברים לדף Datasets.
לוחצים על שם מערך הנתונים שבו רוצים להשתמש כדי לאמן את המודל, כדי לפתוח את דף הפרטים שלו.
אם סוג הנתונים שלכם משתמש בקבוצות של הערות, בוחרים את קבוצת ההערות שרוצים להשתמש בה במודל הזה.
לוחצים על Train new model (אימון מודל חדש).
בדף Train new model (אימון מודל חדש), מבצעים את השלבים הבאים עבור מודל זיהוי האובייקטים בתמונות של AutoML:
בקטע שיטת אימון המודל, בוחרים באפשרות AutoML.
בקטע Choose where to use the model (בחירה של המקום שבו רוצים להשתמש במודל), בוחרים באפשרות Vertex AI Vision.
לוחצים על Continue.
ממלאים את הערכים בסעיפים פרטי המודל, אפשרויות אימון וחישוב ומחירים. מידע מפורט יותר זמין במאמר בנושא אימון מודל AutoML (מסוףGoogle Cloud ).
לוחצים על התחלת ההדרכה.
אימון המודל יכול להימשך שעות רבות, בהתאם לגודל ולמורכבות של הנתונים ולתקציב האימון, אם ציינתם תקציב כזה. אפשר לסגור את הכרטיסייה הזו ולחזור אליה מאוחר יותר. תקבלו אימייל כשהאימון של המודל יסתיים.
הוספת המודל המאומן לאפליקציה
אחרי שמסיימים לאמן את המודל, אפשר להוסיף אותו לאפליקציית Vertex AI Vision.
המסוף
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
בוחרים באפשרות הצגת האפליקציה לצד שם האפליקציה מהרשימה.
בדף של הכלי ליצירת אפליקציות, בוחרים באפשרות Add Vertex AI Model (הוספת מודל Vertex AI) מתוך רשימת רכיבי הצד. בחירה באפשרות הזו פותחת תפריט צדדי.
בתפריט 'הוספת מודל Vertex AI', משאירים את האפשרות ייבוא מודל מאומן מ-Vertex AI מסומנת, ואז בוחרים את המודל מתוך רשימת המודלים הקיימים של Vertex AI AutoML.
אחרי שבוחרים את המודל לייבוא, לוחצים על הוספת מודל.
אחרי שלוחצים על הלחצן הוספת מודל, מופיע מודל בהמתנה בצד של הדף של כלי ליצירת תרשימים. אחרי כמה שניות, המודל יהיה מוכן לשימוש.
הוספת מודל בהתאמה אישית של Vertex AI
אפשר גם לייבא מודלים שאומנו בהתאמה אישית ב-Vertex AI אל Vertex AI Vision כדי להשתמש בהם לניתוח נתונים. למודלים האלה שעברו אימון בהתאמה אישית צריכים להיות המאפיינים הבאים:
- המודל צריך להיות חסר מצב (stateless), כי הקלט של המודל הוא התמונות שמגיעות ממופעים שונים של האפליקציה (סטרימינג) ויכול להיות שהן לא מסודרות. אם אתם צריכים עיבוד סטרימינג עם שמירת מצב, יכול להיות שתצטרכו לשמור את המצבים בתוך הקונטיינר שלכם.
- גודל הקלט במודל מוגבל ל-1.5MB. לכן, Vertex AI Vision צריך לדחוס את תמונת ה-RGB המקורית לפורמט עם אובדן נתונים, כמו JPG.
כדי להוסיף לגרף האפליקציה מודל וידאו קיים שאומן בהתאמה אישית ב-Vertex AI, פועלים לפי ההוראות הבאות.
מידע על יצירת מודל מותאם אישית ב-Vertex AI עם קונטיינר מותאם אישית זמין במאמר שימוש בקונטיינר מותאם אישית לחיזוי.
ציון קובץ YAML של מופעים
כשמוסיפים מודל שאומן בהתאמה אישית ב-Vertex AI, צריך לציין קובץ YAML של מופעים (instances.yaml) שמאוחסן ב-Cloud Storage. בקובץ הזה מצוין הקלט הצפוי למאגר המודלים.
Vertex AI שולח את בקשת החיזוי בפורמט:
{
"instances": [
<value>|<simple/nested list>|<object>,
...
]
}
בדוגמה הזו, instances.yaml מגדיר את הסכימה של מטען הייעודי (payload). מידע נוסף זמין במאמר קבלת תחזיות אונליין ממודלים שעברו אימון בהתאמה אישית.
Vertex AI Vision תומך רק במודלים שעברו אימון בהתאמה אישית עם בדיוק קלט חיזוי שנקרא אחד. סוג הקלט הזה חייב להיות מחרוזת JPEG מקודדת. צריך לציין את הסכימה של קלט החיזוי באמצעות קובץ ה-YAML של סכימת המופעים. קובץ ה-YAML של הסכימה צריך להיות בפורמט של אובייקט סכימה של OpenAPI.
לדוגמה, הסכימה הבאה תקבל את הבקשה עם התמונה שמקודדת בשדה שנקרא image_bytes:
properties:
image_bytes:
type: string
הקלט של התחזית במודל המותאם אישית שלכם מתקבל בפורמט הבא:
{
"instances": [
{
"image_bytes" : {
"b64": "BASE64_ENCODED_IMAGE_BYTES"
}
}
]
}
לפני שמייבאים את המודל ל-Vertex AI Vision, צריך לוודא שהמודל פועל כמו שצריך עם הקלט הזה.
ציון קובץ YAML של תחזיות
כשמוסיפים מודל מותאם אישית של Vertex AI, אפשר לציין קובץ YAML של תחזיות (predictions.yaml) שמאוחסן ב-Cloud Storage. הקובץ הזה מציין את הפלט ממכולת המודל.
הקובץ הזה הוא אופציונלי, אבל מומלץ להשתמש בו כדי להודיע ל-Vertex AI Vision על מבנה הפלט של המודל. לדוגמה, קובץ classification_1.0.0.yaml
הבא מתאר מידע על פלט של מודל לסיווג תמונות:
title: Classification
type: object
description: >
The predicted AnnotationSpecs.
properties:
ids:
type: array
description: >
The resource IDs of the AnnotationSpecs that had been identified.
items:
type: integer
format: int64
enum: [0] # As values of this enum all AnnotationSpec IDs the Model
# was trained on will be populated.
displayNames:
type: array
description: >
The display names of the AnnotationSpecs that had been identified,
order matches the IDs.
items:
type: string
enum: [""] # As values of this enum all AnnotationSpec display_names
# the Model was trained on will be populated.
confidences:
type: array
description: >
The Model's confidences in correctness of the predicted IDs, higher
value means higher confidence. Order matches the Ids.
items:
type: number
format: float
minimum: 0.0
maximum: 1.0
הוספת המודל עם אימון בהתאמה אישית
אפשר להשתמש בדוגמה הבאה כדי להוסיף את המודל שאומן בהתאמה אישית ב-Vertex AI לאפליקציה.
המסוף
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
בוחרים באפשרות הצגת האפליקציה לצד שם האפליקציה מהרשימה.
בדף של הכלי ליצירת אפליקציות, בוחרים באפשרות Add Vertex AI Model (הוספת מודל Vertex AI) מתוך רשימת רכיבי הצד. בחירה באפשרות הזו פותחת תפריט צדדי.
בתפריט 'הוספת מודל Vertex AI', משאירים את האפשרות ייבוא מודל מאומן מ-Vertex AI מסומנת, ואז בוחרים את המודל מתוך רשימת המודלים הקיימים של Vertex AI AutoML.
נותנים שם למודל.
מציינים את קובץ ה-YAML של המופעים ב-Cloud Storage שמגדיר את הפורמט של מופע יחיד שמשמש בבקשות לחיזוי ולהסבר.
אופציונלי: מציינים את קובץ ה-YAML של סכימת התחזיות ב-Cloud Storage, שמגדיר את הפורמט של תחזית או הסבר יחידים.
אחרי שמזינים את שם המודל, המופעים והתחזיות, בוחרים באפשרות הוספת מודל.
אחרי שלוחצים על הלחצן הוספת מודל, מופיע מודל בהמתנה בצד של הדף של כלי ליצירת תרשימים. אחרי כמה שניות, המודל יהיה מוכן לשימוש.
זה שינוי אופציונלי. צירוף מטא-נתונים של האפליקציה
בנוסף לבייטים של התמונה, אפשר להגדיר את attach_application_metadata כדי לבקש מ-Vertex AI Vision Platform לכלול את המטא-נתונים של האפליקציה שיישלחו למאגר המותאם אישית.
המטא-נתונים הם לפי הסכימה הבאה:
'appPlatformMetadata': {
'application': STRING;
'instanceId': STRING;
'node': STRING;
'processor': STRING;
}
זה שינוי אופציונלי. הוספת נושא Pub/Sub להגדרות דינמיות
כדי לשלוט באופן דינמי בקצב הפריימים שבו Vertex Custom Operator שולח פריימים של סרטונים למאגרי Vertex Custom, אפשר ליצור נושא ב-Pub/Sub. מוסיפים אותו לקטע Dynamic Configuration בהגדרות הצומת.

אם נושא Pub/Sub מוגדר, קצב הפריימים הראשוני הוא 0. במהלך עיבוד הסרטון, אפשר לשלוח הודעות Pub/Sub לנושא Pub/Sub בפורמט הבא בזמן אמת כדי לשנות את קצב הפריימים:
{
"stream_id": "input-stream-id",
"fps": 5,
}
הערך בשדה stream_id צריך להיות זהה למזהה של מקור הנתונים של האפליקציה.
חשבון שירות והרשאות
פרטי הכניסה של חשבון השירות שמוגדר כברירת מחדל בקונטיינר המותאם אישית הוגדרו לחשבון השירות בבעלות Google של פלטפורמת האפליקציות Vertex AI Vision.
כדי לגשת לשירותים אחרים Google Cloud
ממאגר התגים, צריך לתת הרשאה מתאימה ל:
service-<var>PROJECT_NUMBER</var>@gcp-sa-visionai.iam.gserviceaccount.com
זה שינוי אופציונלי. מודל של התראות לגבי אירועים באמצעות פונקציות Cloud Run ו-Pub/Sub
ב-Vertex AI Vision, מודלים מקבלים נתוני מדיה ממכשירים כמו מצלמות, מריצים חיזויים מבוססי-AI על הנתונים ומפיקים הערות באופן רציף. לרוב, שולחים את הנתונים המעובדים האלה ליעד נתונים (data sink), כמו מחסן מדיה או BigQuery, כדי לבצע ניתוחים נוספים. עם זאת, יכול להיות שיהיו מקרים שבהם צריך לטפל בחלק מההערות בצורה שונה, או שההערות רלוונטיות רק לפרק זמן מסוים. שילובים עם פונקציות Cloud Run ו-Pub/Sub עוזרים לכם לתת מענה לצרכים האלה.
מודלים נתמכים
המודלים הבאים מציעים שילובים של יצירת אירועים של פונקציות Cloud Run והתראות לגבי אירועים ב-Pub/Sub:
- מודל ניתוח נתוני תפוסה
- מודלים מותאמים אישית ב-Vertex AI
הגדרת פונקציות Cloud Run לעיבוד פלט של מודל
כדי להפעיל התראות מבוססות-אירועים, קודם צריך להגדיר פונקציות Cloud Run לעיבוד של פלט המודל וליצירת אירועים.
פונקציית Cloud Run מתחברת למודל ומאזינה לפלט שלו כפעולת עיבוד שלאחר מכן. פונקציית Cloud Run צריכה להחזיר AppPlatformCloudFunctionResponse. האירועים (appplatformeventbody) נשלחים לנושא Pub/Sub שמוגדר בשלב הבא.
כדי לראות פונקציית Cloud Run לדוגמה, אפשר לעיין במאמר הפעלת התראה לגבי אירוע של מודלים באמצעות Cloud Functions ו-Pub/Sub.
כדי לשלוח את זרם הפלט של המודל לפונקציית Cloud Run, פועלים לפי ההוראות הבאות:
המסוף
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
בוחרים באפשרות הצגת האפליקציה לצד שם האפליקציה מהרשימה.
לוחצים על המודל הנתמך כדי לפתוח את חלונית הצד עם פרטי המודל.
ברשימה post-processing שבקטע התראה לגבי אירוע, בוחרים פונקציית Cloud Run קיימת או יוצרים פונקציה חדשה.

הפעלת התראות לגבי אירועים של מודלים באמצעות Pub/Sub
אחרי שמגדירים פונקציות Cloud Run לעיבוד פלט של מודל וליצירת אירועים, אפשר להגדיר התראות על אירועים באמצעות Pub/Sub. כדי לקרוא הודעות מנושא, צריך גם לבחור וליצור מינוי ל-Pub/Sub.
המסוף
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
בוחרים באפשרות הצגת האפליקציה לצד שם האפליקציה מהרשימה.
לוחצים על המודל הנתמך כדי לפתוח את חלונית הצד עם פרטי המודל.
בקטע התראה לגבי האירוע, בוחרים באפשרות הגדרת התראה לגבי האירוע.
בחלון האפשרות Set up Pub/Sub for event notifications שנפתח, בוחרים נושא Pub/Sub קיים או יוצרים נושא חדש.
בשדה תדירות מגדירים ערך שלם לתדירות בשניות שבה אפשר לשלוח התראה לאותו סוג אירוע.

לוחצים על הגדרה.
חיבור פלט של מודל לצומת במורד הזרם
אחרי שיוצרים צומת של מודל, אפשר לקשר את הפלט שלו לצומת אחר.
המסוף
פותחים את הכרטיסייה Applications (אפליקציות) בלוח הבקרה של Vertex AI Vision.
בוחרים באפשרות הצגת האפליקציה לצד שם האפליקציה מהרשימה.
לוחצים על צומת של מודל שמפיק נתונים בכלי ליצירת גרף של אפליקציה (לדוגמה, צומת המודל Occupancy Count).
בחלונית ההגדרות הצדדית, לוחצים על הלחצן הוספת פלט.
אפשר להוסיף פלט חדש ולבחור צומת פלט חדש להוספה, או לבחור צומת זמין קיים כדי לשלוח אליו פלט.
קישור הפלט ליעד נתונים
אחרי שיוצרים את מקור הנתונים ומוסיפים את צמתי העיבוד לאפליקציה, צריך לבחור לאן לשלוח את הנתונים המעובדים. יעד הנתונים הזה הוא נקודת הקצה של גרף האפליקציה שמקבל נתונים בסטרימינג בלי ליצור נתונים בסטרימינג. יעד הייצוא תלוי באופן השימוש בנתוני הפלט של האפליקציה.
אפשר לקשר את נתוני הפלט של האפליקציה ליעדי הנתונים הבאים:
מחסן Vision: אחסון של נתוני וידאו מקוריים או מנותחים שאפשר להציג ולשאול לגביהם שאילתות.
מידע נוסף על שליחת נתוני פלט של אפליקציה למחסן Vision זמין במאמר חיבור נתונים למחסן ואחסון שלהם.
BigQuery: אחסון נתונים ב-BigQuery כדי להשתמש ביכולות הניתוח שלו במצב אופליין.
מידע נוסף על שליחת נתוני הפלט של האפליקציה ל-BigQuery זמין במאמר בנושא חיבור נתונים ואחסונם ב-BigQuery.
נתונים של שידור חי: אם רוצים שליטה מדויקת יותר כדי לפעול על סמך ניתוח נתונים בזמן אמת, אפשר לקבל את הפלט של השידור החי מהאפליקציה.
מידע נוסף על סטרימינג ישיר של נתוני הפלט של האפליקציה זמין במאמר בנושא הפעלת פלט של שידור חי.
עדכון אפליקציה
אפליקציות שלא נפרסו
מבצעים שינויים באפליקציה (למשל מוסיפים או מסירים צמתי רכיבים) ; השינויים יישמרו אוטומטית ב-Vertex AI Vision.
המאמרים הבאים
- במאמר פריסת אפליקציה מוסבר איך פורסים את האפליקציה כדי להטמיע ולנתח נתונים.
- הוראות לתחילת הטמעת נתונים ממקור נתונים של אפליקציה מופיעות במאמר יצירה וניהול של מקורות נתונים.
- במאמר ניהול אפליקציות מוסבר איך מציגים רשימה של אפליקציות ואיך רואים את המופעים של אפליקציה שפרסתם.
- במאמר קריאת נתונים ממקור נתונים מוסבר איך לקרוא נתוני קלט של אפליקציה ממקור נתונים או נתוני פלט מנותחים של מודל.