שימוש בכוונון מתמשך של מודלים של Gemini

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

אתם יכולים להשתמש בכוונון רציף למטרות הבאות:

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

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

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

מידע מפורט על גרסאות של מודלים של Gemini זמין במאמרים מודלים של Google וגרסאות של מודלים ומחזור החיים שלהם.

הגדרת כוונון רציף

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

  • אפשר להשתמש בכוונון רציף ב-Google Gen AI SDK. היא לא נתמכת ב-Agent Platform SDK ל-Python.
  • חובה לציין שם משאב של מודל:

    • במסוף Cloud de Confiance , שם המשאב של המודל מופיע בדף Gemini Enterprise Agent Platform Tuning בשדה Tuning details > Model Name.
    • הפורמט של שם משאב המודל הוא:
    projects/{project}/locations/{location}/models/{modelId}@{version_id}
    
    • השדה {version_id} הוא אופציונלי, והוא יכול להיות מזהה הגרסה שנוצר או כינוי גרסה שסופק על ידי המשתמש. אם משמיטים את הפרמטר, המערכת משתמשת בגרסת ברירת המחדל.
  • אם לא מציינים גרסת מודל, המערכת משתמשת בגרסת ברירת המחדל.

  • אם משתמשים בנקודת ביקורת כמודל בסיס ולא מציינים מזהה של נקודת ביקורת, המערכת משתמשת בנקודת הביקורת שמוגדרת כברירת מחדל. מידע נוסף זמין במאמר בנושא שימוש בנקודות ביקורת בכוונון מפוקח (SFT) של מודלי Gemini. במסוף Cloud de Confiance , נקודת הבדיקה שמוגדרת כברירת מחדל נמצאת כאן:

    1. עוברים לדף Model Registry.
    2. לוחצים על שם המודל של המודל.
    3. לוחצים על הצגת כל הגרסאות.
    4. לוחצים על הגרסה הרצויה כדי לראות רשימה של נקודות ביקורת. נקודת הבדיקה שמוגדרת כברירת מחדל מסומנת במילה default לצד מזהה נקודת הבדיקה.
  • כברירת מחדל, גרסת מודל חדשה נוצרת באותו מודל הורה כמו המודל שעבר כוונון מראש. אם תספקו שם מוצג חדש למודל מכוונן, ייווצר מודל חדש.

  • אפשר להשתמש כמודלים בסיסיים לכוונון מתמשך רק במודלים בסיסיים מכווננים בפיקוח, שעברו כוונון ב-11 ביולי 2025 ואילך.

  • אם אתם משתמשים במפתחות הצפנה בניהול הלקוח (CMEK), עבודת הכוונון הרציף חייבת להשתמש באותו מפתח CMEK שבו השתמשתם בעבודת הכוונון של המודל שכבר כוונן.

המסוף

כדי להגדיר כוונון מתמשך למודל שכבר כוונן באמצעות מסוףCloud de Confiance :

  1. בקטע Gemini Enterprise Agent Platform במסוף Cloud de Confiance , עוברים לדף Agent Platform Studio.

    מעבר אל Agent Platform Studio

  2. לוחצים על Create tuned model.

  3. בקטע פרטי המודל, מגדירים את האפשרויות הבאות:

    1. בוחרים באפשרות שיפור מודל שכבר שופר.
    2. בשדה Pre-tuned model (מודל שעבר התאמה מראש), בוחרים את השם של המודל שעבר התאמה מראש.
    3. אם למודל יש לפחות נקודת ביקורת אחת, מופיע השדה הנפתח Checkpoint. בוחרים את נקודת הציון הרצויה.
  4. לוחצים על Continue.

REST

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

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

  • פרמטרים לכוונון מתמשך:
    • ‫TUNED_MODEL_NAME: השם של המודל שעבר התאמה אישית שרוצים להשתמש בו.
    • CHECKPOINT_IDאופציונלי: מזהה נקודת הבדיקה שבה רוצים להשתמש.
  • שאר הפרמטרים זהים לאלה של כוונון עדין מפוקח או כוונון העדפות.

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

POST https://TUNING_JOB_REGION-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/TUNING_JOB_REGION/tuningJobs

גוף בקשת JSON:

{
  "preTunedModel": {
      "tunedModelName": "TUNED_MODEL_NAME",
      "checkpointId": "CHECKPOINT_ID",
  },
  "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 \
$'{
   "preTunedModel": "gemini-3.5-flash",
   "supervisedTuningSpec" : {
      "trainingDatasetUri": "gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_train_data.jsonl",
      "validationDatasetUri": "gs://cloud-samples-data/ai-platform/generative_ai/gemini/text/sft_validation_data.jsonl"
   },
   "tunedModelDisplayName": "tuned_gemini"
}'

Google Gen AI SDK

בדוגמה הבאה מוצג איך להגדיר כוונון מתמשך באמצעות Google Gen AI SDK.

import time

from google import genai
from google.genai.types import HttpOptions, TuningDataset, CreateTuningJobConfig

# TODO(developer): Update and un-comment below line
# tuned_model_name = "projects/123456789012/locations/us-central1/models/1234567890@1"
# checkpoint_id = "1"

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",
)

tuning_job = client.tunings.tune(
    base_model=tuned_model_name,  # Note: Using a Tuned Model
    training_dataset=training_dataset,
    config=CreateTuningJobConfig(
        tuned_model_display_name="Example tuning job",
        validation_dataset=validation_dataset,
        pre_tuned_model_checkpoint_id=checkpoint_id,
    ),
)

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@2
# 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'