במדדים מבוססי-מודל, כלי ההערכה של Gen AI מעריך את המודלים שלכם באמצעות מודל בסיסי, כמו Gemini, שהוגדר וקיבל הנחיות כמודל שופט. אם רוצים לקבל מידע נוסף על מודל השופט, בסדרת המאמרים התאמה אישית מתקדמת של מודל השופט מוסבר על כלים נוספים שאפשר להשתמש בהם כדי להעריך ולהגדיר את מודל השופט.
למידע על תהליך העבודה הבסיסי של הערכה, אפשר לעיין במדריך למתחילים בנושא הערכות של AI גנרטיבי. הסדרה בנושא התאמה אישית מתקדמת של מודל השופט כוללת את הדפים הבאים:
- הערכת מודל שופט (הדף הנוכחי)
- הגדרה של מודל שופט
סקירה כללית
השימוש בשופטים אנושיים להערכת מודלים גדולים של שפה (LLM) עלול להיות יקר ולגזול זמן רב. שימוש במודל שופט הוא דרך יותר ניתנת להרחבה להערכת מודלים גדולים של שפה (LLM). הכלי Gen AI evals משתמש במודל Gemini מוגדר כמודל השופט, עם הנחיות שניתנות להתאמה אישית כדי להעריך את המודל שלכם לתרחישי שימוש שונים.
בקטעים הבאים מוסבר איך להעריך מודל שופט בהתאמה אישית לתרחיש השימוש האידיאלי שלכם.
הכנת מערך הנתונים
כדי להעריך מדדים שמבוססים על מודלים, צריך להכין מערך נתונים להערכה עם סיווגים אנושיים כנתוני אמת. המטרה היא להשוות בין הציונים של מדדים מבוססי-מודל לבין דירוגים של בודקים אנושיים, ולבדוק אם האיכות של מדדים מבוססי-מודל מתאימה לתרחיש השימוש שלכם.
במקרה של
PointwiseMetric, צריך להכין את העמודה{metric_name}/human_ratingבמערך הנתונים כנתוני האמת של התוצאה{metric_name}/scoreשנוצרה על ידי מדדים מבוססי-מודל.במקרה של
PairwiseMetric, צריך להכין את העמודה{metric_name}/human_pairwise_choiceבמערך הנתונים כנתוני האמת של התוצאה{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 \) בנתוני האמת
\( sum \): מספר הרכיבים בנתוני האמת
כדי לחשב מדדים אחרים, אפשר להשתמש בספריות קוד פתוח.
הערכת המדד שמבוסס על המודל
בדוגמה הבאה מעדכנים את המדד שמבוסס על המודל בהגדרה מותאמת אישית של רמת השליטה בשפה, ואז מעריכים את איכות המדד.
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]
)