כוונון מודלים של Gemini באמצעות כוונון עדין מונחה

במאמר הזה מוסבר איך לשפר את הביצועים של מודל Gemini באמצעות שיפור מבוקר.

לפני שמתחילים

לפני שמתחילים, צריך להכין מערך נתונים של כוונון עדין מפוקח. בהתאם לתרחיש השימוש, יש דרישות שונות להכנת מערך נתונים:

מודלים נתמכים

המודלים הבאים של Gemini תומכים בכוונון בהשגחה:

כדי להרחיב את רשימת המודלים הנתמכים, לוחצים כאן

יצירת משימת שיפור

אפשר ליצור משימת כוונון עדין מפוקח באמצעות מסוף Google Cloud , Google Gen AI SDK,‏ API בארכיטקטורת REST או Colab Enterprise.

אופציונלי: (בשלב טרום-השקה) אפשר לכלול את evaluationConfig כדי להריץ אוטומטית בדיקה באמצעות שירות הבדיקה של AI גנרטיבי אחרי שמשימת הכוונון מסתיימת. הגדרת ההערכה הזו זמינה באזור us-central1.

המסוף

כדי לכוונן מודל טקסט באמצעות כוונון עדין מפוקח באמצעות מסוףGoogle Cloud , מבצעים את השלבים הבאים:

  1. בקטע Gemini Enterprise Agent Platform במסוף Google Cloud , נכנסים לדף Agent Platform Studio.

    מעבר אל Agent Platform Studio

  2. לוחצים על Create tuned model.
  3. בקטע פרטי המודל, מגדירים את האפשרויות הבאות:
    1. בשדה Tuned model name (שם המודל שעבר התאמה), מזינים שם למודל החדש שעבר התאמה, עד 128 תווים.
    2. בשדה Base model (מודל בסיס), בוחרים את מודל הבסיס שרוצים לכוונן.
    3. בתפריט הנפתח Region (אזור), בוחרים את האזור שבו יפעל תהליך ההתאמה של צינור העיבוד, ושבו יתבצע פריסת המודל המותאם.
  4. בקטע הגדרת כוונון, מגדירים את האפשרויות הבאות:
    1. בשדה Number of epochs, מזינים את מספר השלבים להרצה של כוונון המודל.
    2. בשדה גודל המתאם, מזינים את גודל המתאם שבו רוצים להשתמש לצורך כוונון המודל.
    3. בשדה Learning rate multiplier, מזינים את גודל השלב בכל איטרציה. ערך ברירת המחדל הוא 1. .
  5. אופציונלי: כדי להשבית את נקודות השמירה הביניים ולהשתמש רק בנקודת השמירה האחרונה, לוחצים על המתג ייצוא של נקודת השמירה האחרונה בלבד.
  6. לוחצים על Continue.

    ייפתח הדף Tuning dataset.

  7. כדי להעלות קובץ של מערך נתונים, בוחרים באחת מהאפשרויות הבאות:
    1. אם עדיין לא העליתם מערך נתונים, בוחרים את לחצן הבחירה העלאת קובץ ל-Cloud Storage.
      1. בשדה Select JSONL file, לוחצים על Browse ובוחרים את קובץ מערך הנתונים.
      2. בשדה Dataset location, לוחצים על Browse ובוחרים את הקטגוריה ב-Cloud Storage שבה רוצים לאחסן את קובץ מערך הנתונים.
    2. אם קובץ מערך הנתונים כבר נמצא בקטגוריה של Cloud Storage, בוחרים את לחצן הבחירה Existing file on Cloud Storage (קובץ קיים ב-Cloud Storage).
      1. בשדה Cloud Storage file path לוחצים על Browse ובוחרים את הקטגוריה ב-Cloud Storage שבה נמצא קובץ מערך הנתונים.
  8. (אופציונלי) כדי לקבל מדדי אימות במהלך האימון, לוחצים על המתג הפעלת אימות המודל.
    1. בשדה Validation dataset, מזינים את הנתיב של מערך נתוני האימות ב-Cloud Storage.
  9. לוחצים על התחלת ההתאמה.

    המודל החדש מופיע בקטע 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

