כשמבצעים אימון ללא שרת ב-Vertex AI, צריך לציין איזה קוד של למידת מכונה (ML) רוצים ש-Vertex AI יריץ. כדי לעשות את זה, צריך להגדיר את ההגדרות של קונטיינר האימון עבור קונטיינר בהתאמה אישית או אפליקציית אימון של Python שפועלת בקונטיינר מוכן מראש.
כדי להחליט אם רוצים להשתמש במאגר תגים בהתאמה אישית או במאגר תגים מוכן מראש, כדאי לקרוא את המאמר דרישות קוד ההדרכה.
במסמך הזה מתוארים השדות ב-Vertex AI API שצריך לציין באחד מהמקרים הקודמים.
איפה מציינים את הגדרות המאגר
מציינים את פרטי ההגדרה בתוך WorkerPoolSpec. בהתאם לאופן שבו מבצעים אימון בלי שרת (serverless), צריך להזין את הערך WorkerPoolSpec באחד משדות ה-API הבאים:
אם יוצרים
CustomJobמשאב, מציינים אתWorkerPoolSpecב-CustomJob.jobSpec.workerPoolSpecs.אם אתם משתמשים ב-Google Cloud CLI, אתם יכולים להשתמש בדגל
--worker-pool-specאו בדגל--configבפקודהgcloud ai custom-jobs createכדי לציין אפשרויות של מאגר עובדים.אם יוצרים
HyperparameterTuningJobמשאב, מציינים אתWorkerPoolSpecב-HyperparameterTuningJob.trialJobSpec.workerPoolSpecs.אם אתם משתמשים ב-CLI של gcloud, אתם יכולים להשתמש בדגל
--configבפקודהgcloud ai hpt-tuning-jobs createכדי לציין אפשרויות של מאגר עובדים.אם יוצרים
TrainingPipelineמשאב בלי כוונון היפרפרמטרים, מציינים אתWorkerPoolSpecב-TrainingPipeline.trainingTaskInputs.workerPoolSpecs.אם יוצרים
TrainingPipelineעם כוונון של היפר-פרמטרים, צריך לציין אתWorkerPoolSpecב-TrainingPipeline.trainingTaskInputs.trialJobSpec.workerPoolSpecs.
אם אתם מבצעים אימון מבוזר, אתם יכולים להשתמש בהגדרות שונות לכל מאגר עובדים.
קביעת הגדרות של קונטיינר
בהתאם לסוג מאגר התגים שבו אתם משתמשים (מאגר תגים מוכן מראש או מאגר תגים בהתאמה אישית), אתם צריכים לציין שדות שונים בתוך WorkerPoolSpec. בוחרים את הכרטיסייה של התרחיש הרלוונטי:
מאגר מוכן מראש
בוחרים מאגר תגים מוכן מראש שתומך במסגרת ה-ML שבה אתם מתכננים להשתמש לצורך אימון. מציינים אחת מכתובות ה-URI של תמונת הקונטיינר בשדה
pythonPackageSpec.executorImageUri.מציינים את מזהי ה-URI של Cloud Storage של אפליקציית ההדרכה של Python בשדה
pythonPackageSpec.packageUris.מציינים את מודול נקודת הכניסה של אפליקציית האימון בשדה
pythonPackageSpec.pythonModule.אפשר גם לציין רשימה של ארגומנטים בשורת הפקודה להעברה למודול נקודת הכניסה של אפליקציית האימון בשדה
pythonPackageSpec.args.
בדוגמאות הבאות אפשר לראות איפה מציינים את הגדרות הקונטיינר האלה כשיוצרים CustomJob:
המסוף
במסוף Google Cloud אי אפשר ליצור CustomJob ישירות. עם זאת, אפשר ליצור TrainingPipeline שיוצר CustomJob. כשיוצרים TrainingPipeline ב- Google Cloud console, אפשר לציין הגדרות מוכנות מראש של מאגר תגים בשדות מסוימים בשלב Training container (מאגר תגים לאימון):
pythonPackageSpec.executorImageUri: משתמשים בתפריטים הנפתחים Model framework ו-Model framework version.
pythonPackageSpec.packageUris: משתמשים בשדה מיקום החבילה.
pythonPackageSpec.pythonModule: משתמשים בשדה Python module.
pythonPackageSpec.args: משתמשים בשדה Arguments (ארגומנטים).
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--python-package-uris=PYTHON_PACKAGE_URIS \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,executor-image-uri=PYTHON_PACKAGE_EXECUTOR_IMAGE_URI,python-module=PYTHON_MODULE
לקבלת מידע נוסף, אפשר לקרוא את המדריך ליצירת CustomJob.
מאגר תגים בהתאמה אישית
מציינים את ה-URI של Artifact Registry או Docker Hub של המאגר המותאם אישית בשדה
containerSpec.imageUri.אם רוצים לשנות את ההוראות של
ENTRYPOINTאוCMDבמאגר התגים, מציינים את השדותcontainerSpec.commandאוcontainerSpec.args. השדות האלה משפיעים על אופן ההפעלה של מאגר התגים בהתאם לכללים הבאים:אם לא מציינים אף אחד מהשדות: מאגר התגים יפעל בהתאם להוראה
ENTRYPOINTולהוראהCMD(אם היא קיימת). במאמרי העזרה של Docker מוסבר איךCMDו-ENTRYPOINTפועלים יחד.אם מציינים רק
containerSpec.command: מאגר התגים יפעל עם הערך שלcontainerSpec.commandבמקום ההוראהENTRYPOINT. אם מאגר התגים מכיל הוראהCMD, המערכת מתעלמת ממנה.אם מציינים רק
containerSpec.args: מאגר התגים פועל לפי ההוראהENTRYPOINT, והערך שלcontainerSpec.argsמחליף את ההוראהCMD.אם מציינים את שני השדות: מאגר התגים מופעל עם
containerSpec.commandבמקום ההוראהENTRYPOINTועםcontainerSpec.argsבמקום ההוראהCMD.
בדוגמה הבאה אפשר לראות איפה מציינים חלק מההגדרות האלה של מאגר התגים כשיוצרים CustomJob:
המסוף
במסוף Google Cloud אי אפשר ליצור CustomJob ישירות. עם זאת, אפשר ליצור TrainingPipeline שיוצר CustomJob. כשיוצרים TrainingPipeline במסוף Google Cloud , אפשר לציין הגדרות מותאמות אישית של מאגר תגים בשדות מסוימים בשלב Training container (מאגר תגים לאימון):
containerSpec.imageUri: משתמשים בשדה Container image (קובץ אימג' של קונטיינר).
containerSpec.command: אי אפשר להגדיר את שדה ה-API הזה ב-Google Cloud Console.
containerSpec.args: משתמשים בשדה Arguments (ארגומנטים).
gcloud
gcloud ai custom-jobs create \
--region=LOCATION \
--display-name=JOB_NAME \
--worker-pool-spec=machine-type=MACHINE_TYPE,replica-count=REPLICA_COUNT,container-image-uri=CUSTOM_CONTAINER_IMAGE_URI
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.
לקבלת מידע נוסף, אפשר לקרוא את המדריך ליצירת CustomJob.
המאמרים הבאים
- כך יוצרים
CustomJobומבצעים אימון בלי שרתים.