במאמר הזה מוסבר איך לשפר את הביצועים של מודל Gemini באמצעות שיפור מבוקר.
לפני שמתחילים
לפני שמתחילים, צריך להכין מערך נתונים של כוונון עדין מפוקח. בהתאם לתרחיש השימוש, יש דרישות שונות להכנת מערך נתונים:
מודלים נתמכים
המודלים הבאים של Gemini תומכים בכוונון בהשגחה:
כדי להרחיב את רשימת המודלים הנתמכים, לוחצים כאן
יצירת משימת שיפור
אפשר ליצור משימת כוונון עדין מפוקח באמצעות מסוף Google Cloud , Google Gen AI SDK, API בארכיטקטורת REST או Colab Enterprise.
אופציונלי: (בשלב טרום-השקה) אפשר לכלול את evaluationConfig כדי להריץ אוטומטית בדיקה באמצעות שירות הבדיקה של AI גנרטיבי אחרי שמשימת הכוונון מסתיימת. הגדרת ההערכה הזו זמינה באזור us-central1.
המסוף
כדי לכוונן מודל טקסט באמצעות כוונון עדין מפוקח באמצעות מסוףGoogle Cloud :
- בקטע Gemini Enterprise Agent Platform במסוף Google Cloud , עוברים לדף Agent Platform Studio.
- לוחצים על יצירת מודל שעבר התאמה.
- בקטע פרטי המודל, מגדירים את האפשרויות הבאות:
- בשדה שם המודל המותאם, מזינים שם למודל המותאם החדש (עד 128 תווים).
- בשדה Base model (מודל בסיס), בוחרים את מודל הבסיס שרוצים לכוונן.
- בתפריט הנפתח Region (אזור), בוחרים את האזור שבו יפעל תהליך ההתאמה של צינור העיבוד, ושבו יתבצע פריסת המודל המותאם.
- בקטע הגדרת כוונון, קובעים את ההגדרות הבאות:
- בשדה Number of epochs (מספר התקופות של זמן המערכת), מזינים את מספר השלבים להרצה לצורך כוונון המודל.
- בשדה גודל המתאם, מזינים את גודל המתאם שבו רוצים להשתמש לצורך כוונון המודל.
- בשדה Learning rate multiplier (מכפיל קצב הלמידה), מזינים את גודל הצעד בכל איטרציה. ערך ברירת המחדל הוא 1. .
- אופציונלי: כדי להשבית את נקודות השמירה הביניים ולהשתמש רק בנקודת השמירה האחרונה, לוחצים על המתג ייצוא של נקודת השמירה האחרונה בלבד.
- לוחצים על Continue.
ייפתח הדף Tuning dataset.
- כדי להעלות קובץ של מערך נתונים, בוחרים באחת מהאפשרויות הבאות:
- אם עדיין לא העליתם מערך נתונים, בוחרים את לחצן הבחירה העלאת קובץ ל-Cloud Storage.
- בשדה Select JSONL file, לוחצים על Browse ובוחרים את קובץ מערך הנתונים.
- בשדה Dataset location, לוחצים על Browse ובוחרים את קטגוריית Cloud Storage שבה רוצים לאחסן את קובץ מערך הנתונים.
- אם קובץ מערך הנתונים כבר נמצא בקטגוריה של Cloud Storage, בוחרים את לחצן הבחירה Existing file on Cloud Storage (קובץ קיים ב-Cloud Storage).
- בשדה Cloud Storage file path לוחצים על Browse ובוחרים את קטגוריה של Cloud Storage שבה נמצא קובץ מערך הנתונים.
- אם עדיין לא העליתם מערך נתונים, בוחרים את לחצן הבחירה העלאת קובץ ל-Cloud Storage.
- (אופציונלי) כדי לקבל מדדי אימות במהלך האימון, לוחצים על המתג הפעלת אימות המודל.
- בקובץ Validation dataset, מזינים את הנתיב של מערך האימות ב-Cloud Storage.
- לוחצים על התחלת הכוונון.
המודל החדש יופיע בקטע מודלים שעברו התאמה בדף התאמה וזיקוק. כשכוונון המודל מסתיים, בסטטוס מופיע הצלחה.
Python
מתקינים את Google Gen AI SDK:
pip install --upgrade google-genai
מידע נוסף מופיע במאמרי העזרה בנושא SDK.
הגדרת משתני סביבה לשימוש ב-Google Gen AI SDK עם Gemini Enterprise Agent Platform:
# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values # with appropriate values for your project. export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT export GOOGLE_CLOUD_LOCATION=us-central1 export GOOGLE_GENAI_USE_ENTERPRISE=True
יוצרים את משימת הכוונון:
REST
כדי ליצור משימת כוונון מודל, שולחים בקשת POST באמצעות השיטה 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. אם לא מציינים סוכן, המערכת משתמשת בסוכן של שירות הכוונון המדויק המאובטח של Agent Platform בפרויקט. מידע נוסף זמין במאמר בנושא התאמה של סוכן שירות. אם אתם מתכננים להשתמש בחשבון שירות בניהול הלקוח, אתם צריכים להקצות לחשבון השירות את התפקיד
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 שדומה לזו:
דוגמה לפקודת curl
PROJECT_ID=myproject
LOCATION=global
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://${LOCATION}-aiplatform.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \
-d \
$'{
"baseModel": "gemini-3.5-flash",
"supervisedTuningSpec" : {
"training_dataset_uri": "gs://YOUR_BUCKET_NAME/YOUR_TRAIN_DATASET",
"validation_dataset_uri": "gs://YOUR_BUCKET_NAME/YOUR_VALIDATION_DATASET"
},
"tunedModelDisplayName": "tuned_gemini"
}'
Colab Enterprise
אפשר ליצור משימה של כוונון מודל ב-Agent Platform באמצעות חלונית הצד ב-Colab Enterprise. בחלונית הצד מופיעים קטעי הקוד הרלוונטיים ב-Notebook. לאחר מכן משנים את קטעי הקוד ומריצים אותם כדי ליצור את משימת ההתאמה. כדי ללמוד עוד על השימוש בחלונית הצדדית עם משימות הכוונון של Agent Platform, ראו אינטראקציה עם Agent Platform כדי לכוונן מודל.
-
נכנסים לדף My notebooks של Colab Enterprise במסוף Google Cloud .
-
בתפריט Region (אזור), בוחרים את האזור שבו נמצא הנוטבוק.
-
לוחצים על ה-Notebook שרוצים לפתוח. אם עדיין לא יצרתם נוטבוק, יוצרים נוטבוק.
-
משמאל למחברת, בחלונית הצדדית, לוחצים על הלחצן התאמה.
החלונית הצדדית מתרחבת ומוצגת בה הכרטיסייה התאמה.
-
לוחצים על הלחצן Tune a Gemini model (שיפור מודל Gemini).
Colab Enterprise מוסיף תאי קוד לנוטבוק כדי לכוונן מודל Gemini.
-
במחברת, מחפשים את תא הקוד שבו מאוחסנים ערכי הפרמטרים. תשתמשו בפרמטרים האלה כדי ליצור אינטראקציה עם Agent Platform.
-
מעדכנים את הערכים של הפרמטרים הבאים:
-
PROJECT_ID: מזהה הפרויקט שבו נמצא מחברת ה-Notebook. -
REGION: האזור שבו נמצא המחברת. -
TUNED_MODEL_DISPLAY_NAME: השם של המודל שעבר התאמה.
-
-
בתא הקוד הבא, מעדכנים את הפרמטרים של כוונון המודל:
-
source_model: מודל Gemini שרוצים להשתמש בו, לדוגמה,gemini-2.0-flash-001. -
train_dataset: כתובת ה-URL של מערך הנתונים לאימון. -
validation_dataset: כתובת ה-URL של מערך הנתונים לאימות. - משנים את שאר הפרמטרים לפי הצורך.
-
-
מריצים את תאי הקוד שהחלונית הצדדית הוסיפה ל-Notebook.
-
אחרי שתא הקוד האחרון יפעל, לוחצים על הלחצן View tuning job שמופיע.
-
בחלונית הצדדית מוצג מידע על משימת כוונון המודל.
- בכרטיסייה Monitor מוצגים מדדי אופטימיזציה כשהמדדים מוכנים.
- בכרטיסייה מערך נתונים מוצגים סיכום ומדדים לגבי מערך הנתונים אחרי העיבוד שלו.
- בכרטיסייה פרטים מוצג מידע על משימת ההתאמה, כמו שיטת ההתאמה ומודל הבסיס (מודל המקור) שבו השתמשתם.
-
אחרי שתהליך ההתאמה יסתיים, תוכלו לעבור ישירות מהכרטיסייה פרטי ההתאמה לדף שבו אפשר לבדוק את המודל. לוחצים על בדיקה.
המסוף Google Cloud ייפתח בדף Agent Platform Text chat, שבו תוכלו לבדוק את המודל.
כוונון היפר-פרמטרים
מומלץ לשלוח את משימת ההתאמה הראשונה בלי לשנות את הפרמטרים של היפר. ערך ברירת המחדל הוא הערך המומלץ על סמך תוצאות ההשוואה שלנו, כדי להפיק את האיכות הכי טובה של פלט המודל.
- תקופות של זמן מערכת (epochs): מספר המעברים המלאים שהמודל מבצע על כל מערך הנתונים לאימון במהלך האימון. Gemini Enterprise Agent Platform מתאים אוטומטית את ערך ברירת המחדל לגודל של מערך נתוני האימון. הערך הזה מבוסס על תוצאות השוואה לשוק כדי לשפר את איכות הפלט של המודל.
- גודל המתאם: גודל המתאם שבו יש להשתמש במשימת האופטימיזציה. גודל המתאם משפיע על מספר הפרמטרים שאפשר לאמן במשימת ההתאמה. גודל מתאם גדול יותר מרמז שהמודל יכול ללמוד משימות מורכבות יותר, אבל הוא דורש מערך נתונים גדול יותר לאימון וזמני אימון ארוכים יותר.
- מכפיל קצב הלמידה: מכפיל שחל על קצב הלמידה המומלץ. כדי להגיע להתכנסות מהר יותר, אפשר להגדיל את הערך. כדי להימנע מהתאמת יתר, אפשר להקטין את הערך.
בפוסט בבלוג Supervised Fine Tuning for Gemini: A best practices guide (כוונון עדין מפוקח של Gemini: מדריך לשיטות מומלצות) מפורטות שיטות מומלצות לכוונון עדין מפוקח.
צפייה ברשימה של משימות אופטימיזציה
אפשר לראות רשימה של משימות התאמה בפרויקט הנוכחי באמצעות מסוףGoogle Cloud , Google Gen AI SDK או באמצעות שליחת בקשת GET באמצעות השיטה tuningJobs.
המסוף
כדי לראות את משימות ההתאמה במסוף Google Cloud , עוברים לדף Agent Platform Studio.
משימות ההתאמה האישית של Gemini מופיעות בטבלה בקטע Tuned Models.
Python
REST
כדי לראות רשימה של משימות כוונון מודלים, שולחים בקשת GET באמצעות ה-method tuningJobs.list.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- 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 שדומה לזו:
קבלת פרטים על משימת שיפור
אפשר לקבל את הפרטים של משימת התאמה בפרויקט הנוכחי באמצעות מסוףGoogle Cloud , Google Gen AI SDK או שליחת בקשת GET באמצעות השיטה tuningJobs.
המסוף
כדי לראות את הפרטים של מודל שעבר התאמה אישית במסוף Google Cloud , נכנסים לדף Agent Platform Studio.
בטבלה Tuned Models, מוצאים את המודל ולוחצים על Details.
יוצגו פרטי המודל.
Python
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 שדומה לזו:
ביטול של משימת שיפור
אפשר לבטל משימת התאמה אישית בפרויקט הנוכחי באמצעות מסוף Google Cloud, Google Gen AI SDK או שליחת בקשת POST באמצעות השיטה tuningJobs. Google Cloud
המסוף
כדי לבטל משימת התאמה אישית במסוף Google Cloud , עוברים לדף Agent Platform Studio.
בטבלה Tuned Models (מודלים שעברו התאמה), לוחצים על Manage run (ניהול הרצה).
לוחצים על ביטול.
REST
כדי לבטל משימה של התאמת מודל, שולחים בקשת POST באמצעות השיטה 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
הערכת המודל שעבר התאמה
אם לא הגדרתם את שירות ההערכה של AI גנרטיבי לפעול באופן אוטומטי אחרי משימת ההתאמה, תוכלו ליצור אינטראקציה עם נקודת הקצה של המודל המותאם באותו אופן שבו יוצרים אינטראקציה עם מודל Gemini בסיסי, באמצעות Google Gen AI SDK או באמצעות שליחת בקשת POST באמצעות השיטה generateContent.
במודלים של חשיבה, מומלץ להשבית את החשיבה או להגדיר את תקציב החשיבה למינימום במשימות מותאמות כדי להשיג ביצועים אופטימליים וחיסכון בעלויות. במהלך כוונון מפוקח (SFT), המודל לומד לחקות את אמת הקרקע בקבוצת הנתונים של הכוונון, בלי להציג את תהליך החשיבה. לכן, המודל המותאם יכול לבצע את המשימה ביעילות בלי תקציב חשיבה.
בדוגמה הבאה, מזינים למודל את ההנחיה עם השאלה 'למה השמיים כחולים?'.
המסוף
-
כדי לראות את הפרטים של מודל שעבר כוונון במסוף Google Cloud , נכנסים לדף Agent Platform Studio.
-
בטבלה Tuned Models (מודלים שעברו התאמה), לוחצים על Test (בדיקה).
מוצג דף שבו אפשר ליצור שיחה עם המודל שעבר כוונון.
Python
REST
כדי לבדוק מודל שעבר התאמה באמצעות הנחיה, שולחים בקשת POST ומציינים את `MREP_LOCATION` ואת `ENDPOINT_ID`.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
MREP_LOCATION: Google Cloud
המיקום של נקודת הקצה מרובת האזורים שבה מופעלת משימת ההתאמה. אלה הערכים הקבילים:
useu
- PROJECT_ID: מזהה הפרויקט.
- ENDPOINT_ID: מזהה נקודת הקצה של המודל שעבר התאמה, מ-GET API.
-
TEMPERATURE:
רמת האקראיות משמשת לדגימה במהלך תהליך יצירת תשובות, שמתרחש כשמחילים את
topPו-topK. הטמפרטורה שולטת במידת האקראיות בבחירת האסימון. טמפרטורות נמוכות טובות להנחיות שדורשות תשובה פחות פתוחה או יצירתית, ואילו טמפרטורות גבוהות יכולות להוביל לתוצאות יותר מגוונות או יצירתיות. טמפרטורה של0פירושה שתמיד נבחרים האסימונים עם ההסתברות הכי גבוהה. במקרה כזה, התשובות להנחיה נתונה הן ברובן דטרמיניסטיות, אבל עדיין יכולות להיות וריאציות קלות.אם המודל מחזיר תשובה כללית מדי או קצרה מדי, או אם המודל מחזיר תשובת ברירת מחדל, נסו להגדיל את רמת האקראיות. אם המודל נכנס ליצירה אינסופית, יכול להיות שהגדלת רמת האקראיות ל-
0.1לפחות תביא לתוצאות טובות יותר.1.0הוא ערך הטמפרטורה המומלץ להתחלה. -
TOP_P:
הפרמטר Top-P משנה את האופן שבו המודל בוחר אסימונים לפלט. הטוקנים נבחרים מהסבירים ביותר לסבירים פחות, עד שסכום ההסתברויות שלהם שווה לערך של Top-P. לדוגמה, אם לאסימונים A, B ו-C יש הסתברות של 0.3, 0.2 ו-0.1, והערך של Top-P הוא
0.5, המודל יבחר באסימון A או באסימון B כאסימון הבא באמצעות רמת אקראיות, ויפסול את C כמועמד.כדי לקבל תשובות פחות אקראיות, מציינים ערך נמוך יותר, וכדי לקבל תשובות יותר אקראיות, מציינים ערך גבוה יותר.
-
TOP_K:
הפרמטר Top-K משנה את האופן שבו המודל בוחר אסימונים לפלט. ערך של
1בפרמטר top-K אומר שהטוקן הבא שנבחר הוא הטוקן הסביר ביותר מבין כל הטוקנים באוצר המילים של המודל (נקרא גם פענוח חמדני), בעוד שערך של3אומר שהטוקן הבא נבחר מבין שלושת הטוקנים הסבירים ביותר באמצעות פרמטר רמת האקראיות.בכל שלב של בחירת אסימון, המערכת דוגמת את האסימונים המובילים מתוך K האסימונים עם ההסתברות הכי גבוהה. לאחר מכן, האסימונים מסוננים עוד יותר על סמך top-P, והאסימון הסופי נבחר באמצעות דגימת טמפרטורה.
כדי לקבל תשובות פחות אקראיות, מציינים ערך נמוך יותר, וכדי לקבל תשובות יותר אקראיות, מציינים ערך גבוה יותר.
-
MAX_OUTPUT_TOKENS:
המספר המקסימלי של טוקנים שאפשר ליצור בתשובה. טוקן הוא בערך ארבעה תווים. 100 טוקנים תואמים בערך ל-60 עד 80 מילים.
כדי לקבל תשובות קצרות יותר, מציינים ערך נמוך יותר, וכדי לקבל תשובות ארוכות יותר, מציינים ערך גבוה יותר.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://aiplatform.MREP_LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/MREP_LOCATION/endpoints/ENDPOINT_ID:generateContent
גוף בקשת JSON:
{
"contents": [
{
"role": "USER",
"parts": {
"text" : "Why is sky blue?"
}
}
],
"generation_config": {
"temperature":TEMPERATURE,
"topP": TOP_P,
"topK": TOP_K,
"maxOutputTokens": MAX_OUTPUT_TOKENS
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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://aiplatform.MREP_LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/MREP_LOCATION/endpoints/ENDPOINT_ID:generateContent"
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://aiplatform.MREP_LOCATION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/MREP_LOCATION/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
REST
כדי לבדוק מודל שעבר התאמה באמצעות הנחיה, שולחים בקשת POST ומציינים את `TUNED_ENDPOINT_ID`.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט.
- TUNING_JOB_REGION: האזור שבו מופעלת משימת האופטימיזציה. זה גם אזור ברירת המחדל שאליו מועלה המודל שעבר התאמה.
- ENDPOINT_ID: מזהה נקודת הקצה של המודל שעבר התאמה, מ-GET API.
-
TEMPERATURE:
רמת האקראיות משמשת לדגימה במהלך תהליך יצירת תשובות, שמתרחש כשמחילים את
topPו-topK. הטמפרטורה שולטת במידת האקראיות בבחירת האסימון. טמפרטורות נמוכות טובות להנחיות שדורשות תשובה פחות פתוחה או יצירתית, ואילו טמפרטורות גבוהות יכולות להוביל לתוצאות יותר מגוונות או יצירתיות. טמפרטורה של0פירושה שתמיד נבחרים האסימונים עם ההסתברות הכי גבוהה. במקרה כזה, התשובות להנחיה נתונה הן ברובן דטרמיניסטיות, אבל עדיין יכולות להיות וריאציות קלות.אם המודל מחזיר תשובה כללית מדי או קצרה מדי, או אם המודל מחזיר תשובת ברירת מחדל, נסו להגדיל את רמת האקראיות. אם המודל נכנס ליצירה אינסופית, יכול להיות שהגדלת רמת האקראיות ל-
0.1לפחות תביא לתוצאות טובות יותר.1.0הוא ערך הטמפרטורה המומלץ להתחלה. -
TOP_P:
הפרמטר Top-P משנה את האופן שבו המודל בוחר אסימונים לפלט. הטוקנים נבחרים מהסבירים ביותר לסבירים פחות, עד שסכום ההסתברויות שלהם שווה לערך של Top-P. לדוגמה, אם לאסימונים A, B ו-C יש הסתברות של 0.3, 0.2 ו-0.1, והערך של Top-P הוא
0.5, המודל יבחר באסימון A או באסימון B כאסימון הבא באמצעות רמת אקראיות, ויפסול את C כמועמד.כדי לקבל תשובות פחות אקראיות, מציינים ערך נמוך יותר, וכדי לקבל תשובות יותר אקראיות, מציינים ערך גבוה יותר.
-
TOP_K:
הפרמטר Top-K משנה את האופן שבו המודל בוחר אסימונים לפלט. ערך של
1בפרמטר top-K אומר שהטוקן הבא שנבחר הוא הטוקן הסביר ביותר מבין כל הטוקנים באוצר המילים של המודל (נקרא גם פענוח חמדני), בעוד שערך של3אומר שהטוקן הבא נבחר מבין שלושת הטוקנים הסבירים ביותר באמצעות פרמטר רמת האקראיות.בכל שלב של בחירת אסימון, המערכת דוגמת את האסימונים המובילים מתוך K האסימונים עם ההסתברות הכי גבוהה. לאחר מכן, האסימונים מסוננים עוד יותר על סמך top-P, והאסימון הסופי נבחר באמצעות דגימת טמפרטורה.
כדי לקבל תשובות פחות אקראיות, מציינים ערך נמוך יותר, וכדי לקבל תשובות יותר אקראיות, מציינים ערך גבוה יותר.
-
MAX_OUTPUT_TOKENS:
המספר המקסימלי של טוקנים שאפשר ליצור בתשובה. טוקן הוא בערך ארבעה תווים. 100 טוקנים תואמים בערך ל-60 עד 80 מילים.
כדי לקבל תשובות קצרות יותר, מציינים ערך נמוך יותר, וכדי לקבל תשובות ארוכות יותר, מציינים ערך גבוה יותר.
ה-method של ה-HTTP וכתובת ה-URL:
POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/endpoints/ENDPOINT_ID:generateContent
גוף בקשת JSON:
{
"contents": [
{
"role": "USER",
"parts": {
"text" : "Why is sky blue?"
}
}
],
"generation_config": {
"temperature":TEMPERATURE,
"topP": TOP_P,
"topK": TOP_K,
"maxOutputTokens": MAX_OUTPUT_TOKENS
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
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/endpoints/ENDPOINT_ID:generateContent"
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/endpoints/ENDPOINT_ID:generateContent" | Select-Object -Expand Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
מחיקת מודל שעבר התאמה
כדי למחוק מודל שעבר כוונון:
REST
מבצעים קריאה ל-method models.delete.
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- PROJECT_ID: מזהה הפרויקט.
- REGION: האזור שבו נמצא המודל שעבר התאמה.
- MODEL_ID: המודל שרוצים למחוק.
ה-method של ה-HTTP וכתובת ה-URL:
DELETE https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID
כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:
curl
מריצים את הפקודה הבאה:
curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID"
PowerShell
מריצים את הפקודה הבאה:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method DELETE `
-Headers $headers `
-Uri "https://REGION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID" | Select-Object -Expand Content
אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.
מדדי התאמה ואימות
אתם יכולים להגדיר משימת כוונון של מודל כדי לאסוף ולדווח על מדדים של כוונון מודל ושל הערכת מודל, ואז להציג אותם באופן חזותי ב-Agent Platform Studio.
כדי לראות את הפרטים של מודל שעבר התאמה אישית במסוף Google Cloud , נכנסים לדף Agent Platform Studio.
בטבלה Tune and Distill (כוונון וזיקוק), לוחצים על השם של המודל המכוונן שרוצים לראות את המדדים שלו.
מדדי ההתאמה מופיעים בכרטיסייה מעקב.
מדדים של התאמת מודל
תהליך ההתאמה של המודל אוסף באופן אוטומטי את מדדי ההתאמה הבאים של המודל:
-
/train_total_loss: הפסד במערך הנתונים של ההתאמה בשלב האימון. /train_fraction_of_correct_next_step_preds: רמת הדיוק של האסימון בשלב ההדרכה. הסקה אחת מורכבת מרצף של אסימונים חזויים. המדד הזה מודד את הדיוק של הטוקנים החזויים בהשוואה לנתוני האמת במערך הנתונים של ההתאמה העדינה.-
/train_num_predictions: מספר הטוקנים החזויים בשלב האימון.
מדדים של אימות המודל
אתם יכולים להגדיר משימת כוונון של מודל כדי לאסוף את מדדי האימות הבאים של המודל:
-
/eval_total_loss: הפסד עבור מערך האימות בשלב האימות. /eval_fraction_of_correct_next_step_preds: רמת הדיוק של האסימון בשלב האימות. הסקה אחת מורכבת מרצף של אסימונים חזויים. המדד הזה מודד את הדיוק של הטוקנים החזויים בהשוואה לנתוני האמת במערך הנתונים של האימות.-
/eval_num_predictions: מספר הטוקנים החזויים בשלב האימות.
הדמיה של המדדים זמינה אחרי שתהליך הכוונון מתחיל לפעול. הוא יתעדכן בזמן אמת ככל שההתאמה תתקדם. אם לא מציינים מערך נתונים לאימות כשיוצרים את משימת ההתאמה, אפשר לראות רק את התרשימים של מדדי ההתאמה.
המאמרים הבאים
כדי ללמוד איך אפשר להשתמש בכוונון מפוקח (SFT) בפתרון שיוצר מאגר ידע של AI גנרטיבי, אפשר לעיין בפתרון התחלתי: מאגר ידע של AI גנרטיבי.