שימוש בנקודות ביקורת בכוונון מודלים של 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.

מגדירים משתני סביבה כדי להשתמש ב-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'

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

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

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