יוצרים את משימת הכוונון:

import time

from google import genai
from google.genai.types import (
    CreateTuningJobConfig,
    EvaluationConfig,
    GcsDestination,
    HttpOptions,
    Metric,
    OutputConfig,
    TuningDataset,
)

# TODO(developer): Update and un-comment below line
# output_gcs_uri = "gs://your-bucket/your-prefix"

client = genai.Client(http_options=HttpOptions(api_version="v1beta1"))

training_dataset = TuningDataset(
    gcs_uri="gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_train_data.jsonl",
)
validation_dataset = TuningDataset(
    gcs_uri="gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_validation_data.jsonl",
)

evaluation_config = EvaluationConfig(
    metrics=[
        Metric(
            name="FLUENCY",
            prompt_template="""Evaluate this {prediction}"""
        )
    ],
    output_config=OutputConfig(
        gcs_destination=GcsDestination(
            output_uri_prefix=output_gcs_uri,
        )
    ),
)

tuning_job = client.tunings.tune(
    base_model="gemini-3.5-flash",
    training_dataset=training_dataset,
    config=CreateTuningJobConfig(
        tuned_model_display_name="Example tuning job",
        validation_dataset=validation_dataset,
        evaluation_config=evaluation_config,
    ),
)

running_states = set([
    "JOB_STATE_PENDING",
    "JOB_STATE_RUNNING",
])

while tuning_job.state in running_states:
    print(tuning_job.state)
    tuning_job = client.tunings.get(name=tuning_job.name)
    time.sleep(60)

print(tuning_job.tuned_model.model)
print(tuning_job.tuned_model.endpoint)
print(tuning_job.experiment)
# Example response:
# projects/123456789012/locations/us-central1/models/1234567890@1
# projects/123456789012/locations/us-central1/endpoints/123456789012345
# projects/123456789012/locations/us-central1/metadataStores/default/contexts/tuning-experiment-2025010112345678

if tuning_job.tuned_model.checkpoints:
    for i, checkpoint in enumerate(tuning_job.tuned_model.checkpoints):
        print(f"Checkpoint {i + 1}: ", checkpoint)
    # Example response:
    # Checkpoint 1:  checkpoint_id='1' epoch=1 step=10 endpoint='projects/123456789012/locations/us-central1/endpoints/123456789000000'
    # Checkpoint 2:  checkpoint_id='2' epoch=2 step=20 endpoint='projects/123456789012/locations/us-central1/endpoints/123456789012345'

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 בפרויקט. מידע נוסף מופיע במאמר בנושא התאמה של סוכני שירות. אם אתם מתכננים להשתמש בחשבון שירות בניהול הלקוח, אתם צריכים להקצות לחשבון השירות את התפקיד roles/aiplatform.tuningServiceAgent. מקצים גם את התפקיד Tuning Service Agent roles/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.

  1. נכנסים לדף My notebooks של Colab Enterprise במסוף Google Cloud .

    כניסה לדף My notebooks

  2. בתפריט Region (אזור), בוחרים את האזור שבו נמצא הנוטבוק.

  3. לוחצים על התיקייה שרוצים לפתוח. אם עדיין לא יצרתם נוטבוק, יוצרים נוטבוק.

  4. בחלונית הצדדית שמשמאל ל-Notebook, לוחצים על הכפתור  Tuning.

    החלונית הצדדית מתרחבת ומוצגת בה הכרטיסייה התאמה.

  5. לוחצים על הלחצן Tune a Gemini model (שיפור מודל Gemini).

    ‫Colab Enterprise מוסיף תאי קוד לנוטבוק כדי לכוונן מודל Gemini.

  6. במחברת, מחפשים את תא הקוד שבו מאוחסנים ערכי הפרמטרים. תשתמשו בפרמטרים האלה כדי לקיים אינטראקציה עם פלטפורמת הסוכנים.

  7. מעדכנים את הערכים של הפרמטרים הבאים:

    • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא מחברת ה-Notebook.
    • ‫REGION: האזור שבו נמצא המחברת.
    • ‫TUNED_MODEL_DISPLAY_NAME: השם של המודל שעבר התאמה.
  8. בתא הקוד הבא, מעדכנים את הפרמטרים של כוונון המודל:

    • ‫source_model: מודל Gemini שרוצים להשתמש בו, לדוגמה, gemini-2.0-flash-001.
    • ‫train_dataset: כתובת ה-URL של מערך נתוני האימון.
    • ‫validation_dataset: כתובת ה-URL של מערך נתוני האימות.
    • משנים את שאר הפרמטרים לפי הצורך.
  9. מריצים את תאי הקוד שהחלונית הצדדית הוסיפה ל-Notebook.

  10. אחרי שתא הקוד האחרון יפעל, לוחצים על הלחצן  View tuning job שמופיע.

  11. בחלונית הצדדית מוצג מידע על משימת כוונון המודל.

    • בכרטיסייה Monitor מוצגים מדדי אופטימיזציה כשהמדדים מוכנים.
    • בכרטיסייה Dataset מוצגים סיכום ומדדים של מערך הנתונים אחרי שהוא עבר עיבוד.
    • בכרטיסייה פרטים מוצג מידע על משימת ההתאמה, כמו שיטת ההתאמה ומודל הבסיס (מודל המקור) שבו השתמשתם.
  12. אחרי שתהליך ההתאמה יסתיים, תוכלו לעבור ישירות מהכרטיסייה פרטי ההתאמה לדף שבו אפשר לבדוק את המודל. לוחצים על בדיקה.

    המסוף Google Cloud ייפתח בדף Agent Platform Text chat, שבו תוכלו לבדוק את המודל.

