Die rasante Entwicklung von großen Sprachmodellen (Large Language Models, LLMs) hat zahlreiche Bereiche revolutioniert, insbesondere das Software-Engineering. Während viele Benchmarks bisher auf Python fokussiert waren, adressiert SWE-bench Multilingual die dringend benötigte Erweiterung hin zu einem mehrsprachigen Vergleichsmaßstab. Dieses neue Benchmark-Tool ermöglicht eine detaillierte Bewertung der Fähigkeiten von LLMs bei der Bearbeitung von Software-Engineering-Aufgaben über eine breite Palette von Programmiersprachen und unterschiedlichen Anwendungsdomänen hinweg. SWE-bench Multilingual ist Teil der SWE-bench-Familie, deren ursprüngliche Version 500 Softwareentwicklungsaufgaben aus Python-Projekten umfasst. Die starke Fokussierung auf Python führte jedoch zu einem gewissen Überanpassen an diese Programmiersprache und schränkte die Aussagekraft bezüglich der Vielseitigkeit der Modelle ein.
Vor diesem Hintergrund wurde SWE-bench Multilingual entwickelt, um LLMs in echten praktischen Szenarien umfassender bewerten zu können und die Grenzen ihrer Fähigkeiten in verschiedenen Sprachen wie C, C++, Go, Java, JavaScript, TypeScript, PHP, Ruby und Rust offenzulegen. Die Grundlage von SWE-bench Multilingual bilden 300 handverlesene Aufgaben, die aus realen GitHub-Pull-Requests von 42 populären Open-Source-Repositories stammen. Die Auswahl erfolgte basierend auf dem Stack Overflow Developer Survey, der die meistgenutzten und gefragtesten Programmiersprachen identifizierte. Die Repositories decken dabei verschiedene Softwarebereiche ab – von Webframeworks und Datenverarbeitung bis hin zu Systemwerkzeugen und Bibliotheken. Diese Vielfalt ermöglicht es, Modelle auf unterschiedlichste Probleme und Codebasen zu testen, was die Aussagekraft und Praxisnähe der Evaluation erhöht.
Die Evaluierung erfolgt durch eine Agenten-Architektur namens SWE-agent, die mit LLMs wie Claude 3.7 Sonnet interagiert. Dabei bekommt der Agent die Beschreibung eines Softwareproblems zusammen mit einem Repository-Snapshot vor der Behebung und soll eigenständig die notwendigen Codeänderungen erzeugen, damit das Problem gelöst wird. Die korrekte Lösung wird daran gemessen, ob die Lösung die zugehörigen Unit-Tests besteht: Sowohl spezielle Tests zum Fix (Fail-to-Pass) als auch allgemeine Regressionstests (Pass-to-Pass) müssen erfolgreich sein, um sicherzustellen, dass das Problem vollständig behoben und keine bestehende Funktionalität beeinträchtigt wurde. Die Ergebnisse der ersten Evaluation sind vielsagend.
Claude 3.7 Sonnet erreicht eine durchschnittliche Erfolgsrate von 43 Prozent bei der Lösung der Multilingual-Aufgaben, während in der Python-zentrierten SWE-bench Verified Benchmark eine Erfolgsrate von 63 Prozent erzielt wird. Diese Diskrepanz zeigt, dass aktuelle LLMs insbesondere außerhalb von Python noch deutliches Verbesserungspotential aufweisen. Interessanterweise variiert die Erfolgsrate stark zwischen den verschiedenen Programmiersprachen. Rust schneidet mit der höchsten Fehlerrate ab, während C und C++ vergleichsweise schwieriger zu bewältigen sind.
Diese Unterschiede lassen sich nicht allein durch die Komplexität der Aufgaben oder die Anzahl der Codeänderungen erklären, sondern deuten auch auf unterschiedliche Modellkompetenzen und die Herausforderungen der jeweiligen Sprache hin. Die Erstellung des SWE-bench Multilingual Datasets war ein aufwändiger Prozess, der die sorgfältige Auswahl geeigneter Repositories und Tasks erforderte. Von den zunächst ausgewählten Top-100-Repositories pro Sprache aus GitHub-Rankings wurden solche entfernt, die nicht zuverlässig lokal gebaut oder getestet werden konnten. Die verbleibenden Repositories mussten zudem eine brauchbare Testabdeckung haben, um die Validität der Evaluierung sicherzustellen. Auch die Aufgaben selbst wurden auf Klarheit der Problemstellung, Testqualität und Unabhängigkeit der Pull Requests verifiziert.
Jede Aufgabe durchlief eine manuelle Validierung, die das Ausführen von Build- und Testprozessen umfasste, um die Nachvollziehbarkeit und Reproduzierbarkeit zu gewährleisten. Ein wesentlicher Unterschied zur ursprünglichen SWE-bench-Variante besteht in der Umgebungskonfiguration. Während bei SWE-bench Verified noch sogenannte Environment Images für häufig geteilte Abhängigkeiten genutzt wurden, verzichtet Multilingual aufgrund der breiten Repository- und Sprachstreuung darauf. Stattdessen werden direkt Basis- und Instance-Images verwendet, damit die Infrastruktur überschaubar bleibt und die manuelle Kurationsarbeit im Rahmen gehalten werden kann. Die Datenanalyse offenbart weitere interessante Aspekte.
So besteht beispielsweise keine klare Korrelation zwischen der Anzahl der modifizierten Codezeilen und der Lösungsrate innerhalb einer Sprache. Allerdings zeigen sich Aufgaben mit geringerem Änderungsumfang tendenziell leichter lösbar, was den intuitiven Zusammenhang von Problemdimension und Performance bestätigt. Zudem liegen die Mehrzahl der Pull Requests im Bereich von wenigen geänderten Zeilen, was auf die Benchmarkstrategie zurückzuführen ist, klar definierte und leicht validierbare Probleme mit eindeutigen Unit-Tests auszuwählen. Dies bedeutet, dass größere und komplexere Softwareentwicklungsaufgaben in der Praxis weiterhin deutlich herausfordernder für KI-Modelle sein dürften. Eine weitere Erkenntnis liefert die Betrachtung der Agent-Trajektorien.
Die Untersuchung der vom SWE-agent beim Problemlösen getätigten Schritte zeigt keine signifikanten Unterschiede zwischen erfolgreichen und gescheiterten Versuchen. Dies legt nahe, dass die Limitierung der Ergebnisse weniger an der Agent-Strategie oder -Architektur liegt, sondern stärker an den Fähigkeiten des dahinterstehenden LLM-Modells selbst. Das unterstreicht die Notwendigkeit einer weiteren Verbesserung der zugrundeliegenden KI-Technologie, um komplexere und mehrsprachige Aufgaben präzise zu bewältigen. Neben der technischen Analyse weist SWE-bench Multilingual auch darauf hin, wo zukünftige Entwicklungen ansetzen könnten. So sollten Agenten künftig in der Lage sein, externe Links zu Beispiel-Reproduktionen und Online-Tools zu verstehen und nachvollziehen zu können.
Ebenso ist die Unterstützung mehrerer Programmiersprachen und passender Toolchains essenziell, um eine breitere Anwendbarkeit und realistischere Evaluation sicherzustellen. Aktuelle Systeme sind oft noch stark auf Python spezialisiert, wodurch der Übergang zu einer echten Mehrsprachigkeit erschwert wird. Der Zugang zum SWE-bench Multilingual Dataset ist öffentlich über HuggingFace verfügbar, einschließlich des vollständigen Evaluationscodes, der in das SWE-bench Repository integriert wurde. Dies ermöglicht Forschern und Entwicklern, eigene Modelle und Agenten schnell und unkompliziert zu testen und den Fortschritt im Bereich der KI-gestützten Softwareentwicklung zu verfolgen. Das Benchmark ist also nicht nur messendes Werkzeug, sondern ein aktiver Treiber für zukünftige Innovationen und Vergleichsstudien.
Insgesamt stellt SWE-bench Multilingual einen bedeutenden Fortschritt bei der Bewertung von KI-Modellen im Software-Engineering dar. Es erweitert die traditionelle Testumgebung von Python auf ein breites Spektrum relevanter Programmiersprachen, begleitet von realistischen und validierten Aufgaben aus echten Projekten. Die Ergebnisse vermitteln wichtige Einblicke in die aktuelle Leistungsfähigkeit von LLMs und zeigen konkret auf, wo Verbesserungen noch notwendig sind. Gleichzeitig bietet der Benchmark auch eine umfassende Grundlage für die communitybasierte Weiterentwicklung, um KI-Systeme mit echten Mehrsprachigkeits- und Domänenkompetenzen zu fördern. Die Zukunft der KI im Software-Engineering wird maßgeblich davon abhängen, wie gut Modelle verschiedene Programmiersprachen und komplexe Problemstellungen meistern können.
SWE-bench Multilingual stellt dabei eine essenzielle Ressource dar, die sowohl in der Forschung als auch der industriellen Praxis wegweisend sein kann. Durch die kontinuierliche Erweiterung und Pflege solcher Benchmarks wird eine objektive, transparente und praxisnahe Beurteilung von KI-gestützten Programmierwerkzeugen ermöglicht. Nicht zuletzt ist SWE-bench Multilingual auch ein starkes Signal für die Bedeutung von Offenheit und Zusammenarbeit in der KI-Community. Die Verfügbarkeit der Daten, die Integration in etablierte Frameworks sowie die Einbindung in Open-Source-Ökosysteme fördern einen regen Austausch und beschleunigen den Fortschritt. Somit trägt SWE-bench Multilingual nicht nur zur besseren Technologieentwicklung bei, sondern unterstützt auch die gemeinsame Gestaltung einer Zukunft, in der KI und Mensch produktiv und effektiv zusammenarbeiten.
Zusammenfassend zeigt SWE-bench Multilingual eindrucksvoll, dass die Leistung moderner LLMs in Softwareentwicklungsaufgaben stark von der Programmiersprache abhängig ist. Während Python nach wie vor am stärksten unterstützt wird, sind gerade Sprachen wie Rust und PHP auf dem Vormarsch, während traditionelle Sprachen wie C und C++ noch Herausforderungen darstellen. Dieses mehrsprachige Benchmark fördert damit ein realistischeres, vielschichtigeres Verständnis der KI-Kompetenzen und unterstützt die Weiterentwicklung von Agenten, die für den breiten Einsatz in der Softwareentwicklung gerüstet sind.