בדף הזה מוסבר איך לאמן מודל סיווג של AutoML מתוך מערך נתונים של תמונות באמצעות Google Cloud המסוף או Agent Platform API.
אימון מודל AutoML
מסוף Google Cloud
במסוף Google Cloud , בקטע Agent Platform, עוברים לדף Datasets.
לוחצים על שם מערך הנתונים שבו רוצים להשתמש כדי לאמן את המודל, כדי לפתוח את דף הפרטים שלו.
לוחצים על Train new model (אימון מודל חדש).
בקטע 'שיטת האימון', בוחרים באפשרות AutoML.
לוחצים על Continue.
מזינים שם למודל.
אם רוצים להגדיר ידנית את אופן החלוקה של נתוני האימון, מרחיבים את האפשרויות המתקדמות ובוחרים באפשרות של חלוקת נתונים. מידע נוסף זמין במאמר מידע על פיצול נתונים למודלים של AutoML.
לוחצים על התחלת ההדרכה.
אימון המודל יכול להימשך שעות רבות, בהתאם לגודל ולמורכבות של הנתונים ולתקציב האימון, אם ציינתם תקציב כזה. אפשר לסגור את הכרטיסייה הזו ולחזור אליה מאוחר יותר. תקבלו אימייל כשהאימון של המודל יסתיים.
API
בוחרים את הכרטיסייה שלמטה שמתאימה ליעד שלכם:
סיווג
בוחרים את הכרטיסייה של השפה או הסביבה שלכם:
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: האזור שבו נמצא מערך הנתונים ושבו נוצר המודל. לדוגמה:
us-central1. - PROJECT: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers). .
- TRAININGPIPELINE_DISPLAYNAME: שדה חובה. שם תצוגה ל-trainingPipeline.
- DATASET_ID: מספר המזהה של מערך הנתונים שמשמש לאימון.
-
fractionSplit: אופציונלי. אחת מכמה אפשרויות אפשריות לשימוש בלמידה חישוביתלפיצול הנתונים. במקרה שלfractionSplit, סכום הערכים צריך להיות 1. לדוגמה:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*: שם תצוגה של המודל שהועלה (נוצר) על ידי TrainingPipeline.
- MODEL_DESCRIPTION*: תיאור של המודל.
- modelToUpload.labels*: כל קבוצה של זוגות מפתח/ערך לארגון המודלים. לדוגמה:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†: סוג המודל שמתארח בענן לאימון. האפשרויות הן:
CLOUD(ברירת מחדל)
- NODE_HOUR_BUDGET†: עלות האימון בפועל תהיה שווה לערך הזה או נמוכה ממנו. במודלים של Cloud, התקציב צריך להיות בין 8,000 ל-800,000 שעות מילי-נוד (כולל). ערך ברירת המחדל הוא 192,000, שמייצג יום אחד בזמן בפועל, בהנחה שנעשה שימוש ב-8 צמתים.
- PROJECT_NUMBER: מספר הפרויקט שנוצר באופן אוטומטי
| * | התיאור של קובץ הסכימה שציינתם ב-trainingTaskDefinition מתאר את השימוש בשדה הזה. |
| † | קובץ הסכימה שציינתם ב-trainingTaskDefinition מכריז על השדה הזה ומתאר אותו. |
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
גוף בקשת JSON:
{
"displayName": "TRAININGPIPELINE_DISPLAYNAME",
"inputDataConfig": {
"datasetId": "DATASET_ID",
"fractionSplit": {
"trainingFraction": "DECIMAL",
"validationFraction": "DECIMAL",
"testFraction": "DECIMAL"
}
},
"modelToUpload": {
"displayName": "MODEL_DISPLAYNAME",
"description": "MODEL_DESCRIPTION",
"labels": {
"KEY": "VALUE"
}
},
"trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_classification_1.0.0.yaml",
"trainingTaskInputs": {
"multiLabel": "false",
"modelType": ["MODELTYPE"],
"budgetMilliNodeHours": NODE_HOUR_BUDGET
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"
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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
התשובה מכילה מידע על המפרטים וגם על TRAININGPIPELINE_ID.
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.
סיווג
בוחרים את הכרטיסייה של השפה או הסביבה שלכם:
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: האזור שבו נמצא מערך הנתונים ושבו נוצר המודל. לדוגמה:
us-central1. - PROJECT: .
- TRAININGPIPELINE_DISPLAYNAME: שדה חובה. שם תצוגה ל-trainingPipeline.
- DATASET_ID: מספר המזהה של מערך הנתונים שמשמש לאימון.
-
fractionSplit: אופציונלי. אחת מכמה אפשרויות אפשריות לשימוש בלמידה חישוביתלפיצול הנתונים. במקרה שלfractionSplit, סכום הערכים צריך להיות 1. לדוגמה:-
{"trainingFraction": "0.7","validationFraction": "0.15","testFraction": "0.15"}
-
- MODEL_DISPLAYNAME*: שם תצוגה של המודל שהועלה (נוצר) על ידי TrainingPipeline.
- MODEL_DESCRIPTION*: תיאור של המודל.
- modelToUpload.labels*: כל קבוצה של זוגות מפתח/ערך לארגון המודלים. לדוגמה:
- "env": "prod"
- "tier": "backend"
- MODELTYPE†: סוג המודל שמתארח בענן לאימון. האפשרויות הן:
CLOUD(ברירת מחדל)
- NODE_HOUR_BUDGET†: עלות האימון בפועל תהיה שווה לערך הזה או נמוכה ממנו. במודלים של Cloud, התקציב צריך להיות בין 8,000 ל-800,000 שעות מילי-נוד (כולל). ערך ברירת המחדל הוא 192,000, שמייצג יום אחד בזמן בפועל, בהנחה שנעשה שימוש ב-8 צמתים.
- PROJECT_NUMBER: מספר הפרויקט שנוצר באופן אוטומטי
| * | התיאור של קובץ הסכימה שציינתם ב-trainingTaskDefinition מתאר את השימוש בשדה הזה. |
| † | קובץ הסכימה שציינתם ב-trainingTaskDefinition מכריז על השדה הזה ומתאר אותו. |
ה-method של ה-HTTP וכתובת ה-URL:
POST https://LOCATION-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines
גוף בקשת JSON:
{
"displayName": "TRAININGPIPELINE_DISPLAYNAME",
"inputDataConfig": {
"datasetId": "DATASET_ID",
"fractionSplit": {
"trainingFraction": "DECIMAL",
"validationFraction": "DECIMAL",
"testFraction": "DECIMAL"
}
},
"modelToUpload": {
"displayName": "MODEL_DISPLAYNAME",
"description": "MODEL_DESCRIPTION",
"labels": {
"KEY": "VALUE"
}
},
"trainingTaskDefinition": "gs://google-cloud-aiplatform/schema/trainingjob/definition/automl_image_classification_1.0.0.yaml",
"trainingTaskInputs": {
"multiLabel": "true",
"modelType": ["MODELTYPE"],
"budgetMilliNodeHours": NODE_HOUR_BUDGET
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines"
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-aiplatform.googleapis.com/v1/projects/PROJECT/locations/LOCATION/trainingPipelines" | Select-Object -Expand Content
התשובה מכילה מידע על המפרטים וגם על TRAININGPIPELINE_ID.
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.
שליטה בפיצול הנתונים באמצעות REST
אתם יכולים לשלוט באופן שבו נתוני האימון מחולקים בין קבוצות האימון, האימות והבדיקה. כשמשתמשים ב-Agent Platform API, משתמשים באובייקט Split כדי לקבוע את חלוקת הנתונים. אפשר לכלול את האובייקט Split באובייקט InputConfig כאחד מכמה סוגי אובייקטים, שכל אחד מהם מספק דרך שונה לפצל את נתוני האימון. אפשר לבחור רק שיטה אחת.
-
FractionSplit:- TRAINING_FRACTION: השבר של נתוני האימון שישמשו כקבוצת נתונים לאימון.
- VALIDATION_FRACTION: השבר של נתוני האימון שישמשו לקבוצת נתונים לתיקוף. לא משמש לנתוני סרטונים.
- TEST_FRACTION: החלק מנתוני האימון שישמשו לקבוצת נתונים לבדיקה.
אם מציינים אחד מהשברים, צריך לציין את כולם. סכום השברים צריך להיות 1.0. ערכי ברירת המחדל של השברים משתנים בהתאם לסוג הנתונים. מידע נוסף
"fractionSplit": { "trainingFraction": TRAINING_FRACTION, "validationFraction": VALIDATION_FRACTION, "testFraction": TEST_FRACTION }, -
FilterSplit:- TRAINING_FILTER: פריטי נתונים שתואמים למסנן הזה משמשים לקבוצת נתונים לאימון.
- VALIDATION_FILTER: פריטי נתונים שתואמים למסנן הזה משמשים לקבוצת נתונים לתיקוף. הערך חייב להיות '-' כשמדובר בנתוני סרטונים.
- TEST_FILTER: פריטי נתונים שתואמים למסנן הזה משמשים לקבוצת נתונים לבדיקה.
אפשר להשתמש במסננים האלה עם התווית ml_use או עם כל תוויות אחרות שאתם מוסיפים לנתונים. מידע נוסף על שימוש בתווית ml-use ובתוויות אחרות לסינון הנתונים
בדוגמה הבאה אפשר לראות איך משתמשים באובייקט filterSplit
עם התווית ml_use, עם קבוצת האימות שמוגדרת:
"filterSplit": {
"trainingFilter": "labels.aiplatform.googleapis.com/ml_use=training",
"validationFilter": "labels.aiplatform.googleapis.com/ml_use=validation",
"testFilter": "labels.aiplatform.googleapis.com/ml_use=test"
}