HumanEval Benchmark (PL)
HumanEval — to wzorcowy zestaw danych (benchmark) przeznaczony do obiektywnej oceny jakości kodu generowanego przez modele sztucznej inteligencji na podstawie tekstowego opisu zadania[1]. Został zaprezentowany w lipcu 2021 roku przez badaczy OpenAI pod kierownictwem Marka Chena (Mark Chen) i stał się jednym z kluczowych standardów pomiaru funkcjonalnej poprawności generowanych programów.
Rozwój HumanEval był podyktowany potrzebą posiadania niezawodnej metody oceny generowania kodu. Wcześniej jakość kodu generowanego przez modele językowe była często oceniana za pomocą pośrednich metryk (np. BLEU) lub ręcznie, co nie gwarantowało zgodności z rzeczywistą działalnością programów. HumanEval rozwiązuje ten problem, koncentrując się na funkcjonalnej poprawności: wygenerowany kod jest oceniany nie na podstawie jego składniowego podobieństwa do wzorca, lecz na podstawie jego zdolności do pomyślnego przejścia zestawu automatycznych testów jednostkowych[1].
Struktura zestawu zadań
Benchmark składa się ze 164 zadań programistycznych, napisanych ręcznie specjalnie na potrzeby tego zestawu danych, aby zagwarantować ich nieobecność w zbiorach treningowych modeli. Wszystkie zadania sformułowane są w języku Python i przedstawione w postaci fragmentów kodu z opisem[2].
Każde zadanie zawiera:
- Nagłówek funkcji: Sygnatura funkcji z jej nazwą i parametrami.
- Opis tekstowy: Docstring w języku angielskim opisujący wymaganą funkcjonalność.
- Ciało funkcji: Puste miejsce, które model musi wypełnić wygenerowanym kodem.
Dla każdego zadania przewidziane są również elementy ukryte przed modelem:
- Kanoniczne rozwiązanie: Poprawna (wzorcowa) implementacja funkcji.
- Zestaw testów modułowych (testów jednostkowych): Używany do automatycznej weryfikacji poprawności wygenerowanego kodu. Testy obejmują zarówno przypadki podstawowe, jak i brzegowe.
Zadania obejmują szeroki zakres tematyczny: od podstawowych konstrukcji językowych i algorytmów po prostą matematykę, co sprawia, że zestaw jest różnorodny i wymagający dla modeli.
Metodologia oceny modeli
Główną metryką sukcesu w HumanEval jest pass@k, która mierzy odsetek zadań rozwiązanych przez model w sposób funkcjonalnie poprawny[1]. Rozwiązanie uznaje się za pomyślne, jeśli wygenerowany kod przechodzi wszystkie automatyczne testy dla danego zadania.
- pass@1: Podstawowy i najczęściej stosowany wskaźnik. Oznacza procent zadań rozwiązanych przez model za pierwszym podejściem (tzn. przy generowaniu jednego wariantu rozwiązania na zadanie).
- pass@k: W ogólnym przypadku metryka ta pokazuje odsetek zadań, dla których co najmniej jeden z k wariantów rozwiązania wygenerowanych przez model przechodzi wszystkie testy. Na przykład pass@10 pokazuje, jaki odsetek zadań model jest w stanie rozwiązać, jeśli ma do 10 prób na każde.
Ponieważ bezpośrednie obliczenie pass@k wymaga dużej liczby próbek, autorzy zaproponowali statystycznie poprawną metodę obliczania tej metryki, pozwalającą uzyskać nieobciążone oszacowanie[1].
Praktyczne testowanie odbywa się w specjalnej "piaskownicy": wygenerowany kod jest kompilowany i uruchamiany na zestawie testów weryfikacyjnych. Takie podejście pozwala zmierzyć zdolność modelu do generowania kodu wykonywalnego i poprawnego, a nie jedynie składniowo podobnego do wzorca.
Wyniki i wpływ na branżę
Początkowe eksperymenty na HumanEval ujawniły znaczną przepaść między modelami ogólnego przeznaczenia a modelami specjalnie wytrenowanymi na kodzie.
- W 2021 roku model OpenAI Codex (12 mld parametrów, wytrenowany na kodzie z GitHub) zdołał za pierwszym podejściem rozwiązać ~28,8% zadań (pass@1).
- W tym samym czasie większy model językowy GPT-3 (175 mld), niewytrenowany na kodzie, nie był w stanie poprawnie rozwiązać żadnego zadania[1].
Wyniki te podkreśliły konieczność specjalistycznego treningu na danych programistycznych dla skutecznego generowania kodu. Po pojawieniu się HumanEval benchmark szybko stał się standardowym testem do porównywania postępów nowych modeli.
- Modele z rodziny GPT-3.5 (początek 2023 r.) osiągnęły ~72% pass@1.
- Model GPT-4 (2023 r.) zademonstrował jeszcze wyższe wyniki, osiągając ~67% w wersji podstawowej i przekraczając 85% po dodatkowym dostrajaniu[3].
- Modele open-source, takie jak Code Llama (Meta, 2023) i WizardCoder (2023), również osiągnęły wysokie wyniki (~53% i ~57% pass@1 odpowiednio), przewyższając wczesne modele własnościowe[4].
Rozszerzenia i warianty benchmarku
Sukces HumanEval zainspirował powstanie kilku pochodnych wersji, mających na celu ocenę modeli w szerszych warunkach.
- CL-HumanEval (Cross-Lingual HumanEval): Wariant wielojęzyczny (2024), w którym zadania oryginalnego HumanEval zostały zaadaptowane do sprawdzania zdolności modeli do rozumienia opisów w różnych językach (poza angielskim), przy jednoczesnym generowaniu kodu w Pythonie[5].
- Multilingual HumanEval: Rozszerzenie (2023) ukierunkowane na ocenę generowania kodu w 12 różnych językach programowania (w tym Java, C#, JavaScript i innych) na podstawie opisu w języku angielskim[6].
- HumanEval-XL: Rozbudowany benchmark (2024) łączący oba podejścia. Zawiera zadania w 12 językach programowania oraz tłumaczenia opisów tekstowych na 23 języki świata, w tym polski, chiński, arabski i inne. Łącznie HumanEval-XL obejmuje ponad 22 000 par „opis–kod"[7].
Odnośniki
- HumanEval na Hugging Face
- Strona 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.
Przypisy
- ↑ 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]