Beyond Pass Rate: A Multilingual, Execution-Grounded Evaluation of Open Code LLMs
Diese Arbeit präsentiert eine groß angelegte, mehrsprachige, ausführungsbasierte Evaluierung von neun offenen Code-LLMs anhand von über 2.700 LeetCode-Problemen, die aufzeigt, dass aktuelle Modelle signifikant hinter der menschlichen Leistung zurückbleiben und dass ihre Rankings sowie Fehlermodi über verschiedene Sprachen und Problem Schwierigkeitsgrade hinweg erheblich variieren, wodurch die Einschränkungen von Single-Metric-Leaderboards hervorgehoben werden.
Originalarbeit lizenziert unter CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Dies ist eine KI-generierte Erklärung des untenstehenden Papers. Sie wurde nicht von den Autoren verfasst oder gebilligt. Für technische Genauigkeit konsultieren Sie das Originalpaper. Vollständigen Haftungsausschluss lesen
Stellen Sie sich vor, Sie sind der Cheftrainer eines Coding-Teams und müssen einen neuen Assistenz-Programmierer einstellen. Die Standardmethode, um Kandidaten zu interviewen, besteht darin, ihnen ein einzelnes, kurzes Rätsel zu geben und zu sehen, ob sie es lösen. Wenn sie es richtig lösen, erhalten sie ein „Pass“. Wenn sie es falsch lösen, erhalten sie ein „Fail“.
Dieses Papier argumentiert, dass diese „Pass/Fail“-Methode so ist, als würde man einen Koch nur danach beurteilen, ob er ein Ei kochen kann. Das sagt einem sehr wenig darüber aus, ob er ein komplexes Menü zubereiten, mit scharfen Zutaten umgehen oder seine Küche sauber halten kann.
Hier ist, was die Forscher getan haben, einfach erklärt:
Das große Experiment: Ein massives Coding-Olympia
Anstatt eines einzelnen Rätsels organisierten die Forscher ein massives „Coding-Olympia“.
- Die Teilnehmer: Sie luden 9 verschiedene Open-Source-KI-Modelle (die „Assistenten“) ein, um gegeneinander anzutreten.
- Die Arena: Sie verwendeten 2.707 kostenlose Programmieraufgaben von LeetCode (einer beliebten Seite für Programmierübungen).
- Die Sprachen: Sie testeten die KIs nicht nur in einer Sprache (wie Englisch), sondern in 12 verschiedenen Programmiersprachen (wie Python, Java, C++, etc.).
- Das Ausmaß: Insgesamt führten sie über 325.000 Versuche durch. Das ist so, als würde jeder Teilnehmer jedes Rätsel in jeder Sprache versuchen.
Die Ergebnisse: Es ist kompliziert
Die Forscher fanden heraus, dass es keine einzelne „beste“ KI gibt. Wer gewinnt, hängt ganz davon ab, wonach man sucht.
1. Der „Generalist“ vs. der „Spezialist“
- Yi-Coder-9B-Chat war der konsistenteste „Durchschnitts“-Performer. Wenn man ihm eine zufällige Mischung aus Problemen stellte, löste er insgesamt die höchste Anzahl davon korrekt.
- Qwen2.5-Coder-14B-Instruct war der Spezialist für den „Schwierigkeitsgrad: Schwer“. Er gewann nicht die meisten einfachen Probleme, aber wenn die Rätsel wirklich schwierig wurden, war dies die KI, mit der man rechnen musste. Zudem schaffte es diese KI, die breiteste Vielfalt an verschiedenen Problemen zu lösen, auch wenn sie nicht jedes einzelne perfekt beherrschte.
- Gemma-2-27B-IT war der „Putzfimmel“. Obwohl sie nicht die meisten Probleme löste, war der von ihr geschriebene Code der sauberste und folgte am ehesten den Regeln.
2. Die menschliche Lücke
Selbst die beste KI der Studie löste im Durchschnitt nur etwa 23 % der Probleme korrekt. Im Vergleich dazu würde ein menschlicher Programmierer etwa 57 % dieser Aufgaben lösen. Das bedeutet, dass die KIs noch weit davon entfernt sind, zuverlässig genug zu sein, um alleine zu arbeiten; sie sind eher wie Junior-Praktikanten, die viel Aufsicht benötigen.
3. Die „Compile Error“-Mauer
Die Forscher untersuchten, warum die KIs scheiterten. Dabei fanden sie ein überraschendes Muster: 63 % der Fehler traten auf, noch bevor der Code überhaupt ausgeführt wurde.
Denken Sie an ein Auto, das nicht anspringt, weil der Motorblock einen Riss hat. Man kann nicht einmal testen, wie schnell das Auto fährt oder wie langsam, weil es gar nicht erst startet. Die meisten KIs scheiterten, weil sie Code mit grundlegenden Syntaxfehlern (Tippfehler, fehlende Klammern) schrieben, anstatt an der Logik zu scheitern. Sie scheiterten daran, zu „kompilieren“ (in ein funktionierendes Programm umgewandelt zu werden), lange bevor sie auf ihre Korrektheit getestet werden konnten.
4. Das „Clean Code“-Paradoxon
Hier liegt der Clou: Die KI, die den saubersten Code schrieb (Gemma), war nicht diejenige, die die meisten Probleme löste. Umgekehrt schrieb die KI, die die meisten Probleme löste (Qwen), Code, der „unordentlicher“ war und mehr Warnungen von einem Code-Bereinigungstool aufwies.
- Analogie: Stellen Sie sich zwei Schüler vor, die eine Prüfung schreiben. Schüler A schreibt einen sehr ordentlichen, perfekt formatierten Essay, beantwortet aber die Frage falsch. Schüler B schreibt einen unordentlichen, hingekritzelten Essay mit durchgestrichenen Wörtern, beantwortet aber die Frage richtig.
- Das Papier zeigt, dass „funktionale Erfolgsrate“ (die richtige Antwort finden) und „statische Qualität“ (sauberen Code schreiben) zwei verschiedene Dinge sind. Man kann nicht davon ausgehen, dass ein Modell, das sauberen Code schreibt, Ihr Problem lösen wird, und ein Modell, das Ihr Problem löst, muss nicht unbedingt unordentlichen Code schreiben.
5. Die Sprache spielt eine Rolle
Eine KI, die gut darin ist, in Python zu schreiben, kann in C++ schrecklich sein. Die Ranglisten änderten sich, je nachdem, welche Sprache die KI verwenden sollte. Dies beweist, dass man nicht einfach sagen kann: „Modell X ist das Beste“. Man muss sagen: „Modell X ist das Beste für Python, aber Modell Y ist besser für Java“.
Das Fazit
Die Forscher kommen zu dem Schluss, dass wir aufhören müssen, eine einzige „Punktzahl“ zu verwenden, um Programmier-KIs zu beurteilen. Genau wie man einen Arzt nicht nur nach seiner Fähigkeit beurteilt, eine Wunde zu nähen (wobei man die Fähigkeit ignoriert, eine Krankheit zu diagnostizieren), sollten wir auch Programmier-KIs nicht nur nach ihrer „Pass-Rate“ beurteilen.
Um diese Werkzeuge wirklich zu verstehen, müssen wir Folgendes betrachten:
- Welche Sprachen sie gut beherrschen.
- Wie sie mit schwierigen Problemen umgehen.
- Ob sie aufgrund von Tippfehlern oder schlechter Logik scheitern.
- Ob der von ihnen geschriebene Code sauber genug ist, um gepflegt zu werden.
Die Forscher haben eine riesige, detaillierte Datenbank dieser Ergebnisse erstellt, damit andere genau sehen können, wie und warum diese Modelle erfolgreich sind oder scheitern, anstatt nur eine einzige Zahl auf einer Bestenliste zu sehen.
Ertrinken Sie in Arbeiten in Ihrem Fachgebiet?
Erhalten Sie tägliche Digests der neuesten Arbeiten passend zu Ihren Forschungsbegriffen — mit technischen Zusammenfassungen, in Ihrer Sprache.