דלג לתוכן

HumanEval — אמת-מידה לתכנות; בעיותיה נכתבו ידנית כדי שלא יופיעו באימון

הגדרה

HumanEval היא אמת-המידה הסטנדרטית מ-2021 ל-164 בעיות-תכנות בפייתון; Codex פתר 28.8% מהן ביולי 2021, ו-GPT-4o הגיע ל-90.2% במאי 2024, לפי OpenAI.

תרשים תהליך שנקרא מימין לשמאל. מימין כרטיס של בעיה אחת מתוך 164, עם סמלים לחתימת פונקציה ולתיעוד שמתאר מה נדרש. ממנו חץ אל סמל של מודל, שממנו יוצאים קווים אל שלושה פתרונות: פתרון 1, פתרון 2 ופתרון k. ליד כל פתרון שורה של משבצות מבחן, כל אחת עם וי כחול או איקס כתום, ושלוש נקודות שמסמנות שיש עוד מבחנים. רק פתרון 2 עבר את כל המבחנים ומסומן בעיגול עם וי, ושני האחרים מסומנים בעיגול עם איקס; הסימונים הם דוגמה שממחישה את הכלל. מפתרון 2 חץ אל כרטיס בצד שמאל, שמסומן pass@k ואומר שהבעיה פתורה. מתחת שורה שמסבירה את pass@1, ולמטה פס הסבר. הטקסט בתמונה: HumanEval: הפתרון צריך לעבוד, לא רק להיראות נכון | אחת מ-164 בעיות | בפייתון | חתימת פונקציה | תיעוד: מה נדרש | נכתבו ידנית, לא נאספו | מהאינטרנט | המודל כותב | k פתרונות | מבחני יחידה: בממוצע 7.7 לבעיה | פתרון 1 | פתרון 2 | פתרון k | pass@k | הבעיה פתורה | לפחות פתרון אחד | עבר את כל המבחנים | pass@1 | נבדק פתרון אחד בלבד: המדד המקובל להשוואה בין מודלים | הציונים ב-pass@1: Codex פתר 28.8% ב-2021, ו-GPT-4o הגיע ל-90.2% ב-2024, לפי OpenAI
כל אחת מ-164 הבעיות ב-HumanEval כוללת חתימת פונקציה ותיעוד, והקוד שהמודל כותב מורץ מול מבחני יחידה: הבעיה נחשבת פתורה אם לפחות פתרון אחד עובר את כולם (הסימונים בתרשים הם דוגמה). המדד המקובל, pass@1, בודק פתרון אחד בלבד, ובו עלה הציון מ-28.8% של Codex ב-2021 ל-90.2% של GPT-4o ב-2024.תרשים מקורי של Wiki-AI · לחצו על התרשים להגדלה

164 בעיות-תכנות שנועדו לבחון הבנה, לא שינון

HumanEval היא אמת-מידה שהציגה OpenAI ביולי 2021 יחד עם מודל Codex, גרסה מותאמת-לתכנות של GPT-3 שהפכה מאוחר יותר למנוע של GitHub Copilot. המבחן מורכב מ-164 בעיות-תכנות בפייתון שנכתבו ידנית — לא נאספו מהאינטרנט — כדי לוודא שאף פתרון שלהן לא הופיע כבר בנתוני-האימון של מודל כלשהו. כל בעיה כוללת חתימת-פונקציה, תיעוד-טקסט (docstring) שמתאר מה נדרש, ובממוצע 7.7 מבחני-יחידה שבודקים אם הפתרון שהמודל כתב באמת עובד — לא רק נראה נכון.

המדד: pass@k

הציון נמדד ביחידה שנקראת pass@k: המודל מייצר k פתרונות שונים לאותה בעיה, והבעיה נחשבת "פתורה" אם לפחות אחד מהם עובר את כל מבחני-היחידה. pass@1, שבו נבדק פתרון בודד בלבד, הוא המדד המקובל ביותר להשוואה בין מודלים, ובו משתמשים כמעט כל המספרים בערך הזה.

מ-Codex ועד GPT-4o: הקפיצה בפייתון

במאמר המקורי מיולי 2021 פתר Codex — בגרסתו שנבדקה — 28.8 אחוזים מ-164 הבעיות ב-pass@1, לעומת 0 אחוזים ל-GPT-3 הרגיל (שלא אומן על קוד) ו-11.4 אחוזים ל-GPT-J. ב-14 במרץ 2023, כשנה וחצי אחר-כך, שחררה OpenAI את GPT-4, ולפי הדוח הטכני הרשמי שלה הוא הגיע ל-67.0 אחוזים — יותר מכפול מהניקוד של Codex. ב-13 במאי 2024 הציגה OpenAI את GPT-4o, שלפי דיווחי החברה הגיע ל-90.2 אחוזים.

מספר שתלוי בשיטת-הבדיקה

