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

במאמר הזה מוסבר איך לשפר מודל Gemini באמצעות כוונון מפוקח (SFT).

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

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

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

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

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

יצירת משימת כוונון

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

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

המסוף

כדי לכוונן מודל טקסט באמצעות כוונון מפוקח (SFT) במסוףGoogle Cloud :

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

    עוברים אל Agent Studio.

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

    הדף Tuning dataset נפתח.

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

    המודל החדש מופיע בקטע Tuned Models בדף Tune and Distill. כשהכוונון של המודל מסתיים, הסטטוס משתנה ל-Succeeded.

Python

מתקינים את Google Gen AI SDK:

pip install --upgrade google-genai

מידע נוסף זמין במאמרי העזרה של ה-SDK.

מגדירים משתני סביבה כדי להשתמש ב-Google Gen AI SDK עם Gemini Enterprise Agent Platform:

# Replace PROJECT_ID with your project ID, and set GOOGLE_CLOUD_LOCATION to
# the region where the tuning job runs.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
export GOOGLE_CLOUD_LOCATION=us # Use us-central1 for Gemini 2.5 and earlier models
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 באמצעות ה-method‏ tuningJobs.create. חלק מהפרמטרים לא נתמכים בכל המודלים. חשוב לכלול רק את הפרמטרים הרלוונטיים למודל שאתם מכווננים.

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫TUNING_JOB_REGION: האזור שבו פועלת משימת הכוונון. זה גם האזור שבו המודל המכוונן מועלה כברירת מחדל. ב-Gemini 3 ובמודלים מתקדמים יותר, צריך להשתמש בנקודת הקצה us או eu במספר אזורים.
  • ‫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 כדי להשתמש רק בנקודת השמירה האחרונה.
  • ‫TUNED_MODEL_DISPLAYNAME אופציונלי: שם לתצוגה של המודל המכוונן. אם לא מגדירים שם, המערכת יוצרת שם אקראי.
  • ‫KMS_KEY_NAME אופציונלי: מזהה המשאב ב-Cloud Key Management Service של מפתח ההצפנה בניהול הלקוח שמשמש להגנה על משאב. המפתח הוא בפורמט: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. המפתח צריך להיות באותו אזור שבו נוצר משאב המחשוב. מידע נוסף זמין במאמר מפתחות הצפנה בניהול הלקוח (CMEK).
  • ‫SERVICE_ACCOUNT אופציונלי: חשבון השירות שעומס העבודה של tuningJob פועל בתורו. אם לא מציינים סוכן שירות, המערכת משתמשת בסוכן השירות Agent Platform Secure Fine-Tuning בפרויקט. סוכן שירות לכוונון אם אתם מתכננים להשתמש בחשבון שירות בניהול הלקוח, אתם צריכים להקצות לחשבון השירות את התפקיד roles/aiplatform.tuningServiceAgent. צריך גם להקצות את התפקיד סוכן שירות לכוונון (roles/iam.serviceAccountTokenCreator) לחשבון השירות בניהול הלקוח.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.TUNING_JOB_REGION.rep.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
  },
  "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://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

דוגמה לפקודת curl

PROJECT_ID=PROJECT_ID
LOCATION=us
curl \
-X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
"https://aiplatform.${LOCATION}.rep.googleapis.com/v1/projects/${PROJECT_ID}/locations/${LOCATION}/tuningJobs" \
-d \
$'{
   "baseModel": "gemini-3.5-flash",
   "supervisedTuningSpec" : {
      "trainingDatasetUri": "TRAINING_DATASET_URI",
      "validationDatasetUri": "VALIDATION_DATASET_URI"
   },
   "tunedModelDisplayName": "tuned_gemini"
}'

REST

