Evaluating AI, כיצד מודדים ביצועי מודל

📚 נושאים מתקדמים ⏱️ 7 דק׳ 🎓 מתקדם ✓ חינם לגמרי
Evaluating AI, כיצד מודדים ביצועי מודל

"נראה לי טוב", לא מדד

כל מי שמשלב Claude באפליקציה מגיע לאותו רגע: מישהו בצוות שואל "אבל איך אנחנו יודעים שזה עובד?" ואתה עונה: "בדקנו ידנית ונראה לנו טוב". זה לא מדד, זה תחושה.

בלי מדידה מסודרת אי אפשר לדעת: האם שינוי ב-system prompt שיפר או פגע? האם גרסה חדשה של Claude טובה יותר לשימוש הספציפי שלך? באיזה קטגוריות המודל נכשל? Evaluation framework פותר את כל זה, ומאפשר לפתח AI בביטחון.

מה זה Eval Set ואיך בונים אותו

Eval Set הוא אוסף בדיקות מובנות שמייצגות את הטסק האמיתי שלך. כל מקרה בדיקה כולל:

לפי Anthropic, כדאי להתחיל עם 20-50 מקרים אמיתיים שנלקחו מכשלים ממשיים, לא מתרחישים דמיוניים. אחרי שהמערכת יציבה, מגדילים ל-100+.

שיטות הדירוג, מהירה עד מדויקת

שיטה מתי להשתמש יתרון חסרון
Exact match סיווג, JSON schema, regex הכי מהיר ואמין לא מתאים לפלט פתוח
LLM-as-Judge כתיבה, סיכום, שירות לקוחות גמיש, ניתן לאוטומציה לא דטרמיניסטי, עולה כסף
Human grading קביעת baseline ראשוני הכי איכותי איטי ויקר, להימנע לניטור שוטף

הכלל של Anthropic: "Prioritize volume over quality, more questions with slightly lower signal automated grading is better than fewer hand-graded evals." כלומר: 200 evals אוטומטיים עדיפים על 20 evals ידניים.

LLM-as-Judge בפועל, עקרונות לרוביק טוב

LLM-as-Judge הוא כשמודל שופט את איכות תשובת מודל אחר. מחקר Bloom של Anthropic (2025) מראה ש-Claude Opus 4.1 כשופט מגיע לקורלציה של 0.86 עם שפיטה אנושית, גבוה מאוד. שלושה עקרונות לרוביק אפקטיבי:

  1. קריטריונים ספציפיים: לא "תשובה טובה" אלא "חייב לציין מחיר, לא להכיל הבטחות לא מבוססות, לסיים ב-CTA"
  2. חשיבה לפני ציון: בקש מהשופט לחשוב בתגי thinking לפני ציון סופי, זה משפר מהימנות
  3. מודל שופט שונה ממודל נבדק: השתמש ב-Claude Haiku לדירוג אוטומטי כדי לחסוך עלות

pass@k לעומת pass^k, מדד לפיתוח ומדד ל-Production

שני המדדים עוסקים בריצת אותה משימה k פעמים, אבל מודדים שאלות שונות:

דוגמה: chatbot של חברת ביטוח ישראלית. pass@5=90% נשמע טוב, אבל pass^3=40% אומר שב-60% מהמקרים לקוח שפנה שלוש פעמים ייכשל לפחות פעם אחת, לא מקובל.

טעויות נפוצות שמפתחים ישראלים עושים

טעות 1: בונים evals רק אחרי שמשהו נשבר. צוות סטארטאפ תל-אביבי שיפר system prompt מפעם לפעם, בכל שיחה של מנהל מוצר ומפתח. אחרי חודש אף אחד לא ידע אם גרסה נוכחית טובה יותר מהגרסה של חודשיים קודם. Eval harness שמורץ ב-CI/CD היה פותר את זה מהיום הראשון.

טעות 2: גרייד נוקשה שפוסל תשובות תקינות. לפי Anthropic: "Rigid grading that penalized valid solutions resulted in artificially low scores." כשמחפשים מחרוזת ספציפית, כל ניסוח שקול שבחר המודל נכשל. פתרון: LLM-judge עם קריטריונים, לא string match.

דוגמה ישראלית, Eval ל-HR Chatbot

חברת גיוס בת"א בנתה chatbot שעונה למועמדים על שאלות נפוצות (תנאים, תהליך, ציפיות). לאחר חודש ניסו לשנות system prompt כדי לשפר טון. איך ידעו שהשיפור לא פגע בדיוק?

הם בנו Eval Set של 40 שאלות ממועמדים אמיתיים, חילקו ל-3 קטגוריות (תנאים, תהליך, דחייה), והגדירו criteria לכל קטגוריה. Claude Haiku שיפט כשופט בקנה מידה של 1-5. לפני ואחרי כל שינוי הריצו run_eval_suite() ובדקו pass_rate. שינוי שהוריד accuracy בקטגוריית דחייה מ-82% ל-71% נתפס ונחסם לפני deploy.

pass@k מודד ביצועים על k מסמכים, pass^k מודד על k משתמשים
pass@k בודק אם לפחות ניסיון אחד הצליח (מדד לפיתוח), pass^k בודק אם כל הניסיונות הצליחו (מדד לפרודקשן)
pass@k הוא מדד אנושי, pass^k הוא מדד אוטומטי
pass@k לא רלוונטי ל-Claude, רק למודלים אחרים

רוצה ללמוד עם מעקב התקדמות, קוויזים ותעודה?

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