HumanEval Benchmark (CS)

From Systems analysis Wiki
Jump to navigation Jump to search

HumanEval — je referenční datová sada (benchmark) určená k objektivnímu hodnocení kvality kódu generovaného modely umělé inteligence na základě textového popisu úlohy[1]. Byl představen v červenci 2021 výzkumníky OpenAI pod vedením Marka Chena (Mark Chen) a stal se jedním z klíčových standardů pro měření funkční správnosti generovaných programů.

Vývoj HumanEval byl motivován potřebou spolehlivé metody hodnocení generování kódu. Dříve byla kvalita kódu generovaného jazykovými modely často hodnocena nepřímými metrikami (například BLEU) nebo ručně, což nezaručovalo shodu se skutečnou funkčností programů. HumanEval tento problém řeší zaměřením na funkční správnost: generovaný kód je hodnocen nikoli podle jeho syntaktické podobnosti se vzorem, ale podle jeho schopnosti úspěšně projít sadou automatických unit testů[1].

Struktura sady úloh

Benchmark se skládá z 164 programovacích úloh, vytvořených ručně speciálně pro tuto datovou sadu, aby bylo zaručeno jejich absence v trénovacích vzorcích modelů. Všechny úlohy jsou formulovány v jazyce Python a jsou prezentovány jako fragmenty kódu s popisem[2].

Každý úkol zahrnuje:

  • Hlavičku funkce: Signaturu funkce s jejím názvem a parametry.
  • Textový popis: Docstring v anglickém jazyce popisující požadovanou funkcionalitu.
  • Tělo funkce: Prázdné místo, které musí model vyplnit generovaným kódem.

Pro každou úlohu jsou také připraveny prvky skryté před modelem:

  • Kanonické řešení: Správná (vzorová) implementace funkce.
  • Sada modulárních testů (unit testů): Používá se pro automatické ověření správnosti generovaného kódu. Testy pokrývají jak základní, tak hraniční případy.

Úlohy pokrývají širokou škálu témat: od základních jazykových konstrukcí a algoritmů až po jednoduchou matematiku, což sadu činí různorodou a náročnou pro modely.

Metodika hodnocení modelů

Hlavní metrikou úspěchu na HumanEval je pass@k, která měří podíl úloh vyřešených modelem funkčně správně[1]. Řešení je považováno za úspěšné, pokud generovaný kód projde všemi automatickými testy pro danou úlohu.

  • pass@1: Hlavní a nejčastěji používaný ukazatel. Vyjadřuje procento úloh vyřešených modelem na první pokus (tj. při generování jedné varianty řešení pro každou úlohu).
  • pass@k: Obecně tato metrika udává podíl úloh, pro které alespoň jeden z k variant řešení generovaných modelem projde všemi testy. Například pass@10 ukazuje, jaký podíl úloh je model schopen vyřešit, pokud dostane až 10 pokusů pro každou úlohu.

Protože přímý výpočet pass@k vyžaduje velké množství vzorků, autoři navrhli statisticky korektní metodu výpočtu této metriky, která umožňuje získat nestranný odhad[1].

Praktické testování probíhá ve speciálním „sandboxu": generovaný kód je zkompilován a spuštěn na sadě ověřovacích testů. Tento přístup umožňuje měřit schopnost modelu generovat spustitelný a správný kód, a nikoli pouze syntakticky podobný vzoru.

Výsledky a vliv na průmysl

Počáteční experimenty na HumanEval ukázaly značný rozdíl mezi modely obecného určení a modely speciálně trénovanými na kódu.

  • V roce 2021 model OpenAI Codex (12 miliard parametrů, trénovaný na kódu z GitHubu) dokázal na první pokus vyřešit ~28,8 % úloh (pass@1).
  • Zároveň větší jazykový model GPT-3 (175 miliard), který nebyl trénován na kódu, nebyl schopen správně vyřešit žádnou úlohu[1].

Tyto výsledky zdůraznily nutnost specializovaného trénování na programovacích datech pro úspěšné generování kódu. Po vzniku HumanEval se benchmark rychle stal standardním testem pro srovnávání pokroku nových modelů.

  • Modely řady GPT-3.5 (začátek roku 2023) dosáhly ~72 % pass@1.
  • Model GPT-4 (2023) dosáhl ještě vyšších výsledků, dosahujíce ~67 % v základní verzi a překračujíce 85 % po dodatečném doladění[3].
  • Otevřené modely jako Code Llama (Meta, 2023) a WizardCoder (2023) také vykázaly vysoké výsledky (~53 % a ~57 % pass@1 v uvedeném pořadí), čímž překonaly dřívější proprietární modely[4].

Rozšíření a varianty benchmarku

Úspěch HumanEval inspiroval vytvoření několika odvozených verzí, jejichž cílem je hodnotit modely v širším kontextu.

  • CL-HumanEval (Cross-Lingual HumanEval): Mezijazyková varianta (2024), kde jsou úlohy původního HumanEval přizpůsobeny k ověření schopnosti modelů chápat popisy v různých jazycích (kromě angličtiny) a přitom generovat kód v Pythonu[5].
  • Multilingual HumanEval: Rozšíření (2023) zaměřené na hodnocení generování kódu ve 12 různých programovacích jazycích (včetně Java, C#, JavaScriptu aj.) na základě anglického popisu[6].
  • HumanEval-XL: Rozsáhlý benchmark (2024) kombinující oba přístupy. Obsahuje úlohy ve 12 programovacích jazycích a překlady textových popisů do 23 světových jazyků, včetně ruštiny, čínštiny, arabštiny a dalších. Celkem HumanEval-XL zahrnuje více než 22 000 párů „popis–kód\"[7].

Odkazy

  • HumanEval na Hugging Face
  • Stránka HumanEval na Papers with Code

Literatura

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

Poznámky

  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]