הערכת מודל שופט

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

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

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

סקירה כללית

השימוש בשופטים אנושיים כדי להעריך מודלים גדולים של שפה (LLM) יכול להיות יקר וגוזל זמן. שימוש במודל שופט הוא דרך יעילה יותר להעריך מודלים גדולים של שפה (LLM). הכלי "הערכות של AI גנרטיבי" משתמש במודל Gemini מוגדר כמודל השופט, עם הנחיות שניתן להתאים אישית כדי להעריך את המודל שלכם בתרחישים שונים לדוגמה.

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

הכנת מערך הנתונים

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

  • ב-PointwiseMetric, צריך להכין את העמודה {metric_name}/human_rating במערך הנתונים בתור אמת קרקע (ground truth) לתוצאה של {metric_name}/score שנוצרה על ידי מדדים מבוססי-מודל.

  • ב-PairwiseMetric, צריך להכין את העמודה {metric_name}/human_pairwise_choice במערך הנתונים בתור אמת קרקע (ground truth) לתוצאה של {metric_name}/pairwise_choice שנוצרה על ידי מדדים מבוססי-מודל.

משתמשים בסכימה הבאה של קבוצת הנתונים:

מדד מבוסס-מודל העמודה "סיווג אנושי"
PointwiseMetric {metric_name}/human_rating
PairwiseMetric {metric_name}/human_pairwise_choice

המדדים הזמינים

ב-PointwiseMetric שמחזיר רק 2 ציונים (כמו 0 ו-1), וב-PairwiseMetric שיש לו רק 2 סוגי העדפות (מודל א' או מודל ב'), המדדים הבאים זמינים:

מדד החישוב
דיוק מאוזן של 2 מחלקות \( (1/2)*(True Positive Rate + True Negative Rate) \)
ציון F1 מאוזן של 2 מחלקות \( ∑_{i=0,1} (cnt_i/sum) * f1(class_i) \)
מטריצת טעויות אפשר להשתמש בשדות confusion_matrix ו-confusion_matrix_labels כדי לחשב מדדים כמו שיעור החיוביים האמיתיים (TPR), שיעור השליליים האמיתיים (TNR), שיעור החיוביים השגויים (FPR) ושיעור השליליים השגויים (FNR).

לדוגמה, התוצאה הבאה:
‫
confusion_matrix = [[20, 31, 15],
    [10, 11,  3],
   [ 3,  2,  2]]
confusion_matrix_labels = ['BASELINE', 'CANDIDATE', 'TIE']
מתורגם למטריצת הטעויות הבאה:
             BASELINE |  CANDIDATE | TIE
   BASELINE.    20         31        15
   CANDIDATE.   10         11         3
   TIE.         3           2         2 |

בPointwiseMetric שמחזיר יותר מ-2 ציונים (למשל 1 עד 5), ובPairwiseMetric שיש לו יותר מ-2 סוגי העדפות (מודל א', מודל ב' או תיקו), המדדים הבאים זמינים:

מדד החישוב
דיוק מאוזן של כמה מחלקות \( (1/n) *∑_{i=1...n}(recall(class_i)) \)
ציון F1 מאוזן של כמה מחלקות \( ∑_{i=1...n} (cnt_i/sum) * f1(class_i) \)

כאשר:

  • \( f1 = 2 * precision * recall / (precision + recall) \)

    • \( precision = True Positives / (True Positives + False Positives) \)

    • \( recall = True Positives / (True Positives + False Negatives) \)

  • ‫\( n \) : מספר הכיתות

  • \( cnt_i \) : מספר ה- \( class_i \) בנתוני אמת קרקע (ground truth)

  • \( sum \): מספר הרכיבים בנתוני אמת קרקע (ground truth)

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

הערכת המדד שמבוסס על מודל

בדוגמה הבאה, המדד שמבוסס על מודל מתעדכן בהגדרה מותאמת אישית של שטף דיבור, ואז מתבצעת הערכה של איכות המדד.

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


# Step 1: Prepare the evaluation dataset with the human rating data column.
human_rated_dataset = pd.DataFrame({
  "prompt": [PROMPT_1, PROMPT_2],
    "response": [RESPONSE_1, RESPONSE_2],
  "baseline_model_response": [BASELINE_MODEL_RESPONSE_1, BASELINE_MODEL_RESPONSE_2],
    "pairwise_fluency/human_pairwise_choice": ["model_A", "model_B"]
})

# Step 2: Get the results from model-based metric
pairwise_fluency = PairwiseMetric(
    metric="pairwise_fluency",
    metric_prompt_template="please evaluate pairwise fluency..."
)

eval_result = EvalTask(
    dataset=human_rated_dataset,
    metrics=[pairwise_fluency],
).evaluate()

# Step 3: Calibrate model-based metric result and human preferences.
# eval_result contains human evaluation result from human_rated_dataset.
evaluate_autorater_result = evaluate_autorater(
  evaluate_autorater_input=eval_result.metrics_table,
  eval_metrics=[pairwise_fluency]
)

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