השלב הראשון בהערכת מודלים גנרטיביים או אפליקציות גנרטיביות הוא לזהות את יעד ההערכה ולהגדיר את מדדי ההערכה. בדף הזה מוסבר על מושגים שקשורים להגדרת מדדי הערכה לתרחיש השימוש שלכם.
סקירה כללית
אפשר להשתמש במודלים של AI גנרטיבי כדי ליצור אפליקציות למגוון רחב של משימות, כמו סיכום של מאמרי חדשות, מענה לפניות של לקוחות או סיוע בכתיבת קוד. שירות ההערכה של AI גנרטיבי ב-Gemini Enterprise Agent Platform מאפשר לכם להעריך כל מודל באמצעות מדדים שניתן להסביר.
לדוגמה, יכול להיות שאתם מפתחים אפליקציה לסיכום מאמרים. כדי להעריך את הביצועים של האפליקציה במשימה הספציפית הזו, כדאי להגדיר את הקריטריונים שרוצים למדוד ואת המדדים שבהם רוצים להשתמש כדי לתת להם ציון:
קריטריונים: מימד אחד או יותר שרוצים להעריך, כמו
conciseness,relevance,correctnessאוappropriate choice of words.מדדים: ציון יחיד שמודד את הפלט של המודל ביחס לקריטריונים.
שירות ההערכה של AI גנרטיבי מספק שני סוגים עיקריים של מדדים:
מדדים מבוססי-מודל: המדדים מבוססי-המודל שלנו מעריכים את מודל המועמד בהשוואה למודל השופט. מודל השופט ברוב תרחישי השימוש הוא Gemini, אבל אפשר להשתמש גם במודלים כמו MetricX או COMET בתרחישי שימוש של תרגום.
אפשר למדוד מדדים שמבוססים על מודלים בצורה זוגית או נקודתית:
מדדים נקודתיים: מאפשרים למודל השופט להעריך את הפלט של מודל המועמד על סמך קריטריוני ההערכה. לדוגמה, הציון יכול להיות 0 עד 5, כאשר 0 אומר שהתשובה לא מתאימה לקריטריונים, ו-5 אומר שהתשובה מתאימה לקריטריונים.
מדדים להשוואה בין זוגות: מאפשרים למודל השופט להשוות בין התשובות של שני מודלים ולבחור את התשובה הטובה יותר. השיטה הזו משמשת לעיתים קרובות להשוואה בין מודל מועמד לבין מודל בסיסי. מדדים להשוואה בין זוגות נתמכים רק כשמשתמשים ב-Gemini כמודל שופט.
מדדים מבוססי-חישוב: המדדים האלה מחושבים באמצעות נוסחאות מתמטיות כדי להשוות בין הפלט של המודל לבין נתוני אמת או נתוני ייחוס. מדדים מבוססי-חישוב שנמצאים בשימוש נפוץ כוללים את ROUGE ו-BLEU.
אפשר להשתמש במדדים מבוססי-חישוב בנפרד או יחד עם מדדים מבוססי-מודל. בטבלה הבאה מוסבר מתי כדאי להשתמש במדדים מבוססי-מודל ומתי במדדים מבוססי-חישוב:
| גישת ההערכה | נתונים | עלות ומהירות | |
|---|---|---|---|
| מדדים שמבוססים על מודלים | שימוש במודל שופט כדי להעריך את הביצועים על סמך קריטריונים תיאוריים להערכה | הוספת ערכי סף היא אופציונלית | קצת יותר יקר ואיטי יותר |
| מדדים מבוססי-חישוב | שימוש בנוסחאות מתמטיות להערכת הביצועים | בדרך כלל נדרש מידע אמין | עלות נמוכה ומהירות |
כדי להתחיל, כדאי לעיין במאמרים הכנת מערך הנתונים והפעלת הערכה.
הגדרת מדדים שמבוססים על מודל
הערכה מבוססת-מודל כוללת שימוש במודל למידת מכונה כמודל שופט להערכת התפוקות של המודל המועמד.
מודלים קנייניים של Google, כמו Gemini, מכוילים על ידי בודקים אנושיים כדי להבטיח את האיכות שלהם. הם מנוהלים וזמינים לשימוש מיידי. תהליך ההערכה מבוסס-המודל משתנה בהתאם למדדי ההערכה שאתם מספקים.
התהליך של הערכה מבוססת-מודל הוא כזה:
הכנת נתונים: אתם מספקים נתוני הערכה בצורה של הנחיות קלט. המודלים המתמודדים מקבלים את ההנחיות ומפיקים תשובות תואמות.
הערכה: מדדי ההערכה והתשובות שנוצרו נשלחים למודל השופט. מודל השופט מעריך כל תגובה בנפרד ומספק הערכה מבוססת-שורה.
צבירה והסבר: שירות ההערכה של ה-AI הגנרטיבי מצטבר את ההערכות האישיות האלה לציון כולל. הפלט כולל גם הסברים של שרשרת מחשבות לכל שיפוט, שמפרטים את ההיגיון מאחורי הבחירה.
שירות ההערכה של AI גנרטיבי מציע את האפשרויות הבאות להגדרת מדדים מבוססי-מודל באמצעות Vertex AI SDK:
| אפשרות | תיאור | מתאים במיוחד ל |
|---|---|---|
| שימוש בדוגמה קיימת | כדי להתחיל, אפשר להשתמש בתבנית מוכנה מראש של הנחיה ליצירת מדד. | תרחישים נפוצים לדוגמה, חיסכון בזמן |
| הגדרת מדדים באמצעות הממשק מבוסס-התבניות שלנו | קבלתם עזרה מודרכת בהגדרת המדדים. הממשק מבוסס התבניות שלנו מספק מבנה והצעות. | התאמה אישית בעזרת התמיכה |
| הגדרת מדדים מאפס | שליטה מלאה בהגדרות המדדים. | מתאים במיוחד לתרחישי שימוש ספציפיים מאוד. נדרשת מידה רבה יותר של מומחיות טכנית והשקעת זמן. |
לדוגמה, יכול להיות שתרצו לפתח אפליקציית AI גנרטיבי שמחזירה תשובות שוטפות ומשעשעות. באפליקציה הזו, אפשר להגדיר שני קריטריונים להערכה באמצעות ממשק התבנית:
שטף: המשפטים זורמים בצורה חלקה, בלי ניסוחים מסורבלים או משפטים ארוכים מדי. הרעיונות והמשפטים קשורים זה לזה באופן הגיוני, והמעברים בין הרעיונות והמשפטים נעשים בצורה יעילה כשצריך.
בידור: טקסט קצר ומשעשע שכולל אמוג'י, סימני קריאה ושאלות כדי להעביר תקשורת מהירה וספונטנית וליצור הפוגה.
כדי להפוך את שני הקריטריונים האלה למדד, צריך ציון כולל בטווח של -1 ~ 1 שנקרא custom_text_quality. אפשר להגדיר מדד באופן הבא:
# Define a pointwise metric with two criteria: Fluency and Entertaining.
custom_text_quality = PointwiseMetric(
metric="custom_text_quality",
metric_prompt_template=PointwiseMetricPromptTemplate(
criteria={
"fluency": (
"Sentences flow smoothly and are easy to read, avoiding awkward"
" phrasing or run-on sentences. Ideas and sentences connect"
" logically, using transitions effectively where needed."
),
"entertaining": (
"Short, amusing text that incorporates emojis, exclamations and"
" questions to convey quick and spontaneous communication and"
" diversion."
),
},
rating_rubric={
"1": "The response performs well on both criteria.",
"0": "The response is somewhat aligned with both criteria",
"-1": "The response falls short on both criteria",
},
),
)
רשימה מלאה של תבניות הנחיות למדדים מופיעה במאמר תבניות הנחיות למדדים לצורך הערכה.
הערכת מודלים של תרגום
שירות ההערכה של AI גנרטיבי מציע את מדדי ההערכה הבאים למשימות תרגום:
MetricX ו-COMET הם מדדים מבוססי-מודל שמאומנים למשימות תרגום. אתם יכולים להעריך את האיכות והדיוק של התוצאות של מודל התרגום עבור התוכן שלכם, בין אם מדובר בפלט של NMT, TranslationLLM או מודלים של Gemini.
אפשר גם להשתמש ב-Gemini כמודל שופט כדי להעריך את המודל שלכם מבחינת רהיטות, קוהרנטיות, מלל ואיכות הטקסט בשילוב עם MetricX, COMET או BLEU.
MetricX הוא מדד שמבוסס על שגיאות ופותח על ידי Google. הוא חוזה ציון נקודה צפה בין 0 ל-25 שמייצג את איכות התרגום. מדד MetricX זמין גם כשיטה שמבוססת על הפניה וגם כשיטה ללא הפניה (QE). כשמשתמשים במדד הזה, ציון נמוך יותר הוא ציון טוב יותר, כי הוא מצביע על פחות שגיאות.
COMET משתמש בגישת רגרסיה מבוססת-הפניה שמספקת ציונים בטווח של 0 עד 1, כאשר 1 מציין תרגום מושלם.
BLEU (Bilingual Evaluation Understudy) הוא מדד שמבוסס על חישוב. הציון ב-BLEU מציין עד כמה הטקסט המועמד דומה לטקסט ההשוואה. ערך ציון ב-BLEU שקרוב יותר לאחד מציין שהתרגום קרוב יותר לטקסט ההשוואה.
שימו לב: לא מומלץ להשתמש בציוני BLEU להשוואה בין קורפוסים ושפות שונים. לדוגמה, ציון BLEU של 50 בתרגום מאנגלית לגרמנית לא ניתן להשוואה לציון BLEU של 50 בתרגום מיפנית לאנגלית. מומחי תרגום רבים עברו לשימוש בגישות מבוססות-מודל למדדים, שיש להן מתאם גבוה יותר עם דירוגים של בני אדם והן מפורטות יותר בזיהוי תרחישי שגיאה.
במאמר הערכת מודל תרגום מוסבר איך להריץ הערכות של מודלים לתרגום.
בחירה בין הערכה נקודתית להערכה זוגית
הטבלה הבאה תעזור לכם להחליט מתי כדאי להשתמש בהערכה נקודתית או בהערכה זוגית:
| הגדרה | מתי משתמשים | תרחישים לדוגמה | |
|---|---|---|---|
| הערכה נקודתית | הערכת מודל אחד ויצירת ציונים על סמך הקריטריונים |
|
|
| הערכה בזוגות | להשוות בין שני מודלים ולתת העדפה על סמך הקריטריונים |
|
|
מדדים מבוססי-חישוב
השוואות מבוססות-מחשוב משוות בין התוצאות שנוצרו על ידי ה-LLM לבין מערך נתונים של זוגות קלט ופלט, כדי לבדוק אם התוצאות עקביות עם אמת קרקע (ground truth). אפשר לסווג את המדדים הנפוצים לקבוצות הבאות:
- מדדים מבוססי-לקסיקון: משתמשים במתמטיקה כדי לחשב את הדמיון בין התוצאות שנוצרו על ידי מודל שפה גדול לבין נתוני האמת, כמו
Exact Matchו-ROUGE. - מדדים שמבוססים על ספירה: צבירה של מספר השורות שמתאימות לתוויות מסוימות של נתוני אמת, כמו
F1-score, Accuracyו-Tool Name Match, או שלא מתאימות להן. - מדדים שמבוססים על הטמעה: חישוב המרחק בין התוצאות שנוצרו על ידי מודל ה-LLM לבין נתוני האמת במרחב ההטמעה, כדי לשקף את רמת הדמיון ביניהם.
יצירת טקסט כללי
המדדים הבאים עוזרים להעריך את היכולת של המודל להבטיח שהתשובות יהיו שימושיות, בטוחות ויעילות למשתמשים.
התאמה מדויקת
המדד exact_match מחשב אם התשובה של המודל תואמת בדיוק להפניה.
- מגבלת טוקנים: אין
קריטריוני הערכה
לא רלוונטי.
פרמטרים של קלט למדדים
| פרמטר קלט | תיאור |
|---|---|
response |
תשובת ה-LLM. |
reference |
תשובת ה-LLM המושלמת לעיון. |
ציונים של פלט
| ערך | תיאור |
|---|---|
| 0 | לא נמצאה התאמה |
| 1 | מותאמת |
BLEU
מדד bleu (BiLingual Evaluation Understudy) מכיל את התוצאה של אלגוריתם להערכת איכות התגובה, שתורגמה משפה טבעית אחת לשפה טבעית אחרת. איכות התשובה נמדדת לפי ההתאמה בין הפרמטר response לפרמטר reference.
- מגבלת טוקנים: אין
קריטריוני הערכה
לא רלוונטי.
פרמטרים של קלט למדדים
| פרמטר קלט | תיאור |
|---|---|
response |
תשובת ה-LLM. |
reference |
תשובת ה-LLM המושלמת לקובץ העזר. |
ציונים של פלט
| ערך | תיאור |
|---|---|
| מספר עשרוני בטווח [0,1] | ציונים גבוהים יותר מצביעים על תרגומים טובים יותר. הניקוד 1 מייצג התאמה מושלמת לreference. |
ROUGE
המדד ROUGE משמש להשוואה בין הפרמטר response לבין הפרמטר reference.
כל המדדים של rouge מחזירים את ציון F1. rouge-l-sum מחושב כברירת מחדל, אבל אפשר לציין את rougeהווריאציה שבה רוצים להשתמש.
- מגבלת טוקנים: אין
קריטריוני הערכה
לא רלוונטי
פרמטרים של קלט למדדים
| פרמטר קלט | תיאור |
|---|---|
response |
תשובת ה-LLM. |
reference |
תשובת ה-LLM המושלמת לקובץ העזר. |
ציונים של פלט
| ערך | תיאור |
|---|---|
| מספר עשרוני בטווח [0,1] | ציון שקרוב ל-0 מצביע על דמיון נמוך בין response ל-reference. ציון שקרוב ל-1 מצביע על דמיון גבוה בין response ל-reference. |
שימוש בכלים וקריאה להפעלת פונקציות
המדדים הבאים עוזרים להעריך את היכולת של המודל לחזות קריאה (פונקציה) תקפה לכלי.
השיחה תקינה
המדד tool_call_valid מתאר את היכולת של המודל לחזות קריאה תקינה לכלי. רק הקריאה הראשונה לכלי נבדקת.
- מגבלת טוקנים: אין
קריטריוני הערכה
| קריטריון להערכה | תיאור |
|---|---|
| תוקף | הפלט של המודל מכיל קריאה תקינה לכלי. |
| עיצוב | מילון JSON מכיל את השדות name ו-arguments. |
פרמטרים של קלט למדדים
| פרמטר קלט | תיאור |
|---|---|
prediction |
הפלט של המודל המועמד, שהוא מחרוזת מסוג JSON שעברה סריאליזציה ומכילה את המפתחות content ו-tool_calls. הערך של content הוא פלט הטקסט מהמודל. הערך של tool_calls הוא מחרוזת מסוג JSON שעברה סריאליזציה של רשימת קריאות לכלים. הנה דוגמה:{"content": "", "tool_calls": [{"name":
"book_tickets", "arguments": {"movie": "Mission Impossible Dead Reckoning
Part 1", "theater":"Regal Edwards 14", "location": "Mountain View CA",
"showtime": "7:30", "date": "2024-03-30","num_tix": "2"}}]} |
reference |
התחזית המדויקת להשוואה, שמוצגת באותו פורמט כמו prediction. |
ציונים של פלט
| ערך | תיאור |
|---|---|
| 0 | קריאה לא תקינה לכלי |
| 1 | קריאה תקינה לכלי |
התאמה לשם
מדד tool_name_match מתאר את היכולת של המודל לחזות קריאה לכלי עם שם הכלי הנכון. רק הקריאה הראשונה לכלי נבדקת.
- מגבלת טוקנים: אין
קריטריוני הערכה
| קריטריון להערכה | תיאור |
|---|---|
| התאמה לפי שם | השם של קריאת הכלי שחזתה המודל זהה לשם של קריאת הכלי שמופיעה בהפניה. |
פרמטרים של קלט למדדים
| פרמטר קלט | תיאור |
|---|---|
prediction |
הפלט של המודל המועמד, שהוא מחרוזת מסוג JSON שעברה סריאליזציה ומכילה את המפתחות content ו-tool_calls. הערך של content הוא פלט הטקסט מהמודל. הערך של tool_call הוא מחרוזת מסוג JSON שעברה סריאליזציה של רשימת קריאות לכלים. הנה דוגמה:{"content": "","tool_calls": [{"name": "book_tickets", "arguments":
{"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal
Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date":
"2024-03-30","num_tix": "2"}}]} |
reference |
התחזית המדויקת להשוואה, שמוצגת באותו פורמט כמו prediction. |
ציונים של פלט
| ערך | תיאור |
|---|---|
| 0 | השם של קריאת הכלי לא תואם להפניה. |
| 1 | השם של קריאת הכלי תואם להפניה. |
התאמה של מפתח פרמטר
מדד tool_parameter_key_match מתאר את היכולת של המודל לחזות קריאה לכלי עם שמות הפרמטרים הנכונים.
- מגבלת טוקנים: אין
קריטריוני הערכה
| קריטריון להערכה | תיאור |
|---|---|
| יחס ההתאמה של הפרמטרים | היחס בין מספר הפרמטרים החזויים שתואמים לשמות הפרמטרים של קריאת הכלי של ההפניה לבין המספר הכולל של הפרמטרים. |
פרמטרים של קלט למדדים
| פרמטר קלט | תיאור |
|---|---|
prediction |
הפלט של המודל המועמד, שהוא מחרוזת בפורמט JSON שמכילה את המפתחות content ו-tool_calls. הערך content הוא פלט הטקסט מהמודל. הערך tool_call הוא מחרוזת JSON שעברה סריאליזציה של רשימת קריאות לכלים. לדוגמה:{"content": "", "tool_calls": [{"name": "book_tickets", "arguments":
{"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal
Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date":
"2024-03-30","num_tix": "2"}}]} |
reference |
התחזית של מודל ההפניה של נתוני האמת, שמופיעה באותו פורמט כמו prediction. |
ציונים של פלט
| ערך | תיאור |
|---|---|
| מספר עשרוני בטווח [0,1] | הציון הגבוה יותר של 1 מצביע על כך שיש יותר פרמטרים שתואמים לשמות הפרמטרים של reference. |
התאמה של זוגות מפתח/ערך של פרמטר
מדד tool_parameter_kv_match מתאר את היכולת של המודל לחזות קריאה לכלי עם שמות הפרמטרים וערכי המפתח הנכונים.
- מגבלת טוקנים: אין
קריטריוני הערכה
| קריטריון להערכה | תיאור |
|---|---|
| יחס ההתאמה של הפרמטרים | היחס בין מספר הפרמטרים החזויים שתואמים גם לשמות הפרמטרים וגם לערכים של הקריאה לכלי ההפניה, לבין המספר הכולל של הפרמטרים. |
פרמטרים של קלט למדדים
| פרמטר קלט | תיאור |
|---|---|
prediction |
הפלט של המודל המועמד, שהוא מחרוזת מסוג JSON שעברה סריאליזציה ומכילה את המפתחות content ו-tool_calls. הערך של content הוא פלט הטקסט מהמודל. הערך של tool_call הוא מחרוזת מסוג JSON שעברה סריאליזציה של רשימת קריאות לכלים. הנה דוגמה:{"content": "", "tool_calls": [{"name": "book_tickets", "arguments":
{"movie": "Mission Impossible Dead Reckoning Part 1", "theater":"Regal
Edwards 14", "location": "Mountain View CA", "showtime": "7:30", "date":
"2024-03-30","num_tix": "2"}}]} |
reference |
התחזית המדויקת להשוואה, שמוצגת באותו פורמט כמו prediction. |
ציונים של פלט
| ערך | תיאור |
|---|---|
| מספר עשרוני בטווח [0,1] | הציון הגבוה יותר של 1 מציין שיש יותר פרמטרים שתואמים לשמות ולערכים של הפרמטרים reference. |
בשירות ההערכה של AI גנרטיבי, אפשר להשתמש במדדים מבוססי-חישוב באמצעות Agent Platform SDK ל-Python.
איכות ההערכה הבסיסית למשימות גנרטיביות
כשמעריכים את הפלט של מודלים של AI גנרטיבי, חשוב לזכור שתהליך ההערכה הוא סובייקטיבי, ואיכות ההערכה יכולה להשתנות בהתאם למשימה הספציפית ולקריטריוני ההערכה. הסובייקטיביות הזו רלוונטית גם לבודקים אנושיים. למידע נוסף על האתגרים בהשגת הערכה עקבית של מודלים של AI גנרטיבי, אפשר לעיין במאמרים Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena ו-Learning to summarize from human feedback.