כוונון מודלים הוא תהליך חיוני להתאמת Gemini לביצוע משימות ספציפיות בדיוק ובאמינות גבוהים יותר. כדי לשפר את המודל, מספקים לו מערך נתונים לאימון שמכיל קבוצה של דוגמאות למשימות ספציפיות במורד הזרם.
אפשר להשתמש ב-Gemini tuning API בתרחישי השימוש הבאים:
מודלים נתמכים:
אפשר להשתמש בשיטת הכוונון המפוקח (SFT) במודלים הבאים של Gemini:
יש גם תמיכה ב-Translation LLM V2 (translation-llm-002).
תחביר לדוגמה
תחביר לכוונון מודל.
curl
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs \ -d '{ "baseModel": "...", "supervisedTuningSpec" : { ... "hyper_parameters": { ... }, }, "tunedModelDisplayName": "", }'
רשימת הפרמטרים
פרטים על ההטמעה מופיעים בדוגמאות.
גוף הבקשה
גוף הבקשה מכיל נתונים עם הפרמטרים הבאים:
| פרמטרים | |
|---|---|
|
שם מודל הבסיס שמבצעים לו כוונון. |
|
השם המוצג של |
supervisedTuningSpec
| פרמטרים | |
|---|---|
|
URI של Cloud Storage של מערך נתוני האימון. מערך הנתונים צריך להיות בפורמט של קובץ JSONL. כדי לקבל את התוצאות הכי טובות, מומלץ לספק לפחות 100 עד 500 דוגמאות. מידע נוסף זמין במאמר מידע על מערכי נתונים לשיפור מודלים בפיקוח. |
|
URI של Cloud Storage של מערך הנתונים לאימות. מערך הנתונים צריך להיות בפורמט של קובץ JSONL. קבוצת נתונים יכולה להכיל עד 256 דוגמאות. אם תספקו את הקובץ הזה, המערכת תשתמש בנתונים כדי ליצור מדדי אימות מעת לעת במהלך הכוונון העדין. מידע נוסף זמין במאמר מידע על מערכי נתונים מבוקרים להתאמה אישית . |
|
מספר המעברים המלאים שהמודל מבצע על מערך הנתונים המלא לאימון במהלך האימון. מערכת Vertex AI משנה אוטומטית את ערך ברירת המחדל בהתאם לגודל של מערך הנתונים לאימון. הערך הזה מבוסס על תוצאות השוואה לשוק כדי לשפר את איכות הפלט של המודל. |
|
מקדם להתאמת קצב הלמידה שמוגדר כברירת מחדל. |
|
גודל המתאם לשינוי התדר. |
|
השם המוצג של |
AdapterSize
גודל המתאם למשימת כוונון.
| פרמטרים | |
|---|---|
|
גודל המתאם לא צוין. |
|
גודל המתאם 1. |
|
גודל המתאם 4. |
|
גודל המתאם 8. |
|
גודל המתאם 16. |
דוגמאות
יצירת משימת כוונון בפיקוח
אפשר ליצור משימת כוונון של מודל טקסט מפוקח באמצעות Vertex AI SDK ל-Python או באמצעות שליחת בקשת POST.
תרחיש שימוש בסיסי
במקרה השימוש הבסיסי מוגדרים רק הערכים baseModel ו-training_dataset_uri.
כל שאר הפרמטרים משתמשים בערכי ברירת המחדל.
REST
כדי ליצור משימת כוונון מודל, שולחים בקשת POST באמצעות ה-method tuningJobs.create.
הערה: חלק מהפרמטרים לא נתמכים בכל המודלים. חשוב לוודא שאתם כוללים רק את הפרמטרים הרלוונטיים למודל שאתם מכווננים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט.
- TUNING_JOB_REGION: האזור שבו פועלת משימת ההתאמה. זה גם האזור שמוגדר כברירת מחדל להעלאת המודל שעבר התאמה.
- BASE_MODEL: השם של המודל הבסיסי שרוצים לכוונן.
- TRAINING_DATASET_URI: ה-URI של מערך הנתונים לאימון ב-Cloud Storage. מערך הנתונים צריך להיות בפורמט של קובץ JSONL. כדי לקבל את התוצאות הכי טובות, מומלץ לספק לפחות 100 עד 500 דוגמאות. מידע נוסף זמין במאמר מידע על מערכי נתונים מבוקרים להתאמה אישית .
ה-method של ה-HTTP וכתובת ה-URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
גוף בקשת JSON:
{
"baseModel": "BASE_MODEL",
"supervisedTuningSpec" : {
"training_dataset_uri": "TRAINING_DATASET_URI"
},
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
Python
תרחיש שימוש מתקדם
תרחיש השימוש המתקדם הוא הרחבה של תרחיש השימוש הבסיסי, אבל הוא גם מגדיר ערכים לhyper_parameters אופציונליים, כמו epoch_count, learning_rate_multiplier ו-adapter_size.
REST
כדי ליצור משימת כוונון מודל, שולחים בקשת POST באמצעות ה-method tuningJobs.create.
הערה: חלק מהפרמטרים לא נתמכים בכל המודלים. חשוב לוודא שאתם כוללים רק את הפרמטרים הרלוונטיים למודל שאתם מכווננים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט.
- TUNING_JOB_REGION: האזור שבו פועלת משימת ההתאמה. זה גם האזור שמוגדר כברירת מחדל להעלאת המודל שעבר התאמה.
- BASE_MODEL: השם של המודל הבסיסי שרוצים לכוונן.
- TRAINING_DATASET_URI: ה-URI של מערך הנתונים לאימון ב-Cloud Storage. מערך הנתונים צריך להיות בפורמט של קובץ JSONL. כדי לקבל את התוצאות הכי טובות, מומלץ לספק לפחות 100 עד 500 דוגמאות. מידע נוסף זמין במאמר מידע על מערכי נתונים מבוקרים להתאמה אישית .
- VALIDATION_DATASET_URIאופציונלי: ה-URI של Cloud Storage של קובץ מערך הנתונים של האימות.
- EPOCH_COUNTאופציונלי: מספר המעברים המלאים שהמודל מבצע על מערך הנתונים המלא לאימון במהלך האימון. כדי להשתמש בערך המומלץ שמאוכלס מראש, לא צריך להגדיר את התכונה.
- ADAPTER_SIZEאופציונלי: גודל המתאם שבו רוצים להשתמש במשימת ההתאמה. גודל המתאם משפיע על מספר הפרמטרים שאפשר לאמן במשימת ההתאמה. גודל מתאם גדול יותר מרמז שהמודל יכול ללמוד משימות מורכבות יותר, אבל הוא דורש מערך נתונים גדול יותר לאימון וזמני אימון ארוכים יותר.
- LEARNING_RATE_MULTIPLIER: אופציונלי: מכפיל שחל על קצב הלמידה המומלץ. אם לא מגדירים ערך, המערכת משתמשת בערך המומלץ.
- EXPORT_LAST_CHECKPOINT_ONLYאופציונלי: מגדירים את הערך
trueכדי להשתמש רק בנקודת הבדיקה האחרונה. - METRIC_SPECאופציונלי: מפרט מדדים אחד או יותר שבהם אתם משתמשים כדי להריץ הערכה באמצעות שירות ההערכה של AI גנרטיבי. אפשר להשתמש במפרטי המדדים הבאים:
"pointwise_metric_spec","pairwise_metric_spec","exact_match_spec","bleu_spec"ו-"rouge_spec". - METRIC_SPEC_FIELD_NAMEאופציונלי: השדות הנדרשים למפרט המדד שבחרתם. לדוגמה,
"metric_prompt_template" - METRIC_SPEC_FIELD_NAME_CONTENTאופציונלי: תוכן השדה של מפרט המדד שבחרתם. לדוגמה, אפשר להשתמש בתוכן השדה הבא להערכה נקודתית:
"Evaluate the fluency of this sentence: {response}. Give score from 0 to 1. 0 - not fluent at all. 1 - very fluent." - CLOUD_STORAGE_BUCKETאופציונלי: קטגוריית Cloud Storage לאחסון התוצאות של הרצת הערכה על ידי שירות ההערכה של AI גנרטיבי.
- TUNED_MODEL_DISPLAYNAMEאופציונלי: שם תצוגה של המודל שעבר התאמה. אם לא מגדירים שם, המערכת יוצרת שם אקראי.
- KMS_KEY_NAMEאופציונלי: מזהה משאב Cloud KMS של מפתח ההצפנה בניהול הלקוח שמשמש להגנה על משאב. הפורמט של המפתח הוא:
projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. המפתח צריך להיות באותו אזור שבו נוצר משאב המחשוב. מידע נוסף מופיע במאמר בנושא מפתחות הצפנה בניהול הלקוח (CMEK). - SERVICE_ACCOUNTאופציונלי: חשבון השירות שעליו מורץ עומס העבודה של tuningJob. אם לא מציינים סוכן, נעשה שימוש בסוכן של שירות הכוונון העדין המאובטח של Vertex AI בפרויקט. מידע נוסף מופיע במאמר בנושא התאמה של סוכני שירות. אם אתם מתכננים להשתמש בחשבון שירות בניהול הלקוח, אתם צריכים להקצות לחשבון השירות את התפקיד
roles/aiplatform.tuningServiceAgent. מקצים גם את התפקיד Tuning Service Agentroles/iam.serviceAccountTokenCreatorלחשבון השירות בניהול הלקוח.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
גוף בקשת JSON:
{
"baseModel": "BASE_MODEL",
"supervisedTuningSpec" : {
"trainingDatasetUri": "TRAINING_DATASET_URI",
"validationDatasetUri": "VALIDATION_DATASET_URI",
"hyperParameters": {
"epochCount": "EPOCH_COUNT",
"adapterSize": "ADAPTER_SIZE",
"learningRateMultiplier": "LEARNING_RATE_MULTIPLIER"
},
"exportLastCheckpointOnly": EXPORT_LAST_CHECKPOINT_ONLY,
"evaluationConfig": {
"metrics": [
{
"aggregation_metrics": ["AVERAGE", "STANDARD_DEVIATION"],
"METRIC_SPEC": {
"METRIC_SPEC_FIELD_NAME":
METRIC_SPEC_FIELD_CONTENT
}
},
],
"outputConfig": {
"gcs_destination": {
"output_uri_prefix": "CLOUD_STORAGE_BUCKET"
}
},
},
},
"tunedModelDisplayName": "TUNED_MODEL_DISPLAYNAME",
"encryptionSpec": {
"kmsKeyName": "KMS_KEY_NAME"
},
"serviceAccount": "SERVICE_ACCOUNT"
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
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://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
Python
הצגת רשימה של משימות אופטימיזציה
כדי לראות רשימה של משימות ההתאמה בפרויקט הנוכחי, אפשר להשתמש ב-Vertex AI SDK ל-Python או לשלוח בקשת GET.
REST
כדי ליצור משימת כוונון מודל, שולחים בקשת POST באמצעות ה-method tuningJobs.create.
הערה: חלק מהפרמטרים לא נתמכים בכל המודלים. חשוב לוודא שאתם כוללים רק את הפרמטרים הרלוונטיים למודל שאתם מכווננים.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: .
- TUNING_JOB_REGION: האזור שבו פועלת משימת ההתאמה. זה גם האזור שמוגדר כברירת מחדל להעלאת המודל שעבר התאמה.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs"
PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
Python
קבלת פרטים על משימת שיפור
אפשר לקבל את הפרטים של משימת התאמה אישית באמצעות Vertex AI SDK ל-Python או באמצעות שליחת בקשת GET.
REST
כדי לראות רשימה של משימות כוונון מודלים, שולחים בקשת GET באמצעות השיטה tuningJobs.get ומציינים את TuningJob_ID.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: .
- TUNING_JOB_REGION: האזור שבו פועלת משימת ההתאמה. זה גם האזור שמוגדר כברירת מחדל להעלאת המודל שעבר התאמה.
- TUNING_JOB_ID: המזהה של משימת ההתאמה.
ה-method של ה-HTTP וכתובת ה-URL:
GET https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID"
PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
Python
ביטול משימת שיפור
אפשר לבטל משימת התאמה באמצעות Vertex AI SDK ל-Python או באמצעות שליחת בקשת POST.
REST
כדי לראות רשימה של משימות כוונון מודלים, שולחים בקשת GET באמצעות השיטה tuningJobs.cancel ומציינים את TuningJob_ID.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: .
- TUNING_JOB_REGION: האזור שבו פועלת משימת ההתאמה. זה גם האזור שמוגדר כברירת מחדל להעלאת המודל שעבר התאמה.
- TUNING_JOB_ID: המזהה של משימת ההתאמה.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d "" \
"https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel"
PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-Uri "https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
Python
המאמרים הבאים
לעיון בתיעוד מפורט: