SWE bench java Ein neuer Benchmark für die Lösung von GitHub Issues in Java

Kategorien:
No items found.
Freigegeben:
August 27, 2024
Neuigkeiten aus der Welt der KI

SWE-bench-java: Ein GitHub-Issue-Resolving-Benchmark für Java

Einführung

Die Lösung von GitHub-Issues ist eine entscheidende Aufgabe im Bereich der Softwareentwicklung und hat in den letzten Jahren sowohl in der Industrie als auch in der akademischen Welt erheblich an Bedeutung gewonnen. Vor diesem Hintergrund wurde SWE-bench entwickelt, um die Fähigkeiten von großen Sprachmodellen (LLMs) bei der Lösung von Issues zu bewerten. Bislang konzentrierte sich SWE-bench jedoch ausschließlich auf die Python-Version. Aufgrund der starken Nachfrage in der Industrie ist es jedoch auch wichtig, weitere Programmiersprachen zu unterstützen. Als erster Schritt in Richtung mehrsprachiger Unterstützung haben wir eine Java-Version von SWE-bench entwickelt, die als SWE-bench-java bekannt ist.

Die Bedeutung von mehrsprachiger Unterstützung

Mehrsprachige Unterstützung in der Softwareentwicklung ist von entscheidender Bedeutung, da Unternehmen weltweit verschiedene Programmiersprachen verwenden. Während Python eine weit verbreitete Sprache ist, wird Java in vielen großen Unternehmen und kritischen Systemen bevorzugt. Die Unterstützung von Java in SWE-bench-java erweitert daher die Anwendungsfälle erheblich und macht den Benchmark relevanter für eine breitere Palette von Entwicklern und Unternehmen.

Veröffentlichung und kontinuierliche Pflege

Wir haben das Dataset von SWE-bench-java öffentlich freigegeben, zusammen mit der entsprechenden Docker-basierten Evaluierungsumgebung und einer Bestenliste, die in den kommenden Monaten kontinuierlich gepflegt und aktualisiert wird. Diese Infrastruktur ermöglicht es Entwicklern und Forschern, ihre Modelle und Lösungen auf einfache Weise zu testen und zu vergleichen.

Überprüfung der Zuverlässigkeit

Um die Zuverlässigkeit von SWE-bench-java zu überprüfen, haben wir eine klassische Methode namens SWE-agent implementiert und mehrere leistungsstarke LLMs darauf getestet. Die Entwicklung eines hochwertigen, mehrsprachigen Benchmarks ist bekanntlich zeitaufwendig und arbeitsintensiv. Daher begrüßen wir Beiträge durch Pull-Requests oder Zusammenarbeit, um die Iteration und Verfeinerung des Benchmarks zu beschleunigen und den Weg für vollautomatisierte Programmierung zu ebnen.

Warum ist SWE-bench-java wichtig?

Die Einführung von SWE-bench-java ist ein bedeutender Schritt in der Weiterentwicklung der Evaluierungsmechanismen für Sprachmodelle. Während viele Benchmarks sich auf einfache oder isolierte Aspekte der Programmierung konzentrieren, stellt SWE-bench-java realistische, komplexe Herausforderungen dar, die in der realen Welt auftreten. Dies umfasst das Verständnis und die Koordination von Änderungen über mehrere Funktionen, Klassen und Dateien hinweg, was ein tiefes Verständnis und eine komplexe Argumentation erfordert, die weit über die traditionelle Code-Generierung hinausgehen.

Ergebnisse und Zukunftsperspektiven

Unsere Evaluierungen zeigen, dass sowohl proprietäre Modelle als auch unser fein abgestimmtes Modell SWE-Llama nur die einfachsten Issues lösen können. Fortschritte bei SWE-bench-java repräsentieren daher Schritte in Richtung praktischere, intelligentere und autonomere Sprachmodelle. Wir hoffen, dass diese Arbeit die Forschung und Entwicklung in diesem Bereich vorantreiben wird und freuen uns auf zukünftige Beiträge und Verbesserungen.

Schlussfolgerung

SWE-bench-java stellt einen bedeutenden Fortschritt in der Evaluierung von Sprachmodellen dar, indem es die Unterstützung für Java einführt und somit die Anwendungsfälle erweitert. Die kontinuierliche Pflege und Verbesserung des Benchmarks sowie die Einladung zur Zusammenarbeit bieten eine solide Grundlage für zukünftige Entwicklungen und Innovationen in der automatisierten Programmierung.

Bibliographie

- https://www.swebench.com/ - https://github.com/princeton-nlp/SWE-bench - https://huggingface.co/papers/2310.06770 - https://github.com/swe-bench - https://arxiv.org/abs/2310.06770 - https://www.reddit.com/r/MachineLearning/comments/176f89x/r_swebench_can_language_models_resolve_realworld/ - https://github.com/princeton-nlp/SWE-bench/blob/main/CHANGELOG.md - https://arxiv.org/html/2403.08604v1 - https://www.semanticscholar.org/paper/94a5f96308729e31c1ffbc0f0618db87795092fe - https://github.com/codefuse-ai/Awesome-Code-LLM
Was bedeutet das?