HumanEval Benchmark (RO)

From Systems analysis Wiki
Jump to navigation Jump to search

HumanEval — este un set de date de referință (benchmark) destinat evaluării obiective a calității codului generat de modelele de inteligență artificială pe baza descrierii textuale a sarcinii[1]. A fost prezentat în iulie 2021 de cercetătorii OpenAI sub conducerea lui Mark Chen și a devenit unul dintre standardele cheie pentru măsurarea corectitudinii funcționale a programelor generate.

Dezvoltarea HumanEval a fost determinată de nevoia unei metode fiabile de evaluare a generării de cod. Anterior, calitatea codului generat de modelele de limbaj era adesea evaluată prin metrici indirecte (de exemplu, BLEU) sau manual, ceea ce nu garanta corelarea cu funcționalitatea reală a programelor. HumanEval rezolvă această problemă concentrându-se pe corectitudinea funcțională: codul generat este evaluat nu după similaritatea sa sintactică cu varianta de referință, ci după capacitatea sa de a trece cu succes un set de teste unitare automate[1].

Structura setului de sarcini

Benchmark-ul este compus din 164 de sarcini de programare, scrise manual special pentru acest set de date, pentru a garanta absența lor din datele de antrenament ale modelelor. Toate sarcinile sunt formulate în limbajul Python și sunt prezentate sub formă de fragmente de cod cu descriere[2].

Fiecare sarcină include:

  • Antetul funcției: Semnătura funcției cu numele și parametrii acesteia.
  • Descrierea textuală: Un docstring în limba engleză care descrie funcționalitatea cerută.
  • Corpul funcției: Un spațiu gol pe care modelul trebuie să îl completeze cu codul generat.

Pentru fiecare sarcină sunt prevăzute și elemente ascunse față de model:

  • Soluția canonică: Implementarea corectă (de referință) a funcției.
  • Setul de teste unitare: Utilizat pentru verificarea automată a corectitudinii codului generat. Testele acoperă atât cazurile de bază, cât și cazurile limită.

Sarcinile acoperă o gamă largă de subiecte: de la construcții de bază ale limbajului și algoritmi până la matematică simplă, ceea ce face setul divers și provocator pentru modele.

Metodologia de evaluare a modelelor

Principala metrică de succes pe HumanEval este pass@k, care măsoară proporția sarcinilor rezolvate funcțional corect de către model[1]. O soluție este considerată reușită dacă codul generat trece toate testele automate pentru sarcina respectivă.

  • pass@1: Indicatorul principal și cel mai frecvent utilizat. Reprezintă procentul sarcinilor rezolvate de model din prima încercare (adică la generarea unui singur variant de soluție per sarcină).
  • pass@k: În cazul general, această metrică arată proporția sarcinilor pentru care cel puțin unul dintre cele k variante de soluție generate de model trece toate testele. De exemplu, pass@10 arată ce proporție de sarcini poate rezolva modelul dacă i se acordă până la 10 încercări pentru fiecare.

Deoarece calculul direct al pass@k necesită un număr mare de eșantioane, autorii au propus o metodă statistic corectă de calcul al acestei metrici, care permite obținerea unei estimări nepărtinitoare[1].

Testarea practică are loc într-un „sandbox" special: codul generat este compilat și rulat pe un set de teste de verificare. Această abordare permite măsurarea capacității modelului de a genera cod executabil și corect, nu doar sintactic similar cu varianta de referință.

Rezultate și impact asupra industriei

Experimentele inițiale pe HumanEval au evidențiat un decalaj semnificativ între modelele de uz general și modelele antrenate special pe cod.

  • În 2021, modelul OpenAI Codex (12 miliarde de parametri, antrenat pe cod de pe GitHub) a reușit să rezolve din prima încercare ~28,8% din sarcini (pass@1).
  • În același timp, modelul de limbaj mai mare GPT-3 (175 de miliarde), neantrenat pe cod, nu a reușit să rezolve corect nicio sarcină[1].

Aceste rezultate au subliniat necesitatea unui antrenament specializat pe date de programare pentru o generare de cod reușită. După apariția HumanEval, benchmark-ul a devenit rapid un test standard pentru compararea progresului noilor modele.

  • Modelele din seria GPT-3.5 (începutul anului 2023) au atins ~72% pass@1.
  • Modelul GPT-4 (2023) a demonstrat rezultate și mai ridicate, atingând ~67% în versiunea de bază și depășind 85% după ajustări suplimentare[3].
  • Modelele open-source, precum Code Llama (Meta, 2023) și WizardCoder (2023), au obținut de asemenea rezultate ridicate (~53% și respectiv ~57% pass@1), depășind modelele proprietare timpurii[4].

Extensii și variante ale benchmark-ului

Succesul HumanEval a inspirat crearea mai multor versiuni derivate, menite să evalueze modelele în condiții mai largi.

  • CL-HumanEval (Cross-Lingual HumanEval): Varianta cross-lingvistică (2024), în care sarcinile originalului HumanEval sunt adaptate pentru a testa capacitatea modelelor de a înțelege descrieri în diverse limbi (dincolo de engleză), generând totodată cod în Python[5].
  • Multilingual HumanEval: O extensie (2023) orientată spre evaluarea generării de cod în 12 limbaje de programare diferite (inclusiv Java, C#, JavaScript ș.a.) pe baza descrierilor în limba engleză[6].
  • HumanEval-XL: Un benchmark la scară largă (2024) care combină ambele abordări. Conține sarcini în 12 limbaje de programare și traduceri ale descrierilor textuale în 23 de limbi ale lumii, inclusiv română, chineză, arabă ș.a. În total, HumanEval-XL numără peste 22.000 de perechi „descriere-cod\"[7].

Legături externe

  • HumanEval pe Hugging Face
  • Pagina HumanEval pe Papers with Code

Bibliografie

  • 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.

Note

  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]