HumanEval Benchmark (SV)

From Systems analysis wiki
Jump to navigation Jump to search

HumanEval — är ett referensdataset (benchmark) avsett för objektiv utvärdering av kvaliteten på kod som genereras av artificiella intelligensmodeller utifrån en textbeskrivning av uppgiften[1]. Det presenterades i juli 2021 av forskare vid OpenAI under ledning av Mark Chen och blev en av de viktigaste standarderna för att mäta funktionell korrekthet hos genererade program.

Utvecklingen av HumanEval drevs av behovet av en tillförlitlig metod för att utvärdera kodgenerering. Tidigare utvärderades kvaliteten på kod genererad av språkmodeller ofta med indirekta mätvärden (till exempel BLEU) eller manuellt, vilket inte garanterade överensstämmelse med programmens faktiska funktionsduglighet. HumanEval löser detta problem genom att fokusera på funktionell korrekthet: genererad kod bedöms inte utifrån dess syntaktiska likhet med referensen, utan utifrån dess förmåga att framgångsrikt klara en uppsättning automatiska enhetstester[1].

Struktur för uppgiftssamlingen

Benchmarket består av 164 programmeringsuppgifter, skrivna manuellt specifikt för detta dataset för att garantera att de inte förekommer i modellernas träningsdata. Alla uppgifter är formulerade i Python och presenteras i form av kodfragment med beskrivning[2].

Varje uppgift innehåller:

  • Funktionshuvud: Funktionssignatur med dess namn och parametrar.
  • Textbeskrivning: En docstring på engelska som beskriver den önskade funktionaliteten.
  • Funktionskropp: Ett tomt utrymme som modellen ska fylla med genererad kod.

För varje uppgift finns också element som är dolda för modellen:

  • Kanonisk lösning: En korrekt (referens)implementation av funktionen.
  • Uppsättning enhetstester (unit tests): Används för automatisk kontroll av korrekthet hos den genererade koden. Testerna täcker både grundläggande och gränsfall.

Uppgifterna täcker ett brett spektrum av ämnen: från grundläggande språkkonstruktioner och algoritmer till enkel matematik, vilket gör samlingen varierad och utmanande för modeller.

Metodik för modellbedömning

Huvudmåttet för framgång på HumanEval är pass@k, som mäter andelen uppgifter som modellen löst funktionellt korrekt[1]. En lösning anses lyckad om den genererade koden klarar alla automatiska tester för den aktuella uppgiften.

  • pass@1: Det primära och mest använda måttet. Det anger procentandelen uppgifter som modellen löser vid första försöket (det vill säga vid generering av ett lösningsalternativ per uppgift).
  • pass@k: I det allmänna fallet visar detta mått andelen uppgifter för vilka minst ett av k av modellens genererade lösningsalternativ klarar alla tester. Till exempel visar pass@10 vilken andel av uppgifterna modellen kan lösa om den ges upp till 10 försök per uppgift.

Eftersom direkt beräkning av pass@k kräver ett stort antal urval föreslog författarna en statistiskt korrekt beräkningsmetod för detta mått, vilket ger en väntevärdesriktig skattning[1].

Praktisk testning sker i en särskild "sandlåda": den genererade koden kompileras och körs mot en uppsättning verifieringstester. Detta tillvägagångssätt mäter modellens förmåga att generera körbar och korrekt kod, snarare än kod som bara syntaktiskt liknar referensen.

Resultat och påverkan på branschen

De inledande experimenten på HumanEval visade en betydande skillnad mellan generella modeller och modeller specialtränade på kod.

  • År 2021 lyckades OpenAI Codex (12 miljarder parametrar, tränad på kod från GitHub) lösa ~28,8% av uppgifterna vid första försöket (pass@1).
  • Samtidigt lyckades den större språkmodellen GPT-3 (175 miljarder parametrar), som inte tränats på kod, inte lösa en enda uppgift korrekt[1].

Dessa resultat underströk nödvändigheten av specialiserad träning på programmeringsdata för framgångsrik kodgenerering. Efter att HumanEval lanserades blev benchmarket snabbt ett standardtest för att jämföra framstegen hos nya modeller.

  • Modeller i GPT-3.5-serien (tidigt 2023) nådde ~72% pass@1.
  • Modellen GPT-4 (2023) uppvisade ännu högre resultat och nådde ~67% i grundversionen och översteg 85% efter ytterligare finjustering[3].
  • Öppna modeller som Code Llama (Meta, 2023) och WizardCoder (2023) uppvisade också höga resultat (~53% respektive ~57% pass@1), och överträffade tidiga proprietära modeller[4].

Utökningar och varianter av benchmarket

Framgångarna med HumanEval inspirerade skapandet av flera härledda versioner avsedda att utvärdera modeller under bredare förhållanden.

  • CL-HumanEval (Cross-Lingual HumanEval): En korsspråklig variant (2024) där uppgifterna från det ursprungliga HumanEval anpassats för att testa modellers förmåga att förstå beskrivningar på olika språk (utöver engelska) och samtidigt generera kod i Python[5].
  • Multilingual HumanEval: En utökning (2023) inriktad på att utvärdera kodgenerering på 12 olika programmeringsspråk (inklusive Java, C#, JavaScript med flera) utifrån engelskspråkiga beskrivningar[6].
  • HumanEval-XL: Ett storskaligt benchmark (2024) som kombinerar båda ansatserna. Det innehåller uppgifter på 12 programmeringsspråk och översättningar av textbeskrivningar till 23 världsspråk, inklusive ryska, kinesiska, arabiska med flera. Totalt omfattar HumanEval-XL mer än 22 000 par av "beskrivning–kod"[7].

Länkar

  • HumanEval på Hugging Face
  • HumanEvals sida på Papers with Code

Litteratur

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

Noter

  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]