מה זה EvalPlus, ולמה הוא נוצר
EvalPlus הוא מסגרת-מחקר עצמאית שהציגו ג'יאווי ליו, צ'אנצ'יו סטיבן שיה, יויאו וואנג ולינגמינג ג'אנג מאוניברסיטת אילינוי באורבנה-שמפיין, במאמר שהוצג ב-NeurIPS 2023 תחת הכותרת "Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generation". נקודת-המוצא שלה פשוטה: HumanEval, אמת-המידה המובילה לבדיקת יכולת-תכנות, בודקת כל פתרון באמצעות 7.7 מבחני-יחידה בממוצע בלבד — מספר קטן מכדי לתפוס קוד שנראה נכון אך שגוי במקרי-קצה שהמבחנים המצומצמים פשוט לא בדקו. השאלה שהמאמר שואל היא לא "כמה בעיות המודל פותר", אלא "עד כמה אפשר לסמוך על שהמבחן עצמו יודע להבחין בין פתרון נכון לשגוי".
השיטה: פי 80 יותר מבחנים, בלי כתיבה ידנית
כדי לסגור את הפער, EvalPlus מייצר אוטומטית כמויות גדולות של מבחני-קלט נוספים, בשילוב שתי אסטרטגיות — יצירה מבוססת-מודל-שפה, שמנסחת קלטי-בדיקה חדשים לפי תיאור-הבעיה, ומוטציות על קלטים קיימים, שמייצרות גרסאות-קצה (ערכים ריקים, שליליים, קיצוניים) של מבחנים שכבר יש, בלי שאף אדם צריך לכתוב אותן ידנית אחת-אחת. התוצאה: HumanEval+, גרסה עם פי כ-80 מבחני-יחידה יותר מהמקור; ולצדה MBPP+, אותו רעיון מיושם על אמת-מידה נוספת לתכנות, MBPP, עם פי 35 מבחנים יותר. שתיהן פורסמו כחלק מאותה מסגרת-הערכה אחת ואותו מאגר-קוד — שגרסאות מאוחרות יותר שלה, מ-v0.2 ואילך, הוסיפו תמיכה במודלים נוספים כמו Gemini ו-Claude, ומ-v0.3.1 (אוקטובר 2024) גם הרחיבו לכיוון EvalPerf, הערכת יעילות-ריצה של הקוד עצמו ולא רק נכונותו.
מה זה חשף: קוד שגוי שעבר, ואפילו טעויות ב-HumanEval עצמו
בהערכה על פני 26 מודלי-שפה פופולריים, החוקרים מצאו ש-HumanEval+ המחמיר מוריד את ציוני ה-pass@k של המודלים שנבדקו בעד 19.3 עד 28.9 אחוזים — כלומר חלק ניכר מהפתרונות שנחשבו "נכונים" לפי HumanEval המקורי היו למעשה שגויים, ופשוט לא נתפסו על-ידי מבחני-היחידה המצומצמים שלו. המחקר גם מצא 18 פגמים — כ-11 אחוזים מתוך 164 הבעיות — בפתרונות-המקור הרשמיים של HumanEval עצמו: מקרי-קצה לא מטופלים, לוגיקה שגויה, ובעיות-ביצועים. במילים אחרות, גם "התשובה הנכונה" הרשמית של אמת-המידה לא הייתה תמיד נכונה לגמרי.
הפער שגילה בציון GPT-4
תחת רתמת-הבדיקה של EvalPlus עצמה, GPT-4 קיבל 88.4 אחוזים pass@1 על HumanEval הבסיסי — גבוה משמעותית מ-67.0 האחוזים שדיווחה OpenAI בדוח הטכני הרשמי שלה ממרץ 2023. הפער אינו טעות של אף צד, אלא נובע מהבדלים בגרסת-המודל שנבדקה, בשיטת ניקוי-הפלט ובאופן שבו נספרות תשובות גבוליות — הבדלי-הרצה שהתגלו רק כשמישהו חיצוני לחברה ניסה לשחזר את התוצאה בעצמו. כשאותו GPT-4 נבדק תחת HumanEval+ המורחב, הציון צנח ל-76.2 אחוזים — שני המספרים, 88.4 ו-76.2, ממחישים כמה מהציון הגבוה על HumanEval הבסיסי נשען על מבחנים שלא היו מחמירים מספיק.
כשהבדיקה המחמירה הופכת את סדר-הדירוג
ההשפעה של HumanEval+ לא נעצרת בהורדת ציונים באופן אחיד. שני מודלים, WizardCoder-CodeLlama ו-Phind-CodeLlama, שלא הצליחו לעקוף את ChatGPT בציון HumanEval הרגיל, עוקפים אותו דווקא ב-HumanEval+ — סימן לכך שמבחן רופף מדי לא רק מנפח ציונים, אלא עלול לשבש לגמרי את הדירוג היחסי בין מודלים מתחרים. מי שבחר מודל-קוד על סמך HumanEval לבדו, לפני 2023, ייתכן שבחר לפי דירוג שהיה פשוט שגוי.
לא תחליף ל-HumanEval, אלא ביקורת עליו
EvalPlus אינו אמת-מידה חדשה שמחליפה את HumanEval, אלא כלי-ביקורת שבודק עד כמה אפשר לסמוך על תשתית-הבדיקה של אמת-מידה קיימת ומבוססת — ה-164 בעיות עצמן נשארות אותן בעיות, רק עם הרבה יותר מבחנים לכל אחת. לוח-התוצאות (Leaderboard) הרשמי של EvalPlus מציג את שני הציונים זה לצד זה לכל מודל — הציון על HumanEval הרגיל והציון על HumanEval+ המחמיר — במפורש כדי שקורא יוכל לראות את הפער בעצמו, במקום לבחור מספר אחד ולהסתיר את השני. הרעיון — שגם אמת-מידה מבוססת ומצוטטת יכולה להסתיר חולשות בשיטת-המדידה שלה עצמה, לא רק בקושי של השאלות — חוזר גם אצל MMLU-Pro, שנולד מתוך תובנה דומה לגבי אמת-המידה MMLU, אף שהמנגנון שם שונה: לא הרחבת-בדיקה, אלא הרחבת-אפשרויות-התשובה וסינון שאלות קלות מדי.