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

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

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

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

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

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

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

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

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

יצירת משימת שיפור ביצועים שמייצאת נקודות ביקורת

אתם יכולים ליצור משימת שיפור שמייצאת נקודות ביקורת באמצעות Google Gen AI SDK או Cloud de Confiance המסוף.

המסוף

כדי ליצור משימת כוונון שמייצאת נקודות ביקורת, נכנסים לדף Agent Platform Studio ובוחרים בכרטיסייה Tuning. מידע נוסף זמין במאמר בנושא התאמת מודל.

Google Gen AI SDK

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

מתקינים את 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",
        # Set to True to disable tuning intermediate checkpoints. Default is False.
        export_last_checkpoint_only=False,
        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'

הצגת נקודות הביקורת של משימת שיפור

אפשר לראות את נקודות הבדיקה של משימת הכוונון שהושלמה במסוףCloud de Confiance או להציג אותן באמצעות Google Gen AI SDK.

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

המסוף

  1. כדי למצוא את המודל המכוונן במסוף Cloud de Confiance , נכנסים לדף Agent Platform Studio.

    מעבר אל Agent Platform Studio

  2. בכרטיסייה Tuning, מאתרים את המודל ולוחצים על Monitor.

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

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

Google Gen AI SDK

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)

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'

הצגת פרטי המודל ונקודות הביקורת

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

השדה Endpoint של המודל מתעדכן באופן הבא:

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

המסוף

אפשר לראות את המודל שעבר כוונון במרשם המודלים של Gemini Enterprise Agent Platform בדף נקודות הקצה של חיזוי מיידי.

  1. עוברים לדף Model Registry בקטע Agent Platform במסוף Cloud de Confiance .

    כניסה לדף מרשם המודלים

  2. לוחצים על שם המודל.

    גרסת ברירת המחדל של המודל מופיעה.

  3. לוחצים על הכרטיסייה פרטי גרסה כדי לראות מידע על גרסת המודל.

    שימו לב שהערך של Objective הוא Large model, הערך של Model type הוא Foundation והערך של Source הוא Vertex AI Studio tuning.

  4. לוחצים על הכרטיסייה Deploy & test (פריסה ובדיקה) כדי לראות את נקודת הקצה שבה המודל נפרס.

  5. לוחצים על שם נקודת הקצה כדי לעבור לדף Endpoint ולראות את רשימת נקודות הבדיקה שנפרסו בנקודת הקצה. לכל נקודת ביקורת מוצגים מזהה גרסת המודל ומזהה נקודת הביקורת. נקודת הבדיקה שמוגדרת כברירת מחדל מסומנת במילה default לצד המזהה של נקודת הבדיקה.

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

כניסה לדף Tuning

Google Gen AI SDK

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)
tuned_model = client.models.get(model=tuning_job.tuned_model.model)
print(tuned_model)
# Example response:
# Model(name='projects/123456789012/locations/us-central1/models/1234567890@1', ...)

print(f"Default checkpoint: {tuned_model.default_checkpoint_id}")
# Example response:
# Default checkpoint: 2

if tuned_model.checkpoints:
    for _, checkpoint in enumerate(tuned_model.checkpoints):
        print(f"Checkpoint {checkpoint.checkpoint_id}: ", checkpoint)
# Example response:
# Checkpoint 1:  checkpoint_id='1' epoch=1 step=10
# Checkpoint 2:  checkpoint_id='2' epoch=2 step=20

אם הגדרתם את שירות ההערכה של AI גנרטיבי להרצת הערכות אחרי כל נקודת ביקורת, תוכלו לראות את קטגוריית Cloud Storage שהגדרתם לתוצאות ההערכה.

בדיקת נקודות הציון

אתם יכולים לראות רשימה של נקודות ביקורת במאגר המודלים של Gemini Enterprise Agent Platform ולבדוק כל אחת מהן. אפשר גם להשתמש ב-Google Gen AI SDK כדי לרשום ולבדוק את נקודות הבדיקה.

המסוף

  1. כדי למצוא את המודל המכוונן במסוף Cloud de Confiance , נכנסים לדף Agent Platform Studio.

    מעבר אל Agent Platform Studio

  2. בכרטיסייה Tuning, מאתרים את המודל ולוחצים על Monitor.

  3. בטבלת נקודות הבדיקה בחלונית Monitor (מעקב), לצד נקודת הבדיקה הרצויה, לוחצים על הקישור Test (בדיקה).

Google Gen AI SDK

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 default checkpoint.
response = client.models.generate_content(
    model=tuning_job.tuned_model.endpoint,
    contents=contents,
)
print(response.text)
# Example response:
# The sky is blue because ...

# Predicts with Checkpoint 1.
checkpoint1_response = client.models.generate_content(
    model=tuning_job.tuned_model.checkpoints[0].endpoint,
    contents=contents,
)
print(checkpoint1_response.text)
# Example response:
# The sky is blue because ...

# Predicts with Checkpoint 2.
checkpoint2_response = client.models.generate_content(
    model=tuning_job.tuned_model.checkpoints[1].endpoint,
    contents=contents,
)
print(checkpoint2_response.text)
# Example response:
# The sky is blue because ...

בחירת נקודת ביקורת חדשה שתוגדר כברירת מחדל

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

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

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

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

המסוף

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

    מעבר אל Agent Platform Studio

  2. בכרטיסייה Tuning, מוצאים את המודל ולוחצים על Monitor.

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

  4. לוחצים על אישור.

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

Google Gen AI SDK

from google import genai
from google.genai.types import HttpOptions, UpdateModelConfig

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)
tuned_model = client.models.get(model=tuning_job.tuned_model.model)

print(f"Default checkpoint: {tuned_model.default_checkpoint_id}")
print(f"Tuned model endpoint: {tuning_job.tuned_model.endpoint}")
# Example response:
# Default checkpoint: 2
# projects/123456789012/locations/us-central1/endpoints/123456789012345

# Set a new default checkpoint.
# Eg. checkpoint_id = "1"
tuned_model = client.models.update(
    model=tuned_model.name,
    config=UpdateModelConfig(default_checkpoint_id=checkpoint_id),
)

print(f"Default checkpoint: {tuned_model.default_checkpoint_id}")
print(f"Tuned model endpoint: {tuning_job.tuned_model.endpoint}")
# Example response:
# Default checkpoint: 1
# projects/123456789012/locations/us-central1/endpoints/123456789000000

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