Innovative Benchmarks zur Bewertung der KI-gestützten Codegenerierung

Kategorien:
No items found.
Freigegeben:
June 14, 2024

In der Welt der Softwareentwicklung ist die Erstellung von Code ein Kernaspekt, der stetig durch innovative Ansätze und Technologien optimiert wird. Eine der neuesten Entwicklungen in diesem Bereich ist die Einführung von Benchmarks für die Codegenerierung, die es ermöglichen, die Effektivität von künstlichen Intelligenzen (KI) bei der Erstellung von Programmcode zu bewerten. In diesem Zusammenhang hat ein Forschungsteam jüngst "EvoCodeBench" vorgestellt, einen neuen Benchmark, der die Messlatte für die Leistungsfähigkeit von KI-Modellen im Bereich der Codegenerierung höher legt.

Die KI-gestützte Codegenerierung hat sich in den letzten Jahren rasant entwickelt und ist mittlerweile in der Lage, Programmcode zu erzeugen, der spezifische Aufgaben erfüllt. Solche Modelle basieren auf dem Paradigma des Pre-Trainings und Fine-Tunings, wobei bereits bekannte Beispiele wie Codex, CodeGen und PanGu-Coder aus Industrie und Forschung stammen. Um die Effektivität dieser Modelle zu bewerten, wurden verschiedene Benchmarks vorgeschlagen, die allerdings häufig nur die Erzeugung von eigenständigen Funktionen – also solchen, die lediglich eingebaute Funktionen und Standardbibliotheken aufrufen oder darauf zugreifen – umfassten. Nicht eigenständige Funktionen, die in beliebten Open-Source-Projekten mehr als 70% der Funktionen ausmachen, wurden in bestehenden Benchmarks meist nicht berücksichtigt.

Das Forschungsteam um Hao Yu et al. hat mit "CoderEval" einen neuen Benchmark entwickelt, der aus 230 Python- und 230 Java-Codegenerierungsaufgaben besteht, die sorgfältig aus populären Open-Source-Projekten kuratiert wurden. Der Benchmark bietet zudem eine eigenständige Ausführungsplattform, um die funktionale Korrektheit des generierten Codes automatisch zu bewerten. CoderEval berücksichtigt sechs Ebenen der Kontextabhängigkeit, wobei der Kontext sich auf Codeelemente bezieht, die außerhalb der zu generierenden Funktion, aber innerhalb der abhängigen Drittanbieterbibliotheken, der aktuellen Klasse, der Datei oder des Projekts definiert sind.

Die Evaluation dreier Codegenerierungsmodelle auf Basis von CoderEval ergab, dass die Effektivität dieser Modelle bei der Erzeugung eigenständiger Funktionen deutlich höher ist als bei nicht eigenständigen Funktionen. Diese Ergebnisse unterstreichen den aktuellen Fortschritt und weisen auf zukünftige Richtungen hin, um die Effektivität von Modellen durch die Nutzung kontextueller Informationen für pragmatische Codegenerierung weiter zu verbessern.

Neben CoderEval gibt es auch "HumanEval" von OpenAI, ein Benchmark, der hauptsächlich die Erzeugung eigenständiger Funktionen evaluiert. Im Unterschied dazu ermöglicht CoderEval eine Bewertung von Modellen gegenüber pragmatischer Codegenerierung, die über die Erzeugung eigenständiger Funktionen hinausgeht. Die Daten für CoderEval wurden aus Funktionen gesammelt, die von den ursprünglichen Entwicklern verschiedener Open-Source-Projekte getestet wurden. Um eine realitätsnahe und vielfältige Sammlung zu gewährleisten, wurden Projekte anhand häufiger Tags auf GitHub ausgewählt und nur Funktionen berücksichtigt, die bestimmte Kriterien erfüllen – darunter das Vorhandensein von Kommentaren auf Englisch und die erfolgreiche Ausführung auf der Verifizierungsplattform.

CoderEval beinhaltet auch die Identifizierung von Kontextabhängigkeiten und klassifiziert Codegenerierungsaufgaben basierend auf der Kontextabhängigkeit in sechs ausführbare Ebenen. Die Bewertung des generierten Codes erfolgt auf einer Linux-Docker-Bild-basierten Plattform, die eine virtuelle und sichere Sandbox für die Ausführung bereitstellt.

Die Forschungsergebnisse wurden in der Fachzeitschrift "International Conference on Software Engineering (ICSE) 2024" veröffentlicht und sind auf arXiv unter der Referenz arXiv:2302.00288 [cs.SE] einsehbar. Interessierte können die Forschungsdaten und Ergebnisse auf GitHub unter dem Repository "CoderEval" nachvollziehen.

Die vorgestellte Forschungsarbeit trägt maßgeblich dazu bei, die Lücke in der Bewertung von KI-Modellen für die Codegenerierung zu schließen und bietet einen wertvollen Beitrag zur Weiterentwicklung von KI-Systemen, die in der Softwareentwicklung eingesetzt werden können. Zukünftige Forschungen und Entwicklungen werden zeigen, inwieweit solche Modelle die Effizienz und Qualität der Softwareproduktion weiter steigern können.

Bibliographie:
- Hao Yu et al., "CoderEval: A Benchmark of Pragmatic Code Generation with Generative Pre-trained Models", arXiv:2302.00288 [cs.SE], https://doi.org/10.48550/arXiv.2302.00288.
- Jia Li, Twitter-Post über EvoCodeBench, https://twitter.com/lji1091753/status/151007816.
- CoderEval GitHub Repository, https://github.com/CoderEval/CoderEval.
- CoderEval auf Hugging Face, https://huggingface.co/datasets/LJ0815/EvoCodeBench.

Was bedeutet das?