במדריך הזה מוסבר איך לייבא מודלים למרשם המודלים של Vertex AI. אחרי שמייבאים את המודל, הוא מופיע במאגר המודלים. מתוך מרשם המודלים, אפשר לפרוס את המודל המיובא לנקודת קצה ולהריץ מסקנות.
התפקידים הנדרשים
כדי לקבל את ההרשאות שנדרשות לייבוא מודלים, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד משתמש Vertex AI (roles/aiplatform.user) בפרויקט.
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
מאגרי תגים מוכנים מראש או מותאמים אישית
כשמייבאים מודל, מקשרים אותו למאגר כדי ש-Vertex AI יוכל להריץ בקשות הסקה. אתם יכולים להשתמש בקונטיינרים מוכנים מראש שסופקו על ידי Vertex AI, או להשתמש בקונטיינרים מותאמים אישית משלכם שאתם יוצרים ומעבירים ל-Artifact Registry.
אפשר להשתמש במאגר מוכן מראש אם המודל עומד בדרישות הבאות:
- המודל אומן ב-Python 3.7 ואילך
- עברו אימון באמצעות TensorFlow, PyTorch, scikit-learn או XGBoost
- הייצוא מתבצע בהתאם לדרישות ספציפיות למסגרת של אחד ממכלי ההסקות (inference) המובנים מראש
אם אתם מייבאים מודל טבלאי של AutoML שייצאתם בעבר, אתם צריכים להשתמש בקונטיינר מותאם אישית ספציפי שסופק על ידי Vertex AI.
אפשרות אחרת היא ליצור מאגר מותאם אישית חדש או להשתמש במאגר מותאם אישית קיים שנמצא ב-Artifact Registry.
העלאת ארטיפקטים של מודלים ל-Cloud Storage
צריך לאחסן את ארטיפקטים של המודל בקטגוריה של Cloud Storage, שבה האזור של הקטגוריה תואם לנקודת הקצה המיקומית שבה אתם משתמשים.
אם הקטגוריה שלכם ב-Cloud Storage נמצאת בפרויקט אחר, צריך לתת ל-Vertex AI גישה לקריאת ארטיפקטים של המודל. Google Cloud
אם אתם משתמשים במאגר תגים מוכן מראש, ודאו ששמות הקבצים של ארטיפקטים של המודל זהים בדיוק לדוגמאות הבאות:
- TensorFlow SavedModel:
saved_model.pb - PyTorch:
model.mar - scikit-learn:
model.joblib - XGBoost:
model.bstאוmodel.joblib
מידע נוסף על ייצוא של ארטיפקטים של מודלים לצורך הסקת מסקנות
ייבוא מודל באמצעות Google Cloud המסוף
כדי לייבא מודל באמצעות מסוף Google Cloud :
במסוף Google Cloud , נכנסים לדף Models של Vertex AI.
לוחצים על Import.
כדי לייבא מודל חדש, בוחרים באפשרות ייבוא כמודל חדש.
בוחרים באפשרות ייבוא כגרסה חדשה כדי לייבא מודל כגרסה של מודל קיים. מידע נוסף על ניהול גרסאות של מודלים זמין במאמר ניהול גרסאות של מודלים.
שם ואזור: מזינים שם למודל. בוחרים את האזור שתואם לאזור של הדלי ולנקודת הקצה של Vertex AI לפי מיקום שבה אתם משתמשים. לוחצים על Continue.
אם מרחיבים את אפשרויות מתקדמות, אפשר להוסיף מפתח הצפנה בניהול הלקוח.
בהתאם לסוג מאגר התגים שבו אתם משתמשים, בוחרים את הכרטיסייה המתאימה למטה.
מאגר מוכן מראש
בוחרים באפשרות ייבוא של ארטיפקטים של מודל למאגר חדש שנוצר מראש.
בוחרים את הפורמט של המודל ואת הגרסה של הפורמט של המודל שבהם השתמשתם כדי לאמן את המודל.
אם רוצים להשתמש ב-GPU להצגת היקשים, מגדירים את סוג המאיץ ל-GPU.
תבחרו את סוג ה-GPU בהמשך, כשתפרסו את המודל לנקודת קצה.
מציינים את הנתיב ב-Cloud Storage לספרייה שמכילה את ארטיפקטים של המודל.
לדוגמה,
gs://BUCKET_NAME/models/.משאירים את השדה Predict schemata (חיזוי סכימות) ריק.
כדי לייבא את המודל בלי הגדרות של Vertex AI ניתן להסברה, לוחצים על ייבוא.
אחרי שהייבוא מסתיים, המודל מופיע בדף מודלים.
אחרת, ממשיכים להגדיר את המודל על ידי הזנת הגדרות ההסבר שלו בכרטיסייה Explainability (הסבר). מידע נוסף על הגדרות ההסבר
מאגר תגים בהתאמה אישית
בוחרים באפשרות ייבוא מאגר תגים קיים בהתאמה אישית.
הגדרת ה-URI של קובץ אימג' של קונטיינר.
אם רוצים לספק ארטיפקטים של מודל בנוסף לתמונת קונטיינר, צריך לציין את הנתיב ב-Cloud Storage לספרייה שמכילה את הארטיפקטים של המודל.
לדוגמה,
gs://BUCKET_NAME/models/.מציינים ערכים בשדות אחרים.
כדי לייבא את המודל בלי הגדרות של Vertex AI ניתן להסברה, לוחצים על ייבוא.
אחרי שהייבוא מסתיים, המודל מופיע בדף מודלים.
אחרת, ממשיכים להגדיר את המודל על ידי הזנת הגדרות ההסבר שלו בכרטיסייה Explainability (הסבר). מידע נוסף על הגדרות ההסבר
AutoML tabular container
בוחרים באפשרות ייבוא מאגר תגים קיים בהתאמה אישית.
בשדה Container image (קובץ אימג' של קונטיינר), מזינים את הערך
MULTI_REGION-docker.pkg.dev/vertex-ai/automl-tabular/prediction-server-v1:latest.מחליפים את
MULTI_REGIONב-us, ב-europeאו ב-asiaכדי לבחור מאיזה מאגר Docker רוצים לשלוף את קובץ אימג' של Docker. כל מאגר מספק את אותו קובץ אימג' של Docker, אבל בחירה של Artifact Registry במספר אזורים שקרוב למחשב שבו מריצים את Docker עשויה להפחית את זמן האחזור.בשדה Package location (מיקום החבילה), מציינים את הנתיב ב-Cloud Storage לספרייה שמכילה את ארטיפקטים של המודל.
הנתיב ייראה דומה לדוגמה הבאה:
gs://BUCKET_NAME/models-MODEL_ID/tf-saved-model/TIMESTAMP/משאירים את כל שאר השדות ריקים.
לוחצים על Import.
אחרי שהייבוא מסתיים, המודל מופיע בדף מודלים. אפשר להשתמש במודל הזה בדיוק כמו במודלים אחרים של AutoML לנתונים טבלאיים, אבל מודלים של AutoML לנתונים טבלאיים שיובאו לא תומכים ב-Vertex AI ניתן להסברה.
ייבוא מודל באופן פרוגרמטי
בדוגמאות הבאות אפשר לראות איך מייבאים מודל באמצעות כלים שונים:
gcloud
בדוגמה הבאה משתמשים בפקודה gcloud ai models upload:
gcloud ai models upload \
--region=LOCATION \
--display-name=MODEL_NAME \
--container-image-uri=IMAGE_URI \
--artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY
מחליפים את מה שכתוב בשדות הבאים:
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI.
-
MODEL_NAME: שם מוצג ל-
Model. -
IMAGE_URI: ה-URI של קובץ אימג' של קונטיינר שמשמש להצגת היקשים.
לדוגמה,
us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-1:latest. משתמשים במאגר תגים מוכן מראש או במאגר תגים בהתאמה אישית. -
PATH_TO_MODEL_ARTIFACT_DIRECTORY: ה-URI של Cloud Storage (מתחיל ב-
gs://) של ספרייה ב-Cloud Storage שמכילה את הארטיפקטים של המודל.
בדוגמה הקודמת מוצגים כל הסימונים שנדרשים לייבוא של רוב המודלים. אם אתם לא משתמשים בקונטיינר מוכן מראש להסקת מסקנות, סביר להניח שתצטרכו לציין כמה דגלים אופציונליים נוספים כדי ש-Vertex AI יוכל להשתמש בקובץ האימג' של הקונטיינר. הדגלים האלה, שמתחילים ב---container-, תואמים לשדות של ModelcontainerSpec.
REST
בדוגמת הקוד הבאה מוסבר איך להעלות מודל באמצעות השיטה upload של משאב model.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION_ID: האזור שבו אתם משתמשים ב-Vertex AI.
- PROJECT_ID: מזהה הפרויקט.
-
MODEL_NAME: שם מוצג ל-
Model. - MODEL_DESCRIPTION: אופציונלי. תיאור של המודל.
-
IMAGE_URI: ה-URI של קובץ אימג' של קונטיינר שמשמש להצגת היקשים.
לדוגמה,
us-docker.pkg.dev/vertex-ai/prediction/tf2-cpu.2-1:latest. משתמשים במאגר תגים מוכן מראש או במאגר תגים בהתאמה אישית. -
PATH_TO_MODEL_ARTIFACT_DIRECTORY: ה-URI של Cloud Storage (מתחיל ב-
gs://) של ספרייה ב-Cloud Storage שמכילה את הארטיפקטים של המודל. המשתנה הזה והשדהartifactUriהם אופציונליים אם משתמשים במאגר תגים מותאם אישית. -
labels: אופציונלי. כל קבוצה של צמדי מפתח/ערך לארגון המודלים. לדוגמה:- "env": "prod"
- "tier": "backend"
- מציינים את LABEL_NAME ואת LABEL_VALUE של כל התוויות שרוצים להחיל על צינור האימון הזה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION_ID-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/models:upload
גוף בקשת JSON:
{
"model": {
"displayName": "MODEL_NAME",
"predictSchemata": {},
"containerSpec": {
"imageUri": "IMAGE_URI"
},
"artifactUri": "PATH_TO_MODEL_ARTIFACT_DIRECTORY",
"labels": {
"LABEL_NAME_1": "LABEL_VALUE_1",
"LABEL_NAME_2": "LABEL_VALUE_2"
}
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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/models:upload"
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/models:upload" | Select-Object -Expand Content
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.
כדי לייבא מודל עם הגדרות של Vertex AI ניתן להסברה מופעלות, אפשר לעיין בדוגמאות לייבוא מודלים של Vertex AI ניתן להסברה.
קבלת סטטוס פעולה
חלק מהבקשות מפעילות תהליכים ארוכים שדורשים זמן להשלמה. הבקשות האלה מחזירות שם פעולה, שאפשר להשתמש בו כדי לראות את סטטוס הפעולה או לבטל אותה. Vertex AI מספק שיטות עזר לביצוע קריאות לפעולות ממושכות. מידע נוסף זמין במאמר בנושא עבודה עם פעולות ממושכות.
מגבלות
- הגודל המקסימלי של מודל שנתמך ב-מרשם המודלים הוא 1TB.
המאמרים הבאים
- פריסת המודל לנקודת קצה, באמצעות תכנות או באמצעות מסוף Google Cloud .