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

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

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

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

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

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

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

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

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

יצירת משימת אופטימיזציה שמייצאת נקודות ביקורת

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

המסוף

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

Google Gen AI SDK

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

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

pip install --upgrade google-genai

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

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

# Replace the `GOOGLE_CLOUD_PROJECT` and `GOOGLE_CLOUD_LOCATION` values
# with appropriate values for your project.
export GOOGLE_CLOUD_PROJECT=GOOGLE_CLOUD_PROJECT
export GOOGLE_CLOUD_LOCATION=us-central1
export GOOGLE_GENAI_USE_ENTERPRISE=True

יוצרים את משימת ההתאמה:

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'

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

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

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

המסוף

  1. כדי לאתר את המודל שעבר התאמה במסוף Google Cloud , עוברים לדף 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'

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

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

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

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

המסוף

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

  1. עוברים לדף מרשם המודלים בקטע Agent Platform במסוף Google Cloud .

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

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

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

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

    שימו לב שהיעד הוא Large model, סוג המודל הוא Foundation והמקור הוא Vertex AI Studio tuning.

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

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

אפשר גם לראות את נקודות הבדיקה בדף פרטי משימת ההתאמה. כדי לראות את הדף הזה, עוברים לדף 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. כדי לאתר את המודל שעבר התאמה במסוף Google Cloud , עוברים לדף Agent Platform Studio.

    עוברים אל Agent Platform Studio

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

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

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. כדי לאתר את המודל שעבר התאמה במסוף Google Cloud , עוברים לדף 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

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