במאמר הזה מוסבר איך לשפר את הביצועים של מודל Gemini באמצעות שיפור מבוקר.
לפני שמתחילים
לפני שמתחילים, צריך להכין מערך נתונים של כוונון עדין מפוקח. בהתאם לתרחיש השימוש, יש דרישות שונות להכנת מערך נתונים:
- שיפור הטקסט
- שיפור תמונות
- שיפור המסמך
- התאמת האודיו
- שיפור איכות הסרטון
- שיפור היכולת של מודלים להשתמש בפונקציות
מודלים נתמכים
המודלים הבאים של Gemini תומכים בכוונון מפוקח:
לחצו כדי להרחיב את רשימת המודלים הנתמכים
יצירת משימת שיפור
אפשר ליצור משימת כוונון מפוקח (SFT) באמצעות המסוף Google Cloud , Google Gen AI SDK, Agent Platform SDK for Python, API בארכיטקטורת REST או Colab Enterprise.
אופציונלי: (בגרסת Preview) אפשר לכלול את 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 (התאמה וזיקוק). כשהמודל מסיים את ההתאמה, בעמודה סטטוס מופיע הכיתוב הצלחה.
Gen AI SDK
מתקינים את Google Gen AI SDK:
pip install --upgrade google-genai
מידע נוסף מופיע במאמרי העזרה בנושא SDK.
הגדרת משתני סביבה לשימוש ב-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
יוצרים את משימת ההתאמה:
Agent Platform SDK
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-2.5-flash",
"supervisedTuningSpec" : {
"training_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_train_data.jsonl",
"validation_dataset_uri": "gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_validation_data.jsonl"
},
"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 מוסיף תאי קוד ל-notebook כדי לכוונן מודל 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, Agent Platform SDK ל-Python או באמצעות שליחת בקשת GET באמצעות ה-method tuningJobs.
המסוף
כדי לראות את משימות ההתאמה במסוף Google Cloud , עוברים לדף Agent Platform Studio.
משימות ההתאמה של Gemini מפורטות בטבלה בקטע Tuned Models.
Google Gen AI SDK
Agent Platform SDK ל-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, Agent Platform SDK for Python או באמצעות שליחת בקשת GET באמצעות המתודה tuningJobs.
המסוף
כדי לראות את הפרטים של מודל שעבר התאמה במסוף Google Cloud , עוברים לדף Agent Platform Studio.
בטבלה Tuned Models, מוצאים את המודל ולוחצים על Details.
יוצגו פרטי המודל.
Google Gen AI SDK
Agent Platform SDK ל-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 , Agent Platform SDK ל-Python או שליחת בקשת POST באמצעות ה-method tuningJobs.
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 שדומה לזו:
Agent Platform SDK ל-Python
המסוף
כדי לבטל משימת התאמה אישית במסוף Google Cloud , עוברים לדף Agent Platform Studio.
בטבלה Tuned Models (מודלים שעברו התאמה), לוחצים על Manage run (ניהול הרצה).
לוחצים על ביטול.
הערכת המודל שעבר התאמה
אם לא הגדרתם את שירות ההערכה של ה-AI הגנרטיבי לפעול באופן אוטומטי אחרי משימת ההתאמה, תוכלו ליצור אינטראקציה עם נקודת הקצה של המודל שעבר התאמה באותו אופן שבו יוצרים אינטראקציה עם Gemini הבסיסי, באמצעות Agent Platform SDK ל-Python או Google Gen AI SDK, או באמצעות שליחת בקשת POST באמצעות השיטה generateContent.
במודלים של חשיבה, מומלץ להשבית את החשיבה או להגדיר את תקציב החשיבה למינימום במשימות מותאמות כדי להשיג ביצועים אופטימליים וחיסכון בעלויות. במהלך כוונון מפוקח (SFT), המודל לומד לחקות את אמת הקרקע בקבוצת הנתונים של הכוונון, בלי לכלול את תהליך החשיבה. לכן, המודל המותאם יכול לבצע את המשימה ביעילות בלי תקציב חשיבה.
בדוגמה הבאה, מזינים למודל את השאלה 'למה השמיים כחולים?'.
המסוף
-
כדי לראות את הפרטים של מודל שעבר כוונון במסוף Google Cloud , עוברים לדף Agent Platform Studio.
-
בטבלה Tuned Models (מודלים שעברו התאמה), לוחצים על Test (בדיקה).
מוצג דף שבו אפשר ליצור שיחה עם המודל שעבר כוונון.
Google Gen AI SDK
Agent Platform SDK ל-Python
from vertexai.preview.tuning import sft from vertexai.generative_models import GenerativeModel sft_tuning_job = sft.SupervisedTuningJob("projects//locations/ ) tuned_model = GenerativeModel(sft_tuning_job.tuned_model_endpoint_name) content = "Why is sky blue?" print(tuned_model.generate_content(content))/tuningJobs/ "
REST
כדי לבדוק מודל שעבר התאמה באמצעות הנחיה, שולחים בקשת POST ומציינים את `MREP_LOCATION` ואת `ENDPOINT_ID`.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
-
MREP_LOCATION: Google Cloud
המיקום של נקודת הקצה מרובת האזורים שבה מופעלת משימת ההתאמה. אלה הערכים הקבילים:
useu
- PROJECT_ID: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers).
- 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: [מזהה הפרויקט](/resource-manager/docs/creating-managing-projects#identifiers).
- 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 SDK ל-Python
from google.cloud import aiplatform
aiplatform.init(project=PROJECT_ID, location=LOCATION)
# To find out which models are available in Model Registry
models = aiplatform.Model.list()
model = aiplatform.Model(MODEL_ID)
model.delete()
מדדים של התאמה ואימות
אתם יכולים להגדיר משימת כוונון מודל כדי לאסוף ולדווח על מדדים של כוונון מודל ושל הערכת מודל, ואז להציג אותם באופן חזותי ב-Agent Platform Studio.
כדי לראות את הפרטים של מודל שעבר התאמה במסוף Google Cloud , עוברים לדף Agent Platform Studio.
בטבלה Tune and Distill (כוונון וזיקוק), לוחצים על השם של המודל המכוונן שרוצים לראות את המדדים שלו.
מדדי ההתאמה מופיעים בכרטיסייה מעקב.
מדדים של התאמת מודל
תהליך הכוונון של המודל אוסף באופן אוטומטי את מדדי הכוונון הבאים עבור Gemini 2.0 Flash:
-
/train_total_loss: הפסד עבור מערך הנתונים של ההתאמה בשלב אימון. /train_fraction_of_correct_next_step_preds: רמת הדיוק של האסימון בשלב ההדרכה. הסקה אחת מורכבת מרצף של טוקנים חזויים. המדד הזה מודד את הדיוק של הטוקנים החזויים בהשוואה לנתוני האמת במערך הנתונים של הכוונון.-
/train_num_predictions: מספר הטוקנים החזויים בשלב אימון.
מדדים של אימות מודל
אתם יכולים להגדיר משימת שיפור של מודל כדי לאסוף את מדדי האימות הבאים עבור Gemini 2.0 Flash:
-
/eval_total_loss: הפסד עבור מערך נתוני האימות בשלב האימות. /eval_fraction_of_correct_next_step_preds: רמת הדיוק של האסימון בשלב האימות. הסקה אחת מורכבת מרצף של טוקנים חזויים. המדד הזה מודד את הדיוק של הטוקנים החזויים בהשוואה לנתוני האמת במערך הנתונים של האימות.-
/eval_num_predictions: מספר הטוקנים החזויים בשלב האימות.
הוויזואליזציות של המדדים זמינות אחרי שמתחילים להריץ את פעולת הכוונון. הוא יתעדכן בזמן אמת ככל שההתאמה תתקדם. אם לא מציינים מערך נתונים לאימות כשיוצרים את משימת ההתאמה, אפשר לראות רק את הוויזואליזציות של מדדי ההתאמה.
המאמרים הבאים
כדי ללמוד איך אפשר להשתמש בכוונון עדין מפוקח בפתרון שיוצר בסיס ידע של AI גנרטיבי, אפשר לעיין בפתרון התחלתי: בסיס ידע של AI גנרטיבי.