HumanEval Benchmark (NL)
HumanEval — dit is een referentiedataset (benchmark) die bedoeld is voor de objectieve beoordeling van de kwaliteit van code die door kunstmatige-intelligentiemodellen wordt gegenereerd op basis van een tekstbeschrijving van een taak[1]. Het werd in juli 2021 gepresenteerd door onderzoekers van OpenAI onder leiding van Mark Chen en is een van de belangrijkste standaarden geworden voor het meten van de functionele correctheid van gegenereerde programma's.
De ontwikkeling van HumanEval werd ingegeven door de behoefte aan een betrouwbare methode voor de evaluatie van codegeneratie. Eerder werd de kwaliteit van door taalmodellen gegenereerde code vaak beoordeeld met indirecte metrieken (zoals BLEU) of handmatig, wat geen garantie bood voor overeenkomst met de werkelijke uitvoerbaarheid van programma's. HumanEval lost dit probleem op door zich te richten op functionele correctheid: gegenereerde code wordt niet beoordeeld op syntactische gelijkenis met een referentie, maar op het vermogen om een reeks automatische unit tests succesvol te doorstaan[1].
Structuur van de takenset
De benchmark bestaat uit 164 programmeertaken die handmatig zijn geschreven speciaal voor deze dataset, om te garanderen dat ze niet voorkomen in de trainingssets van modellen. Alle taken zijn geformuleerd in Python en worden gepresenteerd als codefragmenten met een beschrijving[2].
Elke taak bevat:
- Functieheader: De signatuur van de functie met naam en parameters.
- Tekstbeschrijving: Een docstring in het Engels die de vereiste functionaliteit beschrijft.
- Functielichaam: Een lege ruimte die het model moet invullen met gegenereerde code.
Voor elke taak zijn ook elementen voorzien die verborgen zijn voor het model:
- Canonieke oplossing: De correcte (referentie)implementatie van de functie.
- Set modulaire tests (unit tests): Wordt gebruikt voor automatische verificatie van de correctheid van de gegenereerde code. De tests dekken zowel standaard- als randgevallen.
De taken bestrijken een breed scala aan onderwerpen: van basistaalconstructies en algoritmen tot eenvoudige wiskunde, waardoor de set gevarieerd en uitdagend is voor modellen.
Methodologie voor modelevaluatie
De belangrijkste succesmetriek op HumanEval is pass@k, die het aandeel taken meet dat door het model functioneel correct is opgelost[1]. Een oplossing wordt als succesvol beschouwd als de gegenereerde code alle automatische tests voor de betreffende taak doorstaat.
- pass@1: De primaire en meest gebruikte indicator. Het geeft het percentage taken aan dat het model met de eerste poging heeft opgelost (dat wil zeggen bij het genereren van één variant van de oplossing per taak).
- pass@k: In het algemeen geeft deze metriek het aandeel taken aan waarvoor ten minste één van de k door het model gegenereerde oplossingen alle tests doorstaat. Zo laat pass@10 zien welk deel van de taken het model kan oplossen als het tot 10 pogingen per taak krijgt.
Omdat directe berekening van pass@k een groot aantal steekproeven vereist, hebben de auteurs een statistisch correcte berekeningsmethode voor deze metriek voorgesteld, die een zuivere schatting oplevert[1].
Praktisch testen vindt plaats in een speciale «sandbox»: de gegenereerde code wordt gecompileerd en uitgevoerd op een set verificatietests. Deze aanpak maakt het mogelijk het vermogen van een model te meten om uitvoerbare en correcte code te genereren, in plaats van code die slechts syntactisch op de referentie lijkt.
Resultaten en invloed op de industrie
De eerste experimenten op HumanEval toonden een aanzienlijk verschil aan tussen algemene modellen en modellen die speciaal getraind zijn op code.
- In 2021 slaagde het OpenAI Codex-model (12 miljard parameters, getraind op code van GitHub) erin bij de eerste poging ~28,8% van de taken op te lossen (pass@1).
- Tegelijkertijd slaagde het grotere taalmodel GPT-3 (175 miljard parameters), dat niet op code was getraind, er niet in ook maar één taak correct op te lossen[1].
Deze resultaten onderstreepten de noodzaak van gespecialiseerde training op programmeergegevens voor succesvolle codegeneratie. Na de introductie van HumanEval werd de benchmark snel een standaardtest voor het vergelijken van de voortgang van nieuwe modellen.
- Modellen uit de GPT-3.5-reeks (begin 2023) bereikten ~72% pass@1.
- Het GPT-4-model (2023) liet nog hogere resultaten zien en bereikte ~67% in de basisversie en overtrof 85% na aanvullende aanpassingen[3].
- Open modellen zoals Code Llama (Meta, 2023) en WizardCoder (2023) lieten ook hoge resultaten zien (respectievelijk ~53% en ~57% pass@1), waarmee ze vroege propriëtaire modellen overtroffen[4].
Uitbreidingen en varianten van de benchmark
Het succes van HumanEval inspireerde de creatie van verschillende afgeleide versies, bedoeld om modellen onder bredere omstandigheden te evalueren.
- CL-HumanEval (Cross-Lingual HumanEval): Een taaloverkoepelende variant (2024), waarbij de taken van de originele HumanEval zijn aangepast om het vermogen van modellen te testen om beschrijvingen in verschillende talen (naast het Engels) te begrijpen en daarbij code in Python te genereren[5].
- Multilingual HumanEval: Een uitbreiding (2023) gericht op de evaluatie van codegeneratie in 12 verschillende programmeertalen (waaronder Java, C#, JavaScript en andere) op basis van een Engelstalige beschrijving[6].
- HumanEval-XL: Een grootschalige benchmark (2024) die beide benaderingen combineert. Het bevat taken in 12 programmeertalen en vertalingen van tekstbeschrijvingen in 23 wereldtalen, waaronder Russisch, Chinees, Arabisch en andere. In totaal telt HumanEval-XL meer dan 22.000 «beschrijving-code»-paren[7].
Verwijzingen
- HumanEval op Hugging Face
- HumanEval-pagina op Papers with Code
Literatuur
- 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.
Noten
- ↑ 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]