HumanEval Benchmark (HE)
HumanEval — הוא מערך נתונים ייחוסי (benchmark), המיועד להערכה אובייקטיבית של איכות הקוד המיוצר על ידי מודלים של בינה מלאכותית על בסיס תיאור טקסטואלי של המשימה[1]. הוא הוצג ביולי 2021 על ידי חוקרי OpenAI בהנהגת מארק צ'ן (Mark Chen) והפך לאחד מהתקנים המרכזיים למדידת הנכונות הפונקציונלית של תוכניות שנוצרו אוטומטית.
פיתוח HumanEval נבע מהצורך בשיטת הערכה אמינה לגנרציית קוד. בעבר, איכות הקוד שנוצר על ידי מודלי שפה הוערכה לעיתים קרובות באמצעות מדדים עקיפים (כגון BLEU) או ידנית, מה שלא הבטיח התאמה לכשירות פעילה של התוכניות. HumanEval פותר בעיה זו על ידי התמקדות בנכונות פונקציונלית: הקוד שנוצר מוערך לא לפי דמיונו התחבירי לדוגמה הייחוסית, אלא לפי יכולתו לעבור בהצלחה מערכת של בדיקות יחידה אוטומטיות[1].
מבנה מערך המשימות
ה-benchmark מורכב מ-164 משימות תכנות שנכתבו ידנית במיוחד עבור מערך נתונים זה, כדי להבטיח שהן אינן נכללות במדגמי האימון של המודלים. כל המשימות מנוסחות בשפת Python ומוצגות כקטעי קוד עם תיאור[2].
כל משימה כוללת:
- כותרת פונקציה: חתימת הפונקציה עם שמה ופרמטריה.
- תיאור טקסטואלי: Docstring באנגלית המתאר את הפונקציונליות הנדרשת.
- גוף הפונקציה: מקום ריק שעל המודל למלא בקוד שנוצר.
לכל משימה קיימים גם רכיבים הנסתרים מהמודל:
- פתרון קנוני: מימוש נכון (ייחוסי) של הפונקציה.
- מערכת בדיקות מודולריות (בדיקות יחידה): משמשת לאימות אוטומטי של נכונות הקוד שנוצר. הבדיקות מכסות הן מקרים בסיסיים והן מקרי קצה.
המשימות охватывают מגוון רחב של נושאים: מבנאי שפה בסיסיים ואלגוריתמים ועד מתמטיקה פשוטה, מה שהופך את המערך למגוון ומאתגר עבור מודלים.
מתודולוגיית הערכת מודלים
המדד המרכזי להצלחה ב-HumanEval הוא pass@k, המודד את שיעור המשימות שנפתרו על ידי המודל בצורה פונקציונלית נכונה[1]. פתרון נחשב מוצלח אם הקוד שנוצר עובר את כל הבדיקות האוטומטיות עבור משימה נתונה.
- pass@1: המדד הראשי והנפוץ ביותר. הוא מציין את אחוז המשימות שנפתרו על ידי המודל בניסיון הראשון (כלומר, בעת יצירת גרסה אחת של פתרון לכל משימה).
- pass@k: באופן כללי, מדד זה מציג את שיעור המשימות שעבורן לפחות אחת מתוך k גרסאות הפתרון שנוצרו על ידי המודל עוברת את כל הבדיקות. לדוגמה, pass@10 מראה איזה שיעור משימות המודל מסוגל לפתור אם ניתנות לו עד 10 ניסיונות לכל משימה.
מכיוון שחישוב ישיר של pass@k מצריך מספר גדול של דגימות, הציעו המחברים שיטת חישוב סטטיסטית נכונה של מדד זה, המאפשרת לקבל הערכה בלתי מוטה[1].
הבדיקה המעשית מתבצעת ב"ארגז חול" ייעודי: הקוד שנוצר מקומפל ומורץ על מערכת בדיקות אימות. גישה זו מאפשרת למדוד את יכולת המודל לייצר קוד ברצניל ונכון, ולא רק כזה שדומה תחבירית לדוגמה הייחוסית.
תוצאות והשפעה על התעשייה
הניסויים הראשוניים ב-HumanEval הראו פער משמעותי בין מודלים למטרות כלליות לבין מודלים שאומנו במיוחד על קוד.
- בשנת 2021, מודל OpenAI Codex (12 מיליארד פרמטרים, שאומן על קוד מ-GitHub) הצליח לפתור בניסיון ראשון ~28.8% מהמשימות (pass@1).
- באותה עת, מודל השפה הגדול יותר GPT-3 (175 מיליארד פרמטרים), שלא אומן על קוד, לא הצליח לפתור אף משימה אחת נכון[1].
תוצאות אלו הדגישו את הצורך באימון מתמחה על נתוני תכנות להצלחה בגנרציית קוד. לאחר הופעת HumanEval, ה-benchmark הפך במהרה לבדיקה סטנדרטית להשוואת התקדמות מודלים חדשים.
- מודלים מסדרת GPT-3.5 (תחילת 2023) הגיעו ל-~72% pass@1.
- מודל GPT-4 (2023) הפגין תוצאות גבוהות עוד יותר, והגיע ל-~67% בגרסה הבסיסית ועלה על 85% לאחר כיוון נוסף[3].
- מודלים פתוחים כגון Code Llama (Meta, 2023) ו-WizardCoder (2023) הציגו אף הם תוצאות גבוהות (~53% ו-~57% pass@1 בהתאמה), ועלו על מודלים קנייניים מוקדמים[4].
הרחבות וגרסאות של ה-benchmark
הצלחת HumanEval עוררה השראה ליצירת מספר גרסאות נגזרות, שנועדו להעריך מודלים בתנאים רחבים יותר.
- CL-HumanEval (Cross-Lingual HumanEval): גרסה בין-לשונית (2024), שבה משימות ה-HumanEval המקוריות מותאמות לבדיקת יכולת המודלים להבין תיאורים בשפות שונות (מעבר לאנגלית), תוך יצירת קוד Python[5].
- Multilingual HumanEval: הרחבה (2023) המיועדת להערכת גנרציית קוד ב-12 שפות תכנות שונות (כולל Java, C#, JavaScript ועוד) על בסיס תיאור באנגלית[6].
- HumanEval-XL: benchmark נרחב (2024) המשלב את שני הגישות. הוא מכיל משימות ב-12 שפות תכנות ותרגומי תיאורי טקסט ל-23 שפות עולם, כולל רוסית, סינית, ערבית ועוד. בסך הכל, HumanEval-XL מונה למעלה מ-22,000 זוגות "תיאור-קוד"[7].
קישורים
- HumanEval על Hugging Face
- עמוד HumanEval על Papers with Code
ספרות
- Liang, P. et al. (2022). Holistic Evaluation of Language Models (HELM). arXiv:2211.09110.
- Chang, Y. et al. (2023). A Survey on Evaluation of Large Language Models. arXiv:2307.03109.
- Ni, S. et al. (2025). A Survey on Large Language Model Benchmarks. arXiv:2508.15361.
- Biderman, S. et al. (2024). The Language Model Evaluation Harness (lm-eval): Guidance and Lessons Learned. arXiv:2405.14782.
- Kiela, D. et al. (2021). Dynabench: Rethinking Benchmarking in NLP. arXiv:2104.14337.
- Ma, Z. et al. (2021). Dynaboard: An Evaluation‑As‑A‑Service Platform for Holistic Next‑Generation Benchmarking. arXiv:2106.06052.
- Goel, K. et al. (2021). Robustness Gym: Unifying the NLP Evaluation Landscape. arXiv:2101.04840.
- Xu, C. et al. (2024). Benchmark Data Contamination of Large Language Models: A Survey. arXiv:2406.04244.
- Liu, S. et al. (2025). A Comprehensive Survey on Safety Evaluation of LLMs. arXiv:2506.11094.
- Chiang, W.-L. et al. (2024). Chatbot Arena: An Open Platform for Evaluating LLMs by Human Preference. arXiv:2403.04132.
- Boubdir, M. et al. (2023). Elo Uncovered: Robustness and Best Practices in Language Model Evaluation. arXiv:2311.17295.
- Huang, L. et al. (2023). A Survey on Hallucination in Large Language Models. arXiv:2311.05232.
הערות
- ↑ 1.0 1.1 1.2 1.3 1.4 Chen, M. et al. «Evaluating Large Language Models Trained on Code». arXiv:2107.03374, 2021. [1]
- ↑ «openai/openai_humaneval». Hugging Face Datasets. [2]
- ↑ Niu, C. et al. «On Evaluating the Efficiency of Source Code Generated by LLMs». Proceedings of the 2nd International Conference on AI-generated Content, 2024. [3]
- ↑ Lutfullaev, J. «HumanEval on LLMs Revisited in Late 2023». arXiv:2402.14852, 2023. [4]
- ↑ Sato, M. et al. «CL-HumanEval: A Benchmark for Evaluating Cross-Lingual Transfer through Code Generation». Proceedings of the 38th Pacific Asia Conference on Language, Information and Computation, 2024. [5]
- ↑ Athiwaratkun, B. et al. «Multilingual HumanEval: A Multilingual Code Generation Benchmark». arXiv:2307.11892, 2023. [6]
- ↑ Liu, J. et al. «HumanEval-XL: A Multilingual Code Generation Benchmark for Cross-lingual Natural Language Generalization». LREC-COLING 2024. [7]