כדי ליצור משימת כוונון של מודל, שולחים בקשת POST באמצעות ה-method‏ tuningJobs.create. חלק מהפרמטרים לא נתמכים בכל המודלים. חשוב לכלול רק את הפרמטרים הרלוונטיים למודל שאתם מכווננים.

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫TUNING_JOB_REGION: האזור שבו פועלת משימת הכוונון. זה גם האזור שבו המודל המכוונן מועלה כברירת מחדל. במודלים של Gemini 2.5 וגרסאות קודמות אין תמיכה בנקודות קצה במספר אזורים. משתמשים בנקודת קצה אזורית, כמו us-central1.
  • ‫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 גנרטיבי. אפשר להשתמש במפרטי המדדים הבאים: pointwiseMetricSpec,‏ pairwiseMetricSpec,‏ exactMatchSpec,‏ bleuSpec ו-rougeSpec.
  • ‫METRIC_SPEC_FIELD_NAME אופציונלי: השדות הנדרשים למפרט המדדים שבחרתם. לדוגמה, metricPromptTemplate
  • METRIC_SPEC_FIELD_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 Key Management Service של מפתח ההצפנה בניהול הלקוח שמשמש להגנה על משאב. המפתח הוא בפורמט: projects/my-project/locations/my-region/keyRings/my-kr/cryptoKeys/my-key. המפתח צריך להיות באותו אזור שבו נוצר משאב המחשוב. מידע נוסף זמין במאמר מפתחות הצפנה בניהול הלקוח (CMEK).
  • ‫SERVICE_ACCOUNT אופציונלי: חשבון השירות שעומס העבודה של tuningJob פועל בתורו. אם לא מציינים סוכן שירות, המערכת משתמשת בסוכן השירות Agent Platform Secure Fine-Tuning בפרויקט. סוכן שירות לכוונון אם אתם מתכננים להשתמש בחשבון שירות בניהול הלקוח, אתם צריכים להקצות לחשבון השירות את התפקיד roles/aiplatform.tuningServiceAgent. צריך גם להקצות את התפקיד סוכן שירות לכוונון (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": [
              {
                  "aggregationMetrics": ["AVERAGE", "STANDARD_DEVIATION"],
                  "METRIC_SPEC": {
                      "METRIC_SPEC_FIELD_NAME":
                          METRIC_SPEC_FIELD_CONTENT
                  }
              }
          ],
          "outputConfig": {
              "gcsDestination": {
                  "outputUriPrefix": "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=PROJECT_ID
LOCATION=us-central1
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" : {
      "trainingDatasetUri": "TRAINING_DATASET_URI",
      "validationDatasetUri": "VALIDATION_DATASET_URI"
   },
   "tunedModelDisplayName": "tuned_gemini"
}'

Colab Enterprise

אתם יכולים ליצור משימה לכוונון מודל ב-Agent Platform באמצעות החלונית הצדדית ב-Colab Enterprise. החלונית הצדדית מוסיפה את קטעי הקוד הרלוונטיים ל-Notebook. לאחר מכן, משנים את קטעי הקוד ומריצים אותם כדי ליצור את משימת הכוונון. איך משתמשים בחלונית הצדדית כדי לכוונן מודלים ב-Agent Platform

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

    מעבר אל "תיקיות ה-Notebook שלי"

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

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

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

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

  5. לוחצים על הכפתור Tune a Gemini model.

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

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

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

    • ‫PROJECT_ID: מזהה הפרויקט שבו נמצא ה-notebook.
    • ‫REGION: האזור שבו נמצא ה-notebook.
    • ‫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 מוצגים סיכום ומדדים של מערך הנתונים אחרי שהוא עבר עיבוד.
    • בכרטיסייה Details מוצג מידע על משימת הכוונון, כמו שיטת הכוונון והמודל הבסיסי (מודל המקור) שבו השתמשתם.
  12. אחרי שמשימת הכוונון מסתיימת, אתם יכולים לעבור ישירות מהכרטיסייה Tuning details לדף שבו אפשר לבדוק את המודל. לוחצים על בדיקה.

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

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

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

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

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

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

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

המסוף

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

מעבר ל-Agent 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://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

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 באמצעות ה-method‏ tuningJobs.get.

