בדף הזה מוסבר איך לאמן מודל סיווג של AutoML ממערך נתונים של תמונות באמצעות Google Cloud המסוף או Vertex AI API.
אימון מודל AutoML
מסוף Google Cloud
במסוף Google Cloud , בקטע Vertex AI, עוברים לדף Datasets.
לוחצים על שם מערך הנתונים שבו רוצים להשתמש כדי לאמן את המודל, כדי לפתוח את דף הפרטים שלו.
לוחצים על Train new model (אימון מודל חדש).
בשיטת האימון, בוחרים באפשרות AutoML.
לוחצים על Continue.
מזינים שם למודל.
אם רוצים להגדיר באופן ידני את אופן החלוקה של נתוני האימון, מרחיבים את האפשרויות המתקדמות ובוחרים באפשרות של חלוקת נתונים. מידע נוסף
לוחצים על התחלת ההדרכה.
אימון המודל יכול להימשך שעות רבות, בהתאם לגודל ולמורכבות של הנתונים ולתקציב האימון, אם ציינתם תקציב כזה. אפשר לסגור את הכרטיסייה הזו ולחזור אליה מאוחר יותר. תקבלו אימייל כשהאימון של המודל יסתיים.
API
בוחרים את הכרטיסייה שלמטה שמתאימה ליעד שלכם:
סיווג
בוחרים את הכרטיסייה של השפה או הסביבה שלכם:
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: האזור שבו נמצא מערך הנתונים והמודל נוצר. לדוגמה:
us-central1. - PROJECT: מזהה הפרויקט.
- TRAININGPIPELINE_DISPLAYNAME: חובה. שם תצוגה ל-trainingPipeline.
- DATASET_ID: מספר המזהה של מערך הנתונים שמשמש לאימון.
-
fractionSplit: אופציונלי. אחת מכמה אפשרויות לשימוש בלמידת מכונה (ML)לפיצול הנתונים. במקרה של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הוראות ההגדרה במאמר 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.
סיווג
בוחרים את הכרטיסייה של השפה או הסביבה שלכם:
REST
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- LOCATION: האזור שבו נמצא מערך הנתונים והמודל נוצר. לדוגמה:
us-central1. - PROJECT: .
- TRAININGPIPELINE_DISPLAYNAME: חובה. שם תצוגה ל-trainingPipeline.
- DATASET_ID: מספר המזהה של מערך הנתונים שמשמש לאימון.
-
fractionSplit: אופציונלי. אחת מכמה אפשרויות לשימוש בלמידת מכונה (ML)לפיצול הנתונים. במקרה של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הוראות ההגדרה במאמר 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.
שליטה בפיצול הנתונים באמצעות REST
אתם יכולים לשלוט באופן שבו נתוני האימון מחולקים בין קבוצות האימון, האימות והבדיקה. כשמשתמשים ב-Vertex AI 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"
}