כוונון היפר-פרמטרים

מומלץ לשלוח את משימת הכוונון הראשונה בלי לשנות את הפרמטרים של היפר. ערך ברירת המחדל הוא הערך המומלץ על סמך תוצאות ההשוואה שלנו, כדי להפיק את האיכות הכי טובה של פלט המודל.

  • תקופות של זמן מערכת (epoch): מספר המעברים המלאים שהמודל מבצע על כל מערך הנתונים לאימון במהלך האימון. ‫Gemini Enterprise Agent Platform מתאימה באופן אוטומטי את ערך ברירת המחדל לגודל של מערך נתוני האימון. הערך הזה מבוסס על תוצאות הערכת ביצועים כדי לשפר את איכות הפלט מהמודל.
  • גודל המתאם: גודל המתאם שבו יש להשתמש למשימת האופטימיזציה. גודל המתאם משפיע על מספר הפרמטרים שאפשר לאמן במשימת הכוונון. ככל שהמתאם גדול יותר, המודל יכול ללמוד משימות מורכבות יותר, אבל נדרשת קבוצת נתונים גדולה יותר לאימון וזמני האימון ארוכים יותר.
  • מכפיל קצב הלמידה: מכפיל שמוחל על קצב הלמידה המומלץ. כדי להגיע להתכנסות מהר יותר, אפשר להגדיל את הערך. כדי להימנע מהתאמת יתר, אפשר להקטין את הערך.

בפוסט בבלוג Supervised Fine Tuning for Gemini: A best practices guide (כוונון עדין מפוקח של Gemini: מדריך לשיטות מומלצות) מפורטות שיטות מומלצות לכוונון עדין מפוקח.

הצגת רשימה של משימות כוונון

כדי לראות את רשימת משימות הכוונון בפרויקט הנוכחי, אתם יכולים להשתמש בGoogle Cloud מסוף, ב-Google Gen AI SDK או לשלוח בקשת GET באמצעות ה-method‏ tuningJobs.

המסוף

כדי לראות את משימות ההתאמה במסוף Google Cloud , עוברים לדף Agent Platform Studio.

עוברים אל Agent Platform Studio.

משימות ההתאמה האישית של Gemini מפורטות בטבלה בקטע Tuned Models.

Python

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

responses = client.tunings.list()
for response in responses:
    print(response.name)
    # Example response:
    # projects/123456789012/locations/us-central1/tuningJobs/123456789012345

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.

