HumanEval-Benchmark (DE)

From Systems analysis Wiki
Jump to navigation Jump to search

HumanEval ist ein Referenzdatensatz (Benchmark), der zur objektiven Bewertung der Codequalität dient, die von KI-Modellen auf der Grundlage einer textuellen Problembeschreibung generiert wird[1]. Er wurde im Juli 2021 von Forschern bei OpenAI unter der Leitung von Mark Chen vorgestellt und hat sich zu einem der wichtigsten Standards zur Messung der funktionalen Korrektheit von generierten Programmen entwickelt.

Die Entwicklung von HumanEval wurde durch den Bedarf an einer zuverlässigen Methode zur Bewertung der Codegenerierung motiviert. Zuvor wurde die Qualität von Code, der von Sprachmodellen generiert wurde, oft anhand indirekter Metriken (wie BLEU) oder manuell bewertet, was keine Garantie für die tatsächliche Funktionsfähigkeit der Programme bot. HumanEval löst dieses Problem, indem es sich auf die funktionale Korrektheit konzentriert: Der generierte Code wird nicht nach seiner syntaktischen Ähnlichkeit mit einer Referenzlösung bewertet, sondern nach seiner Fähigkeit, eine Reihe von automatisierten Unit-Tests erfolgreich zu bestehen[1].

Struktur des Aufgabensatzes

Der Benchmark besteht aus 164 Programmieraufgaben, die manuell speziell für diesen Datensatz erstellt wurden, um sicherzustellen, dass sie nicht in den Trainingsdaten der Modelle enthalten sind. Alle Aufgaben sind in Python formuliert und als Code-Fragmente mit Beschreibungen präsentiert[2].

Jede Aufgabe umfasst:

  • Funktionskopf: Die Signatur der Funktion mit ihrem Namen und ihren Parametern.
  • Textbeschreibung: Ein Docstring in englischer Sprache, der die erforderliche Funktionalität beschreibt.
  • Funktionsrumpf: Ein leerer Bereich, den das Modell mit generiertem Code füllen muss.

Für jede Aufgabe gibt es außerdem Elemente, die für das Modell verborgen sind:

  • Kanonische Lösung: Eine korrekte (Referenz-)Implementierung der Funktion.
  • Satz von Modultests (Unit-Tests): Wird zur automatischen Überprüfung der Korrektheit des generierten Codes verwendet. Die Tests decken sowohl Standard- als auch Randfälle ab.

Die Aufgaben decken ein breites Themenspektrum ab, von grundlegenden Sprachkonstrukten und Algorithmen bis hin zu einfacher Mathematik, was den Datensatz vielfältig und anspruchsvoll für Modelle macht.

Bewertungsmethodik für Modelle

Die zentrale Erfolgsmetrik bei HumanEval ist pass@k, die den Anteil der Aufgaben misst, die von einem Modell funktional korrekt gelöst werden[1]. Eine Lösung gilt als erfolgreich, wenn der generierte Code alle automatisierten Tests für die jeweilige Aufgabe besteht.

  • pass@1: Der primäre und am häufigsten verwendete Indikator. Er gibt den Prozentsatz der Aufgaben an, die das Modell im ersten Versuch löst (d. h., wenn nur eine Lösungsvariante pro Aufgabe generiert wird).
  • pass@k: Im Allgemeinen zeigt diese Metrik den Anteil der Aufgaben, bei denen mindestens eine von k vom Modell generierten Lösungsvarianten alle Tests besteht. Beispielsweise zeigt pass@10, welchen Anteil der Aufgaben das Modell lösen kann, wenn es bis zu 10 Versuche pro Aufgabe erhält.

Da die direkte Berechnung von pass@k eine große Anzahl von Stichproben erfordert, schlugen die Autoren eine statistisch korrekte Methode zur Berechnung dieser Metrik vor, die eine unverzerrte Schätzung ermöglicht[1].

Die praktische Prüfung findet in einer speziellen „Sandbox“ statt: Der generierte Code wird kompiliert und mit einer Reihe von Testfällen ausgeführt. Dieser Ansatz ermöglicht es, die Fähigkeit des Modells zu messen, ausführbaren und korrekten Code zu generieren, anstatt nur Code, der syntaktisch einer Vorlage ähnelt.

Ergebnisse und Einfluss auf die Industrie

Erste Experimente mit HumanEval zeigten eine signifikante Lücke zwischen Allzweckmodellen und Modellen, die speziell auf Code trainiert wurden.

  • Im Jahr 2021 löste das Modell OpenAI Codex (12 Mrd. Parameter, trainiert auf Code von GitHub) im ersten Versuch ~28,8 % der Aufgaben (pass@1).
  • Gleichzeitig konnte das größere Sprachmodell GPT-3 (175 Mrd. Parameter), das nicht auf Code trainiert war, keine einzige Aufgabe korrekt lösen[1].

Diese Ergebnisse unterstrichen die Notwendigkeit eines spezialisierten Trainings auf Programmierdaten für eine erfolgreiche Codegenerierung. Nach seiner Einführung wurde HumanEval schnell zu einem Standardtest, um den Fortschritt neuer Modelle zu vergleichen.

  • Modelle der GPT-3.5-Reihe (Anfang 2023) erreichten ~72 % pass@1.
  • Das Modell GPT-4 (2023) zeigte noch bessere Ergebnisse und erreichte ~67 % in der Basisversion und über 85 % nach zusätzlichen Anpassungen[3].
  • Open-Source-Modelle wie Code Llama (Meta, 2023) und WizardCoder (2023) zeigten ebenfalls starke Ergebnisse (~53 % bzw. ~57 % pass@1) und übertrafen damit frühere proprietäre Modelle[4].

Erweiterungen und Varianten des Benchmarks

Der Erfolg von HumanEval inspirierte die Entwicklung mehrerer abgeleiteter Versionen, die darauf abzielen, Modelle unter breiteren Bedingungen zu bewerten.

  • CL-HumanEval (Cross-Lingual HumanEval): Eine sprachübergreifende Variante (2024), bei der die Aufgaben des ursprünglichen HumanEval angepasst wurden, um die Fähigkeit von Modellen zu testen, Beschreibungen in verschiedenen Sprachen (außer Englisch) zu verstehen und dabei Python-Code zu generieren[5].
  • Multilingual HumanEval: Eine Erweiterung (2023), die auf die Bewertung der Codegenerierung in 12 verschiedenen Programmiersprachen (darunter Java, C#, JavaScript u. a.) auf der Grundlage englischsprachiger Beschreibungen abzielt[6].
  • HumanEval-XL: Ein umfangreicher Benchmark (2024), der beide Ansätze kombiniert. Er enthält Aufgaben in 12 Programmiersprachen und Übersetzungen der Textbeschreibungen in 23 Weltsprachen, darunter Russisch, Chinesisch, Arabisch und weitere. Insgesamt umfasst HumanEval-XL über 22.000 „Beschreibung-Code“-Paare[7].

Literatur

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

Einzelnachweise

  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]