מחקר עצמאי בשם EvalPlus, שהוצג ב-NeurIPS 2023, בדק את אותו GPT-4 מול רתמת-בדיקה שלו-עצמו והגיע לציון-בסיס גבוה בהרבה — כ-88 אחוזים — לעומת ה-67.0 הרשמיים שדיווחה OpenAI. הפער אינו סתירה במובן של טעות, אלא תוצאה של הבדלים בגרסת-המודל שנבדקה, בשיטת ניקוי-הפלט ובאופן שבו נספרות תשובות גבוליות. EvalPlus גם הרחיב את מבחני-היחידה של HumanEval פי 80 ומצא ש-HumanEval+ המחמיר יותר מוריד ציוני pass@k של מודלים שונים בעד 19.3 עד 28.9 אחוזים — סימן לכך שהמבחן המקורי החמיץ קוד שגוי שבמקרה עבר את הבדיקות המצומצמות שלו.

ההבדל מהמושג הכללי "אמת-מידה"

HumanEval הוא מופע ספציפי ומתוארך של המושג הכללי "אמת-מידה" (Benchmark), ממוקד בתחום צר אחד — כתיבת-קוד בפייתון — בניגוד למבחני-ידע רב-תחומיים כמו MMLU. הערך הזה עוסק במסלול-הציונים ההיסטורי של HumanEval עצמו ובמה שהוא מודד בפועל, ולא בבעיות הכלליות של אמות-מידה כשיטת-מדידה — לכך מוקדש הערך הנפרד באתר.

ההשפעה מעבר לציון: GitHub Copilot

מעבר לתפקידו כאמת-מידה, HumanEval נולד מאותו מודל (Codex) שהפעיל את הגרסה המסחרית הראשונה של GitHub Copilot, שיצאה כתצוגה-מקדימה ביוני 2021 — חודש לפני שהמאמר שהציג את HumanEval עצמו התפרסם. כלומר אותו מחקר שיצר את מבחן-ההשוואה יצר גם את המוצר המסחרי הראשון בקנה-מידה תעשייתי שנמדד באמצעותו. הקשר הזה הוא הסיבה שהתוצאות על HumanEval ממשיכות להיחשב לאינדיקציה הישירה ביותר ליכולת-תכנות מעשית של מודל, לא רק לציון תחרותי.

📬 הגיליון השבועי של Wiki-AI

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

מסלול הציון ב-HumanEval (pass@1)
ציון (pass@1)הערה
Codex (יולי 2021)28.8%המאמר המקורי שהציג את HumanEval
GPT-3 (יולי 2021, ללא אימון-קוד ייעודי)0%לשם השוואה, מאותו מאמר
GPT-J (יולי 2021)11.4%לשם השוואה, מאותו מאמר
GPT-4 (מרץ 2023)67.0%דוח טכני רשמי, OpenAI
GPT-4 (רתמת-בדיקה של EvalPlus, 2023)כ-88%מחקר עצמאי, שיטה מחמירה יותר
GPT-4o (מאי 2024)90.2%לפי OpenAI

שאלות נפוצות ❓

כמה בעיות יש ב-HumanEval, ומה סוג הבעיות?

164 בעיות-תכנות בפייתון, כתובות-ידנית (לא נאספו מהאינטרנט), כל אחת עם חתימת-פונקציה, תיעוד-טקסט ובממוצע 7.7 מבחני-יחידה שבודקים אם הפתרון באמת עובד.

מה זה pass@1, וכמה השתפרו בו מודלים לאורך זמן?

pass@1 בודק אם פתרון-קוד בודד שהמודל ייצר עובר את כל מבחני-היחידה של הבעיה. Codex, שהציג את המבחן ביולי 2021, פתר 28.8 אחוזים; GPT-4 הגיע ל-67.0 אחוזים במרץ 2023; GPT-4o הגיע ל-90.2 אחוזים במאי 2024.

למה יש פער בין ציון GPT-4 הרשמי ל-HumanEval לציון שמצא מחקר EvalPlus?

OpenAI דיווחה על 67.0 אחוזים ב-2023; מחקר EvalPlus, שהוצג ב-NeurIPS 2023, בדק את אותו מודל ברתמת-בדיקה שונה והגיע לכ-88 אחוזים. הפער נובע מהבדלים בגרסת-המודל ובשיטת-הבדיקה, לא מטעות.

מה הקשר בין HumanEval ל-GitHub Copilot?

שניהם נולדו מאותו מודל, Codex של OpenAI: Copilot יצא כתצוגה-מקדימה ביוני 2021, ו-HumanEval פורסם חודש לאחר מכן, ביולי 2021, כאמת-המידה שמדדה את אותו מודל.

מה ההבדל בין HumanEval ל-HumanEval+?

HumanEval+, שפיתח מחקר EvalPlus, מרחיב את מבחני-היחידה של HumanEval המקורי פי כ-80 — ומוצא שהגרסה המחמירה מורידה ציוני pass@k של מודלים שונים בעד 19.3 עד 28.9 אחוזים, כלומר המבחן המקורי החמיץ קוד שגוי.

שתפו:וואטסאפטלגרם

מצאתם טעות בערך, או שיש לכם מקור שכדאי להוסיף? כתבו לנו