הגדרת מודל שופט

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

תהליך העבודה הבסיסי של ההערכה מפורט במדריך למתחילים בנושא שירות הערכה ל-AI גנרטיבי. סדרת המאמרים בנושא התאמה אישית מתקדמת של מודל השופט כוללת את הדפים הבאים:

  1. הערכת מודל שופט
  2. הגדרת מודל שופט (הדף הנוכחי)

סקירה כללית

כדי לשפר את איכות המודל השופט, אתם יכולים:

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

הוראות מערכת

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

בדוגמה הבאה, שמשתמשת ב-Vertex AI SDK, מוסיפים את system_instruction ברמת המדד של PointwiseMetric:

system_instruction = "You are an expert evaluator."
linguistic_acceptability = PointwiseMetric(
    metric="linguistic_acceptability",
    metric_prompt_template=linguistic_acceptability_metric_prompt_template,
    system_instruction=system_instruction,
)

eval_result = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[linguistic_acceptability]
).evaluate()

אפשר להשתמש באותה שיטה עם PairwiseMetric.

הגדרת מודל השופט

אתם יכולים להתאים אישית את מודל השופט באמצעות autorater_config:

  • החלפת תשובות: החלפת התשובות של מודל הבסיס והמודל המועמד כדי לצמצם את ההטיה של מודל השופט במהלך ההערכה.

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

  • מודל שופט מכוונן: שימוש במודל LLM מכוונן בתור מודל השופט.

היפוך התשובה

ב-PairwiseMetrics, שירות ההערכה של ה-AI הגנרטיבי מקבל תשובות למודל הבסיס ולמודל המועמד. מודל השופט מעריך איזו תשובה תואמת יותר לקריטריונים בmetric_prompt_template. עם זאת, יכול להיות שהמודל השופט יהיה מוטה לטובת המודל הבסיסי או המודל המועמד בהגדרות מסוימות.

כדי לצמצם את ההטיה בתוצאות ההערכה, אתם יכולים להפעיל היפוך תשובות, שבו חצי מהקריאות למודל השופט הופכות את התשובה של מודל הבסיס והמודל המועמד באמצעות Vertex AI SDK:

from vertexai.preview.evaluation import AutoraterConfig

pairwise_relevance_prompt_template = """
    # Instruction
    …

    ### Response A
    {baseline_model_response}

    ### Response B
    {candidate_model_response}
"""

my_pairwise_metric = PairwiseMetric(
    metric="my_pairwise_metric",
    metric_prompt_template=pairwise_relevance_prompt_template,
    candidate_response_field_name = "candidate_model_response",
    baseline_response_field_name = "baseline_model_response"
)


# Define an AutoraterConfig with flip_enabled
my_autorater_config = AutoraterConfig(flip_enabled=True)

# Define an EvalTask with autorater_config
flip_enabled_eval_result = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[my_pairwise_metric],
    autorater_config=my_autorater_config,
).evaluate()

דגימה מרובה

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

עם זאת, הגדלת הדגימה גם מגדילה את זמן האחזור להשלמת הבקשה. אפשר לעדכן את ערך ספירת הדגימה באמצעות AutoraterConfig למספר שלם בין 1 ל-32. מומלץ להשתמש בערך ברירת המחדל של sampling_count, שהוא 4, כדי לאזן בין שני הגורמים: אקראיות וזמן אחזור.

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

from vertexai.preview.evaluation import AutoraterConfig

# Define customized sampling count in AutoraterConfig
autorater_config = AutoraterConfig(sampling_count=6)

# Run evaluation with the sampling count.
eval_result = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[METRICS],
    autorater_config=autorater_config
).evaluate()

מודל שופט מכוונן

אם יש לכם נתוני כוונון טובים לתרחיש לדוגמה של ההערכה, אתם יכולים להשתמש ב-Vertex AI SDK כדי לכוונן מודל Gemini כמודל השופט ולהשתמש במודל המכוונן להערכה. אפשר לציין מודל מכוונן כמודל השופט באמצעות AutoraterConfig:

from vertexai.preview.evaluation import {
   AutoraterConfig,
   PairwiseMetric,
   tune_autorater,
   evaluate_autorater,
}

# Tune a model to be the judge model. The tune_autorater helper function returns an AutoraterConfig with the judge model set as the tuned model.
autorater_config: AutoRaterConfig = tune_autorater(
    base_model="gemini-2.0-flash",
    train_dataset=f"{BUCKET_URI}/train/sft_train_samples.jsonl",
    validation_dataset=f"{BUCKET_URI}/val/sft_val_samples.jsonl",
    tuned_model_display_name=tuned_model_display_name,
)

# Alternatively, you can set up the judge model with an existing tuned model endpoint
autorater_config = AutoraterConfig(autorater_model=TUNED_MODEL)

# Use the tuned judge model
eval_result = EvalTask(
    dataset=EVAL_DATASET,
    metrics=[METRICS],
    autorater_config=autorater_config,
).evaluate()

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