במאמר הזה מוסבר איך לשפר את הביצועים של מודל 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 תווים).
- בשדה מודל בסיסי, בוחרים את מודל הבסיס שרוצים לכוונן.
- בשדה הנפתח 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.
- לוחצים על התחלת הכוונון.
המודל החדש יופיע בקטע Tuned Models (מודלים שעברו התאמה) בדף Tune and Distill (התאמה וזיקוק). כשכוונון המודל מסתיים, בסטטוס מופיע הצלחה.
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 Secure Fine-Tuning Service בפרויקט. מידע נוסף זמין במאמר בנושא התאמה של סוכן שירות. אם אתם מתכננים להשתמש בחשבון שירות בניהול הלקוח, אתם צריכים להקצות לחשבון השירות את התפקיד
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.
-
נכנסים לדף My notebooks של Colab Enterprise במסוף Google Cloud .
-
בתפריט Region (אזור), בוחרים את האזור שבו נמצא הנוטבוק.
-
לוחצים על ה-Notebook שרוצים לפתוח. אם עדיין לא יצרתם נוטבוק, יוצרים נוטבוק.
-
משמאל למחברת, בחלונית הצדדית, לוחצים על הלחצן Tuning.
החלונית הצדדית מתרחבת ומוצגת בה הכרטיסייה התאמה.
-
לוחצים על הלחצן 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 באמצעות השיטה 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 באמצעות ה-method 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 Cloud, Google Gen AI SDK או על ידי שליחת בקשת POST באמצעות ה-method tuningJobs.
המסוף
כדי לבטל משימת התאמה אישית במסוף 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 גנרטיבי.