השלב הראשון בהערכה של מודלים גנרטיביים או אפליקציות גנרטיביות הוא זיהוי היעד של ההערכה והגדרת מדדי ההערכה. בדף הזה מופיעה סקירה כללית של מושגים שקשורים להגדרת מדדי הערכה לתרחיש השימוש שלכם.
סקירה כללית
אפשר להשתמש במודלים של AI גנרטיבי כדי ליצור אפליקציות למגוון רחב של משימות, כמו סיכום של כתבות חדשות, מענה לפניות של לקוחות או סיוע בכתיבת קוד. שירות ההערכה של AI גנרטיבי ב-Vertex AI מאפשר לכם להעריך כל מודל באמצעות מדדים שניתן להסביר.
לדוגמה, יכול להיות שאתם מפתחים אפליקציה לסיכום מאמרים. כדי להעריך את הביצועים של האפליקציה במשימה הספציפית הזו, כדאי להגדיר את הקריטריונים שרוצים למדוד ואת המדדים שבהם רוצים להשתמש כדי לתת להם ציון:
קריטריונים: מאפיין אחד או יותר שרוצים להעריך, כמו
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 קרוב יותר ל-1 מציין שהתרגום קרוב יותר לטקסט המקורי.
שימו לב: לא מומלץ להשתמש בציוני BLEU להשוואה בין קורפוסים ושפות שונים. לדוגמה, ציון BLEU של 50 בתרגום מאנגלית לגרמנית לא ניתן להשוואה לציון BLEU של 50 בתרגום מיפנית לאנגלית. מומחי תרגום רבים עברו לשימוש בגישות מבוססות-מדדים, שיש להן מתאם גבוה יותר עם דירוגים של בני אדם והן מפורטות יותר בזיהוי תרחישי שגיאה.
במאמר הערכת מודל תרגום מוסבר איך להריץ הערכות של מודלים לתרגום.
בחירה בין הערכה נקודתית להערכה זוגית
הטבלה הבאה תעזור לכם להחליט מתי כדאי להשתמש בהערכה נקודתית או בהערכה זוגית:
| הגדרה | מתי משתמשים | תרחישים לדוגמה | |
|---|---|---|---|
| הערכה נקודתית | הערכה של מודל אחד ויצירת ציונים על סמך הקריטריונים |
|
|
| הערכה בזוגות | השוואה בין שני מודלים, ויצירת העדפה על סמך הקריטריונים |
|
|
השוואות מבוססות-מחשוב
השוואות מבוססות-מחשוב משוות בין התוצאות שנוצרו על ידי ה-LLM לבין מערך נתונים של זוגות קלט ופלט, כדי לבדוק אם התוצאות עקביות עם אמת קרקע (ground truth). אפשר לחלק את המדדים הנפוצים לקבוצות הבאות:
- מדדים מבוססי-לקסיקון: שימוש במתמטיקה כדי לחשב את הדמיון בין תוצאות שנוצרו על ידי LLM לבין נתוני האמת, כמו
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 גנרטיבי, אפשר להשתמש במדדים מבוססי-חישוב באמצעות Vertex AI SDK ל-Python.
איכות ההערכה הבסיסית למשימות גנרטיביות
כשמעריכים את הפלט של מודלים של AI גנרטיבי, חשוב לזכור שתהליך ההערכה הוא סובייקטיבי, ואיכות ההערכה יכולה להשתנות בהתאם למשימה הספציפית ולקריטריונים להערכה. הסובייקטיביות הזו רלוונטית גם לבודקים אנושיים. למידע נוסף על האתגרים בהשגת הערכה עקבית של מודלים של AI גנרטיבי, אפשר לעיין במאמרים Judging LLM-as-a-Judge with MT-Bench and Chatbot Arena ו-Learning to summarize from human feedback.