HumanEval ist ein Benchmark zur Bewertung der Codegenerierungsfähigkeiten von Large Language Models (LLMs). Es wurde von OpenAI entwickelt, um frühe Versionen der KI-Modelle zu evaluieren, die Codex, den Software-Engineering-Agenten des Unternehmens, unterstützen.
Der HumanEval-Benchmark ist speziell für Python-generierten Code konzipiert. Er geht über die Syntax hinaus und überprüft, ob der erstellte Code sowohl korrekt ist als auch wie beabsichtigt funktioniert.
Das Benchmark-Framework ist im OpenAI HumanEval GitHub-Repository zugänglich. HumanEval verfügt außerdem über eine Bestenliste, die die Leistung verschiedener Codegenerierungsmodelle bewertet, darunter die Claude Suite, Kimi K2, Google Gemma und Gemini, GPT-5 sowie die älteren GPT-4o und GPT-4 sowie die IBM Granite-Familie, unter anderem.
Erhalten Sie kuratierte Einblicke in die wichtigsten – und faszinierendsten – KI-Neuheiten. Abonnieren Sie unseren wöchentlichen Think-Newsletter. Weitere Informationen in der IBM Datenschutzerklärung.
Der HumanEval-Datensatz besteht aus 164 von Hand geschriebenen Programmierproblemen mit den entsprechenden Komponententests.1 Anhand dieser Probleme wird die Fähigkeit eines Modells beurteilt, Sprache zu verstehen, Zeichenfolgen zu manipulieren, zu suchen und zu sortieren. Sie bewerten zudem Problemlösungsfähigkeiten anhand einfacher Mathematik und komplexer Algorithmen. Diese Programmieraufgaben ähneln den algorithmischen Fragen, Codierungsübungen oder Systemdesign-Herausforderungen, die Softwareentwickler bei technischen Vorstellungsgesprächen durchlaufen.
Jede Code-Generierungsaufgabe enthält folgende Komponenten:
Die Signatur definiert den Namen und die Parameter der Funktion. Als Beispiel ist hier die Signatur für eine Funktion, die das Produkt zweier ganzer Zahlen berechnet:
Ein Docstring ist eine natürlichsprachliche Aufforderung oder Beschreibung des erwarteten Verhaltens, der Ziele, der Eingaben und Ausgaben der Funktion. Diese Kommentare beschreiben, was eine Funktion bewirkt, und leiten das Modell bei der Generierung von Python-Code an.
Der Docstring der Multiplikationsfunktion lautet beispielsweise:
Dies ist ein Segment, das dem Code zugewiesen wird, den ein Modell erzeugt. Es enthält die implementierte Lösung für das Problem unter Berücksichtigung der Funktionssignatur und des Docstring.
Diese Testfälle überprüfen die funktionale Korrektheit des generierten Codes in verschiedenen Szenarien. Jeder Test speist eine bestimmte Eingabe in die Funktion ein und vergleicht dann die Ausgabe mit den beabsichtigten Ergebnissen.
Hier sind einige Beispiel-Komponentenests für die Multiplikationsfunktion:
Viele Code-LLM-Benchmarks verwenden Methoden, die auch für die Textgenerierung eingesetzt werden, wie zum Beispiel matchbasierte Metriken, die generierte Codebeispiele mit einer Referenzlösung vergleichen. Matchbasierte Metriken berücksichtigen jedoch in der Regel nicht die verschiedenen Möglichkeiten, wie ein Problem gelöst werden kann, von denen jede funktional gleichwertig mit der Referenzlösung sein kann.
Aus diesem Grund setzt der HumanEval-Benchmark auf funktionale Korrektheit: Ein generiertes Codebeispiel gilt als korrekt, wenn es eine Suite von Komponententests besteht. Dieser Ansatz spiegelt die Vorgehensweise von Entwicklern wider, die den Erfolg ihres Codes bewerten, indem sie ihn einer Reihe von Komponententests unterziehen und sicherstellen, dass er jeden einzelnen besteht.
HumanEval misst die funktionale Korrektheit mithilfe der pass@k-Metrik. Für jedes Problem generiert ein Modell k Codebeispiele. Wenn eine dieser Stichproben die Komponententests besteht, gilt das Problem als korrekt gelöst. Die pass@k-Metrik schätzt die Wahrscheinlichkeit, dass mindestens eine der k Stichproben funktional korrekt ist.
HumanEval ist nur eines von vielen Benchmarks zur Bewertung von Code-LLMs. Software-Entwicklungsteams müssen LLM-generierten Code immer noch mit ihren eigenen internen Tests bewerten und mehrere Metriken kombinieren, um einen umfassenderen Überblick über die Modellleistung zu erhalten. Ein Human-in-the-Loop-Ansatz bleibt ebenfalls entscheidend, um die Genauigkeit von KI-generiertem Code sicherzustellen und die Feinabstimmung sowie maschinelles Lernen im Laufe der Zeit zu optimieren.
Einige Einschränkungen des HumanEval-Benchmarks sind:
Da sie weit verbreitet sind, kann es auch sein, dass ein Modell bereits im Rahmen seines Trainings auf einige Programmierprobleme gestoßen ist, die im Datensatz enthalten sind. Die Anzahl der Probleme ist zudem so gering, dass die Modelle zur Codegenerierung sie möglicherweise alle auswendig lernen können.
Die Aufgaben zur Codegenerierung in HumanEval fallen in der Regel unter die Kategorie „Leicht bis mittelschwer“. Dennoch sind reale Programmieraufgaben in der Regel komplexer und umfassen API-Integrationen mit mehreren Systemen, riesigen Codebasen und großen Datensätzen.
Der Benchmark spiegelt auch nicht den oft verwickelten Zustand realer Softwareentwicklungsumgebungen und Workflows wider: sich entwickelnde Anwendungsfälle, unvollständige Testfälle, inkonsistente Anforderungen, Legacy-Code oder vage Spezifikationen, um nur einige zu nennen.
Beim Programmieren geht es um mehr als nur funktionale Korrektheit. HumanEval berücksichtigt beispielsweise nicht die Effizienz. Das bedeutet, dass LLM-generierter Code, der korrekt ist und wie erwartet funktioniert, möglicherweise nicht die effizienteste und am besten optimierte Lösung in Bezug auf die Leistung ist.
Der Benchmark berücksichtigt auch keine Best Practices wie Codierung, Stilstandards, Fehlerbehandlung, Eingabe und sichere Codierung.
HumanEval ist speziell auf die Open-Source-Programmiersprache Python zugeschnitten. Quellcode, der in anderen Sprachen generiert wird, muss mit anderen Benchmarks ausgewertet werden.
Der Benchmark hat einige verschiedene Versionen, die einige seiner Einschränkungen adressieren:
HumanEval+
HumanEval-V
HumanEval-X
HumanEvalNext
Jedes Programmierproblem in HumanEval umfasst im Durchschnitt etwa 7 bis 8 Komponententests.1 HumanEval+ erhöht diese Testabdeckung für eine gründlichere Bewertung deutlich – auf durchschnittlich 764 Tests pro Problem.2
HumanEval-V baut auf seinem Vorgänger auf, um einen Benchmark für multimodale KI-Modelle zu schaffen, insbesondere für Vision Language Models (VLMs). Es misst die Fähigkeit von VLMs, Diagramme, Schaubilder und Graphen in Programmierkontexten zu verstehen und zu analysieren, wobei sie beispielsweise Code auf der Grundlage von Flussdiagrammen von Algorithmen oder Matrix-Transformationen generieren.
HumanEval-X erweitert den ursprünglichen Benchmark um die Programmiersprachen C++, Go, Java und JavaScript. Die 820 Aufgaben können zur Bewertung von Fähigkeiten in den Bereichen Codegenerierung und Codeübersetzung verwendet werden.
HumanEvalNext verbessert HumanEval. Es fügt mehr Kontext durch Typannotationen hinzu (Programmiersyntax zur Anzeige der Datentypen von Funktionsparametern und Rückgabewerten), integriert mehr Randfälle, führt mehr Komponententests ein und erhöht die Schwierigkeit von Problemen.3
Beschleunigen Sie die Softwarebereitstellung mit Bob, Ihrem KI-Partner für sichere, absichtsorientierte Entwicklung.
Optimieren Sie die Softwareentwicklung mit vertrauenswürdigen KI-gestützten Tools, die den Zeitaufwand für das Schreiben von Code, Debuggen, Code-Refactoring oder Codevervollständigung minimieren und mehr Raum für Innovation schaffen.
Erfinden Sie kritische Workflows und Abläufe neu, indem Sie KI einsetzen, um Erfahrungen, Entscheidungsfindung in Echtzeit und den geschäftlichen Nutzen zu maximieren.
1. Evaluating Large Language Models Trained on Code, arXiv, 14. Juli 2021
2. Is Your Code Generated by ChatGPT Really Correct? Rigorous Evaluation of Large Language Models for Code Generation, arXiv, 30. Oktober 2023
3. Benchmarking AI Models in Software Engineering: A Review, Search Tool, and Unified Approach for Elevating Benchmark Quality, arXiv, 12. Dezember 2025