המסוף

  1. כדי לראות את הפרטים של מודל שעבר התאמה אישית במסוף Google Cloud , נכנסים לדף Agent Platform Studio.

    מעבר אל Agent Platform Studio

  2. בטבלה Tuned Models, מוצאים את המודל ולוחצים על Details.

    יוצגו פרטי המודל.

Python

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Get the tuning job and the tuned model.
# Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
tuning_job = client.tunings.get(name=tuning_job_name)

print(tuning_job.tuned_model.model)
print(tuning_job.tuned_model.endpoint)
print(tuning_job.experiment)
# Example response:
# projects/123456789012/locations/us-central1/models/1234567890@1
# projects/123456789012/locations/us-central1/endpoints/123456789012345
# projects/123456789012/locations/us-central1/metadataStores/default/contexts/tuning-experiment-2025010112345678

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

המסוף

  1. כדי לבטל משימת התאמה אישית במסוף Google Cloud , עוברים לדף Agent Platform Studio.

    מעבר אל Agent Platform Studio

  2. בטבלה Tuned Models, לוחצים על Manage run.

  3. לוחצים על ביטול.

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


from google import genai
from google.genai.types import HttpOptions


def cancel_tuning_job(tuning_job_name: str) -> None:
    client = genai.Client(http_options=HttpOptions(api_version="v1"))

    # Cancel the tuning job.
    # Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
    client.tunings.cancel(name=tuning_job_name)

הערכת המודל שעבר כוונון

אם לא הגדרתם את שירות ההערכה של AI גנרטיבי לפעול באופן אוטומטי אחרי משימת ההתאמה, תוכלו ליצור אינטראקציה עם נקודת הקצה של המודל המותאם באותו אופן שבו יוצרים אינטראקציה עם מודל Gemini בסיסי, באמצעות Google Gen AI SDK או באמצעות שליחת בקשת POST באמצעות השיטה generateContent.

במודלים של חשיבה, מומלץ להשבית את החשיבה או להגדיר את תקציב החשיבה למינימום במשימות מותאמות כדי להשיג ביצועים אופטימליים וחיסכון בעלויות. במהלך הכוונון המפוקח, המודל לומד לחקות את אמת הקרקע (ground truth) בקבוצת הנתונים לכוונון, בלי תהליך החשיבה. לכן, המודל המכוונן יכול לטפל במשימה ביעילות בלי מכסת חשיבה.

בדוגמה הבאה מוצגת הנחיה למודל עם השאלה 'למה השמיים כחולים?'.

המסוף

  1. כדי לראות את הפרטים של מודל שעבר התאמה במסוף Google Cloud , עוברים לדף Agent Platform Studio.

    עוברים אל Agent Platform Studio.

  2. בטבלה Tuned Models (מודלים שעברו התאמה), לוחצים על Test (בדיקה).

    מוצג דף שבו אפשר ליצור שיחה עם המודל שעבר כוונון.

Python

from google import genai
from google.genai.types import HttpOptions

client = genai.Client(http_options=HttpOptions(api_version="v1"))

# Get the tuning job and the tuned model.
# Eg. tuning_job_name = "projects/123456789012/locations/us-central1/tuningJobs/123456789012345"
tuning_job = client.tunings.get(name=tuning_job_name)

contents = "Why is the sky blue?"

# Predicts with the tuned endpoint.
response = client.models.generate_content(
    model=tuning_job.tuned_model.endpoint,
    contents=contents,
)
print(response.text)
# Example response:
# The sky is blue because ...

REST