המסוף

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

    מעבר ל-Agent 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 ומציינים את TUNING_JOB_ID.

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫TUNING_JOB_REGION: האזור שבו פועלת משימת הכוונון. זה גם האזור שבו המודל המכוונן מועלה כברירת מחדל.
  • ‫TUNING_JOB_ID: המזהה של משימת הכוונון.

ה-method של ה-HTTP וכתובת ה-URL:

GET https://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST

כדי לראות את הפרטים של משימת כוונון מודל, שולחים בקשת GET באמצעות השיטה tuningJobs.get ומציינים את TUNING_JOB_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 באמצעות ה-method‏ tuningJobs.cancel.

המסוף

  1. כדי לבטל משימת כוונון במסוף Google Cloud , נכנסים לדף Agent Studio.

    מעבר ל-Agent Studio

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

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)

REST

כדי לבטל משימה של כוונון מודל, שולחים בקשת POST באמצעות השיטה tuningJobs.cancel ומציינים את TUNING_JOB_ID.

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫TUNING_JOB_REGION: האזור שבו פועלת משימת הכוונון. זה גם האזור שבו המודל המכוונן מועלה כברירת מחדל.
  • ‫TUNING_JOB_ID: המזהה של משימת הכוונון.

ה-method של ה-HTTP וכתובת ה-URL:

POST https://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.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://aiplatform.TUNING_JOB_REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs/TUNING_JOB_ID:cancel" | Select-Object -Expand Content

אתם אמורים לקבל תגובת JSON שדומה לזו:

REST

כדי לבטל משימה של כוונון מודל, שולחים בקשת POST באמצעות השיטה tuningJobs.cancel ומציינים את TUNING_JOB_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 שדומה לזו:

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

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

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

בדוגמה הבאה, המודל מקבל את ההנחיה "למה השמיים כחולים?".

המסוף

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

    עוברים אל Agent 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, הטוקן הבא ייבחר מבין שלושת הטוקנים עם ההסתברות הגבוהה ביותר באמצעות טמפרטורה.

    בכל שלב של בחירת אסימון, נדגמים האסימונים עם ההסתברויות הגבוהות ביותר ב-Top-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?"
                }
            ]
        }
    ],
    "generationConfig": {
        "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 ומציינים את ה-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, הטוקן הבא ייבחר מבין שלושת הטוקנים עם ההסתברות הגבוהה ביותר באמצעות טמפרטורה.

    בכל שלב של בחירת אסימון, נדגמים האסימונים עם ההסתברויות הגבוהות ביותר ב-Top-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?"
                }
            ]
        }
    ],
    "generationConfig": {
        "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://aiplatform.REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID

כדי לשלוח את הבקשה אתם צריכים לבחור אחת מהאפשרויות הבאות:

curl

מריצים את הפקודה הבאה:

curl -X DELETE \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://aiplatform.REGION.rep.googleapis.com/v1/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://aiplatform.REGION.rep.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID" | Select-Object -Expand Content

אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.

REST

מפעילים את ה-method‏ models.delete.

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

  • ‫PROJECT_ID: מזהה הפרויקט.
  • ‫REGION: האזור שבו נמצא המודל המכוונן.
  • ‫MODEL_ID: המזהה של המודל המכוונן שרוצים למחוק.

ה-method של ה-HTTP וכתובת ה-URL:

DELETE https://REGION-aiplatform.googleapis.com/v1/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/v1/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/v1/projects/PROJECT_ID/locations/REGION/models/MODEL_ID" | Select-Object -Expand Content

אמורים לקבל קוד סטטוס של הצלחה (2xx) ותגובה ריקה.

מדדי כוונון ואימות

אתם יכולים להגדיר משימת כוונון מודל כדי לאסוף ולדווח על מדדי כוונון והערכה של המודל, ואז להציג אותם באופן חזותי ב-Agent Studio.

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

    עוברים אל Agent Studio.

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

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

מדדים של כוונון מודל

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

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

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

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

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

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

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