HumanEval Benchmark (HU)
HumanEval — egy benchmark (etalon adatkészlet), amelyet a mesterséges intelligencia modellek által szöveges feladatleírás alapján generált kód minőségének objektív értékelésére terveztek[1]. 2021 júliusában az OpenAI kutatói mutatták be Mark Chen (Mark Chen) vezetésével, és a generált programok funkcionális helyességének mérésére szolgáló egyik kulcsstandarddá vált.
A HumanEval kifejlesztését a kódgenerálás megbízható értékelési módszerének igénye motiválta. Korábban a nyelvi modellek által generált kód minőségét gyakran közvetett metrikákkal (például BLEU) vagy kézileg értékelték, ami nem garantálta az egyezést a programok tényleges működőképességével. A HumanEval ezt a problémát a funkcionális helyesség középpontba állításával oldja meg: a generált kódot nem az etalonhoz való szintaktikai hasonlósága, hanem az alapján értékelik, hogy sikeresen átmegy-e az automatikus egységtesztek (unit-tesztek) készletén[1].
A feladatkészlet szerkezete
A benchmark 164, kézzel megírt programozási feladatból áll, amelyeket kifejezetten ehhez az adatkészlethez készítettek, hogy garantálják azok hiányát a modellek tanítóhalmazaiban. Minden feladat Python nyelven van megfogalmazva, és kódrészletek formájában, leírással együtt szerepel[2].
Minden feladat a következőket tartalmazza:
- Függvényfejléc: A függvény szignatúrája a nevével és paramétereivel.
- Szöveges leírás: Angol nyelvű docstring, amely leírja a kívánt funkcionalitást.
- Függvénytörzs: Üres hely, amelyet a modellnek a generált kóddal kell kitöltenie.
Minden feladathoz a modell elől rejtve maradó elemek is tartoznak:
- Kanonikus megoldás: A függvény helyes (etalon) implementációja.
- Egységtesztek (unit-tesztek) készlete: A generált kód helyességének automatikus ellenőrzésére szolgál. A tesztek mind az alapvető, mind a határeseteket lefedik.
A feladatok témái széles spektrumon mozognak: az alapvető nyelvi konstrukcióktól és algoritmusoktól az egyszerű matematikáig, ami változatossá és a modellek számára kihívásossá teszi a készletet.
A modellek értékelési módszertana
A HumanEval-on elért siker fő metrikája a pass@k, amely azt méri, hogy a modellek a feladatok hány százalékát oldják meg funkcionálisan helyesen[1]. Egy megoldást akkor tekintenek sikeresnek, ha a generált kód átmegy az adott feladathoz tartozó összes automatikus teszten.
- pass@1: Az alapvető és leggyakrabban használt mutató. Az első próbálkozásra megoldott feladatok százalékát jelenti (azaz feladatonként egy megoldásvariáns generálásakor).
- pass@k: Általánosan ez a metrika azt mutatja, hogy a feladatok mekkora hányadánál megy át a modell által generált legalább egy a k megoldásvariáns közül az összes teszten. Például a pass@10 azt mutatja, hogy a feladatok mekkora hányadát képes a modell megoldani, ha feladatonként legfeljebb 10 próbálkozást kap.
Mivel a pass@k közvetlen kiszámítása nagyszámú mintát igényel, a szerzők statisztikailag helyes számítási módszert javasoltak erre a metrikára, amely torzítatlan becslést tesz lehetővé[1].
A gyakorlati tesztelés egy speciális „sandbox" környezetben zajlik: a generált kód lefordítódik és lefut az ellenőrző tesztkészleten. Ez a megközelítés lehetővé teszi annak mérését, hogy a modell képes-e futtatható és helyes kódot generálni, nem csupán az etalonhoz szintaktikailag hasonlót.
Eredmények és iparági hatás
A HumanEval-on végzett kezdeti kísérletek jelentős különbséget mutattak az általános célú és a kódra specializáltan betanított modellek között.
- 2021-ben az OpenAI Codex modell (12 milliárd paraméter, GitHubról való kódon betanítva) az első próbálkozásra a feladatok ~28,8%-át oldotta meg (pass@1).
- Ugyanakkor a nagyobb, de kódra nem betanított GPT-3 nyelvi modell (175 milliárd paraméter) egyetlen feladatot sem tudott helyesen megoldani[1].
Ezek az eredmények rámutattak a programozási adatokon való specializált betanítás szükségességére a sikeres kódgeneráláshoz. A HumanEval megjelenése után a benchmark gyorsan az új modellek fejlődésének összehasonlítására szolgáló szabványos tesztté vált.
- A GPT-3.5 modellcsalád (2023 eleje) ~72%-os pass@1 értéket ért el.
- A GPT-4 modell (2023) még magasabb eredményeket mutatott, az alap verzióban ~67%-ot ért el, és további finomhangolás után 85%-ot is meghaladott[3].
- A nyílt forráskódú modellek, mint a Code Llama (Meta, 2023) és a WizardCoder (2023), szintén magas eredményeket értek el (pass@1: ~53% és ~57%), felülmúlva a korai proprietáris modelleket[4].
A benchmark kiterjesztései és változatai
A HumanEval sikere több származtatott verzió létrehozását inspirálta, amelyek célja a modellek szélesebb körülmények között való értékelése.
- CL-HumanEval (Cross-Lingual HumanEval): Keresztnyelvű változat (2024), ahol az eredeti HumanEval feladatait adaptálták annak ellenőrzésére, hogy a modellek képesek-e különböző nyelvű (az angolontúl) leírásokat megérteni, miközben Python kódot generálnak[5].
- Multilingual HumanEval: Egy kiterjesztés (2023), amely a kódgenerálás értékelésére irányul 12 különböző programozási nyelven (Java, C#, JavaScript és mások) angol nyelvű leírás alapján[6].
- HumanEval-XL: Egy nagyszabású benchmark (2024), amely mindkét megközelítést ötvözi. 12 programozási nyelven tartalmaz feladatokat, a szöveges leírások fordításait pedig a világ 23 nyelvén, köztük oroszul, kínaiul, arabul és másokban is elérhetővé teszi. A HumanEval-XL összesen több mint 22 000 „leírás-kód" párt tartalmaz[7].
Hivatkozások
- HumanEval a Hugging Face-en
- HumanEval oldala a Papers with Code-on
Irodalom
- 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.
Megjegyzések
- ↑ 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]