כדי לבדוק מודל מכוונן באמצעות הנחיה, שולחים בקשת POST ומציינים את הערכים של `MREP_LOCATION` ו-`ENDPOINT_ID`.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫MREP_LOCATION: המיקום של נקודת הקצה בכמה אזורים Google Cloudשבה פועלת משימת הכוונון. אלה הערכים הקבילים:
    • us
    • eu
  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫ENDPOINT_ID: מזהה נקודת הקצה של המודל שעבר התאמה, מ-GET API.
  • ‫TEMPERATURE: הטמפרטורה משמשת לדגימה במהלך יצירת התשובה, שמתרחשת כשמפעילים את topP ו-topK. הטמפרטורה שולטת במידת האקראיות בבחירת האסימון. טמפרטורות נמוכות טובות להנחיות שדורשות תשובה פחות פתוחה או יצירתית, ואילו טמפרטורות גבוהות יכולות להוביל לתוצאות יותר מגוונות או יצירתיות. טמפרטורה של 0 פירושה שתמיד נבחרים האסימונים עם ההסתברות הכי גבוהה. במקרה כזה, התשובות להנחיה נתונה הן ברובן דטרמיניסטיות, אבל עדיין יכולות להיות וריאציות קלות.

    אם המודל מחזיר תשובה כללית מדי, קצרה מדי או תשובת ברירת מחדל, נסו להגדיל את הטמפרטורה. אם המודל נכנס ליצירה אינסופית, יכול להיות שהעלאת הטמפרטורה ל-0.1 לפחות תביא לתוצאות טובות יותר.

    ‫1.0 הוא הערך ההתחלתי המומלץ לטמפרטורה.
  • TOP_P: הערך של Top-P משנה את האופן שבו המודל בוחר אסימונים לפלט. הטוקנים נבחרים מהסבירים ביותר לסבירים פחות, עד שסכום ההסתברויות שלהם שווה לערך של Top-P. לדוגמה, אם לאסימונים א', ב' וג' יש הסתברות של 0.3, 0.2 ו-0.1, והערך של top-P הוא 0.5, המודל יבחר בא' או בב' כאסימון הבא באמצעות הטמפרטורה, ולא יכלול את ג' כמועמד.

    מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות.

  • TOP_K: הערך של 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. לדוגמה, אם לאסימונים א', ב' וג' יש הסתברות של 0.3, 0.2 ו-0.1, והערך של top-P הוא 0.5, המודל יבחר בא' או בב' כאסימון הבא באמצעות הטמפרטורה, ולא יכלול את ג' כמועמד.

    מציינים ערך נמוך יותר כדי לקבל תשובות פחות אקראיות, וערך גבוה יותר כדי לקבל תשובות יותר אקראיות.

  • TOP_K: הערך של 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.

  1. כדי לראות את הפרטים של מודל שעבר התאמה אישית במסוף Google Cloud , נכנסים לדף Agent Platform Studio.

    מעבר אל Agent Platform Studio

  2. בטבלה Tune and Distill (כוונון וזיקוק), לוחצים על השם של המודל המכוונן שרוצים לראות את המדדים שלו.

    מדדי הכוונון מופיעים בכרטיסייה Monitor.

מדדים של שיפור המודל

תהליך ההתאמה של המודל אוסף באופן אוטומטי את מדדי ההתאמה הבאים של המודל:

  • ‫/train_total_loss: הפסד במערך הנתונים של ההתאמה בשלב אימון.
  • /train_fraction_of_correct_next_step_preds: דיוק האסימון בשלב אימון. הסקה אחת מורכבת מרצף של אסימונים חזויים. המדד הזה מודד את הדיוק של הטוקנים החזויים בהשוואה לנתוני האמת במערך הנתונים של ההתאמה העדינה.
  • /train_num_predictions: מספר האסימונים החזויים בשלב אימון.

מדדים של אימות המודל

אתם יכולים להגדיר משימת כוונון של מודל כדי לאסוף את מדדי האימות הבאים של המודל:

  • ‫/eval_total_loss: הפסד עבור מערך האימות בשלב האימות.
  • ‫/eval_fraction_of_correct_next_step_preds: דיוק הטוקן בשלב האימות. הסקה אחת מורכבת מרצף של אסימונים חזויים. המדד הזה בודק את הדיוק של הטוקנים החזויים בהשוואה לאמת הקרקע (ground truth) במערך הנתונים לאימות.
  • ‫/eval_num_predictions: מספר הטוקנים החזויים בשלב האימות.

התרשימים של המדדים זמינים אחרי שמתחילים להריץ את משימת הכוונון. הוא יתעדכן בזמן אמת ככל שההתאמה תתקדם. אם לא תציינו קבוצת נתונים לאימות כשתצרו את משימת הכוונון, רק התצוגות החזותיות של מדדי הכוונון יהיו זמינות.

המאמרים הבאים