כדי להתאים אישית את האופן שבו Agent Platform מציגה הסקות אונליין מהמודל המותאם אישית שאומן, אתם יכולים לציין קונטיינר בהתאמה אישית במקום קונטיינר בנוי מראש כשאתם יוצרים משאב Model. כשמשתמשים בקונטיינר בהתאמה אישית, פלטפורמת הסוכנים מריצה קונטיינר 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. ציינו תקציר (
IMAGE@sha256:DIGEST), תג (IMAGE:TAG) או אף אחד מהם (ברירת המחדל היא:latest). אל תציינו גם תג וגם תקציר באותו URI. לפרטים נוספים, ראו פורמט URI של תמונה.אם אתם משתמשים בפקודה
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 שולחת בדיקות פעילות, בדיקות תקינות ובקשות להסקת מסקנות לקונטיינר ביציאה הראשונה שמופיעה ברשימה, או ביציאה
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 תעביר בקשות להסקת מסקנות.
אם לא מציינים את השדה הזה, כשפורסים את
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(אופציונלי) הפעלת קידומת הנתיב של הקונטיינר בהתאמה אישית. הגדרת השדה הזה לערך "/*" מפעילה ניתוב שרירותי למודל. אחרי הפריסה, כל נתיב שאינו ברמה הבסיסית (root) בשרת המודל יהיה נגיש באמצעות קריאת HTTP להפעלה. לדוגמה, "/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(אופציונלי) מפרט של הבדיקה שבודקת אם קונטיינר מוכן לקבל תנועה.
אם אתם משתמשים בפקודה
gcloud ai models upload, אתם יכולים להשתמש בדגל--container-health-probe-exec, --container-health-probe-period-seconds, --container-health-probe-timeout-secondsכדי לציין את השדה הזה.
בנוסף למשתנים שאתם מגדירים בשדה Model.containerSpec.env, פלטפורמת Agent מגדירה עוד כמה משתנים על סמך ההגדרות שלכם. איך משתמשים במשתני הסביבה בשדות האלה ובהוראה 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. מידע נוסף מופיע במאמרי העזרה של ה-API מבוסס-Python.
למידע נוסף, קראו את המדריך לייבוא מודלים.
שליחת בקשות להסקת מסקנות
כדי לשלוח בקשת הסקה אונליין אל Model, פועלים לפי ההוראות במאמר קבלת הסקות ממודל שעבר אימון בהתאמה אישית: התהליך הזה פועל באותו אופן גם אם משתמשים בקונטיינר בהתאמה אישית.
הדרישות לגבי בקשות ותגובות לחיזוי בקונטיינרים בהתאמה אישית
המאמרים הבאים
- במאמר דרישות לגבי קונטיינרים בהתאמה אישית מוסבר מה צריך להביא בחשבון כשמתכננים קונטיינר בהתאמה אישית ל שימוש עם Agent Platform.