כדי להתאים אישית את האופן שבו Agent Platform מפיק מסקנות אונליין מהמודל המותאם אישית שאומן, אפשר לציין מאגר תגים מותאם אישית במקום מאגר תגים מוכן מראש כשיוצרים משאב Model. כשמשתמשים במאגר תגים בהתאמה אישית, Agent Platform מריץ מאגר Docker לבחירתכם בכל צומת של הסקה.
כדאי להשתמש במאגר תגים בהתאמה אישית מהסיבות הבאות:
- כדי להכניס לשימוש בסביבת הייצור היקשים ממודל ML שאומן באמצעות framework שלא זמין כקונטיינר מוכן מראש
- כדי לבצע עיבוד מקדים של בקשות להסקת מסקנות או עיבוד שלאחר הסקת המסקנות שנוצרו על ידי המודל
- להפעיל שרת הסקה שנכתב בשפת תכנות לבחירתכם
- כדי להתקין יחסי תלות שרוצים להשתמש בהם כדי להתאים אישית את ההסקות
במדריך הזה מוסבר איך ליצור מודל שמשתמש בקונטיינר מותאם אישית. הוא לא מספק הוראות מפורטות לגבי עיצוב ויצירה של קובץ אימג' לקונטיינר של Docker.
הכנת קובץ אימג' של קונטיינר
כדי ליצור Model שמשתמש בקונטיינר בהתאמה אישית, צריך לספק קובץ אימג' של קונטיינר Docker כבסיס לקונטיינר הזה. קובץ אימג' של קונטיינר זה חייב לעמוד בדרישות שמתוארות במאמר בנושא דרישות לגבי קונטיינר בהתאמה אישית.
אם אתם מתכננים להשתמש בתמונה קיימת של מאגר שיצר צד שלישי שאתם סומכים עליו, יכול להיות שתוכלו לדלג על אחד מהקטעים הבאים או על שניהם.
יצירת קובץ אימג' של קונטיינר
מעצבים ויוצרים קובץ אימג' של קונטיינר Docker שעומד בדרישות של קובץ אימג' של קונטיינר.
כדי ללמוד את היסודות של עיצוב ויצירה של קובץ אימג' של קונטיינר Docker, אפשר לקרוא את המדריך לתחילת העבודה של Docker.
העברת קובץ האימג' של הקונטיינר אל Artifact Registry
מעבירים בדחיפה את קובץ אימג' של קונטיינר למאגר Artifact Registry.
איך מעבירים קובץ אימג' של קונטיינר ל-Artifact Registry
יצירת Model
כדי ליצור Model שמשתמש במאגר תגים בהתאמה אישית, אפשר לבצע אחת מהפעולות הבאות:
בסעיפים הבאים מוסבר איך להגדיר את שדות ה-API שקשורים למאגרי תגים בהתאמה אישית כשיוצרים Model באחת מהדרכים האלה.
שדות API שקשורים לקונטיינרים
כשיוצרים את Model, חשוב להגדיר את containerSpecהשדה עם פרטי מאגר התגים המותאם אישית ולא עם מאגר תגים מוכן מראש.
חובה לציין ModelContainerSpecהודעה בשדה Model.containerSpec. בהודעה הזו אפשר לציין את שדות המשנה הבאים:
imageUri(חובה)ה-URI של קובץ אימג' של קונטיינר ב-Artifact Registry.
אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-image-uriכדי לציין את השדה הזה.command(אופציונלי)מערך של קובץ הפעלה וארגומנטים לשינוי ההוראה
ENTRYPOINTשל מאגר התגים. מידע נוסף על הפורמט של השדה הזה ועל האינטראקציה שלו עם השדהargsזמין בהפניית ה-API בנושאModelContainerSpec.אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-commandכדי לציין את השדה הזה.args(אופציונלי)מערך של קובץ הפעלה וארגומנטים לביטול ברירת המחדל של הקטע
CMDשל הקונטיינר. מידע נוסף על הפורמט של השדה הזה ועל האינטראקציה שלו עם השדהcommandזמין בהפניה ל-API שלModelContainerSpec.אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-argsכדי לציין את השדה הזה.ports(אופציונלי)מערך של יציאות; Agent Platform שולחת בדיקות פעילות, בדיקות תקינות ובקשות היקש אל הקונטיינר שלכם ביציאה הראשונה שמופיעה ברשימה, או
8080כברירת מחדל. ציון יציאות נוספות לא משפיע על התהליך.אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-portsכדי לציין את השדה הזה.env(אופציונלי)מערך של משתני סביבה שההוראה
ENTRYPOINTשל הקונטיינר, וגם השדותcommandו-args, יכולים להפנות אליהם. מידע נוסף על האופן שבו שדות אחרים יכולים להפנות למשתני הסביבה האלה זמין בהפניית ה-API ל-ModelContainerSpec.אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-env-varsכדי לציין את השדה הזה.healthRoute(אופציונלי)הנתיב בשרת ה-HTTP של קונטיינר שבו רוצים ש-Agent Platform תשלח בדיקות תקינות.
אם לא מציינים את השדה הזה, כשפורסים את
ModelכDeployedModelלמשאבEndpoint, ברירת המחדל היא/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL, כאשר ENDPOINT מוחלף בפלח האחרון של השדהnameשלEndpoint(אחריendpoints/), ו-DEPLOYED_MODEL מוחלף בהשדהidשלDeployedModel.אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-health-routeכדי לציין את השדה הזה.predictRoute(אופציונלי)הנתיב בשרת ה-HTTP של הקונטיינר שבו רוצים ש-Agent Platform תעביר בקשות היקש.
אם לא מציינים את השדה הזה, כשפורסים את
ModelכDeployedModelלמשאבEndpoint, ברירת המחדל היא/v1/endpoints/ENDPOINT/deployedModels/DEPLOYED_MODEL:predict, כאשר ENDPOINT מוחלף בפלח האחרון של השדהnameשלEndpoint(אחריendpoints/), ו-DEPLOYED_MODEL מוחלף בהשדהidשלDeployedModel.אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-predict-routeכדי לציין את השדה הזה.invokeRoutePrefix(אופציונלי)מפעילים את קידומת המסלול עבור הקונטיינר המותאם אישית. הגדרת השדה הזה ל-"/*" מאפשרת ניתוב שרירותי של המודל. אחרי הפריסה, אפשר לגשת לכל נתיב שאינו נתיב הבסיס בשרת המודל באמצעות קריאה ל-HTTP של invoke. לדוגמה, /invoke/foo/bar יועבר כ-/foo/bar לשרת המודל. התכונה הזו נמצאת בשלב של Public Preview. כדי ליצור מודל עם הפעלה, פועלים לפי ההוראות לשימוש בנתיבים מותאמים אישית שרירותיים.
sharedMemorySizeMb(אופציונלי)נפח הזיכרון של המכונה הווירטואלית שצריך לשריין בנפח זיכרון משותף עבור המודל, במגה-בייט.
זיכרון משותף הוא מנגנון תקשורת בין תהליכים (IPC) שמאפשר לכמה תהליכים לגשת לבלוק זיכרון משותף ולבצע בו מניפולציות. כמות הזיכרון המשותף שנדרשת, אם בכלל, היא פרט הטמעה של הקונטיינר והמודל. הנחיות זמינות במסמכי התיעוד של שרת המודלים.
אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-shared-memory-size-mbכדי לציין את השדה הזה.startupProbe(אופציונלי)מפרט של הבדיקה שבודקת אם אפליקציית הקונטיינר הופעלה.
אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-startup-probe-exec, --container-startup-probe-period-seconds, --container-startup-probe-timeout-secondsכדי לציין את השדה הזה.healthProbe(אופציונלי)המפרט של בקשה לבדיקת תקינות (probe) שבודקת אם קונטיינר מוכן לקבל תעבורת נתונים.
אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-health-probe-exec, --container-health-probe-period-seconds, --container-health-probe-timeout-secondsכדי לציין את השדה הזה.
בנוסף למשתנים שאתם מגדירים בשדה Model.containerSpec.env, Agent Platform מגדירה כמה משתנים אחרים על סמך ההגדרה שלכם. מידע נוסף על השימוש במשתני הסביבה האלה בשדות האלה ובהוראה ENTRYPOINT של הקונטיינר
דוגמאות לייבוא מודלים
בדוגמאות הבאות מוסבר איך מציינים שדות API שקשורים לקונטיינר כשמייבאים מודל.
gcloud
בדוגמה הבאה משתמשים בפקודה gcloud ai models upload:
gcloud ai models upload \
--region=LOCATION \
--display-name=MODEL_NAME \
--container-image-uri=IMAGE_URI \
--container-command=COMMAND \
--container-args=ARGS \
--container-ports=PORTS \
--container-env-vars=ENV \
--container-health-route=HEALTH_ROUTE \
--container-predict-route=PREDICT_ROUTE \
--container-shared-memory-size-mb=SHARED_MEMORY_SIZE \
--container-startup-probe-exec=STARTUP_PROBE_EXEC \
--container-startup-probe-period-seconds=STARTUP_PROBE_PERIOD \
--container-startup-probe-timeout-seconds=STARTUP_PROBE_TIMEOUT \
--container-health-probe-exec=HEALTH_PROBE_EXEC \
--container-health-probe-period-seconds=HEALTH_PROBE_PERIOD \
--container-health-probe-timeout-seconds=HEALTH_PROBE_TIMEOUT \
--artifact-uri=PATH_TO_MODEL_ARTIFACT_DIRECTORY
חובה להשתמש בדגל --container-image-uri, וכל הדגלים האחרים שמתחילים ב---container- הם אופציונליים. מידע על הערכים של השדות האלה מופיע בקטע הקודם במדריך הזה.
Java
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaההוראות להגדרה במאמר מדריך למתחילים של Agent Platform באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Node.js
לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Node.jsההוראות להגדרה במאמר מדריך למתחילים של Agent Platform באמצעות ספריות לקוח.
כדי לבצע אימות ב-Agent Platform, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.
Python
במאמר התקנת Vertex AI SDK ל-Python מוסבר איך להתקין או לעדכן את Vertex AI SDK ל-Python. מידע נוסף מופיע ב מאמרי העזרה של Python API.
לקבלת הקשר נוסף, אפשר לקרוא את המדריך לייבוא מודלים.
שליחת בקשות להסקת מסקנות
כדי לשלוח בקשת הסקה אונליין אל Model, פועלים לפי ההוראות במאמר קבלת הסקות ממודל שאומן בהתאמה אישית. התהליך הזה זהה בין אם משתמשים במאגר מותאם אישית ובין אם לא.
מידע על הדרישות לגבי בקשות ותגובות של תחזיות עבור מאגרי תגים מותאמים אישית
המאמרים הבאים
- כדי ללמוד על כל מה שצריך לקחת בחשבון כשמעצבים קונטיינר בהתאמה אישית לשימוש עם Agent Platform, קראו את דרישות לגבי קונטיינר בהתאמה אישית.