HumanEval Benchmark (HU)

From Systems analysis Wiki
Jump to navigation Jump to search

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. 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]
  2. «openai/openai_humaneval». Hugging Face Datasets. [2]
  3. 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]
  4. Lutfullaev, J. «HumanEval on LLMs Revisited in Late 2023». arXiv:2402.14852, 2023. [4]
  5. 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]
  6. Athiwaratkun, B. et al. «Multilingual HumanEval: A Multilingual Code Generation Benchmark». arXiv:2307.11892, 2023. [6]
  7. Liu, J. et al. «HumanEval-XL: A Multilingual Code Generation Benchmark for Cross-lingual Natural Language Generalization». LREC-COLING 2024. [7]