LLMs schreiben fast perfekten Code – doch ihre Fehler sind zweimal so schlampig wie bei Menschen
If coding is solved, what now?: Measuring the sloppiness of code
LLMs generieren fast fehlerfreien Code, aber sie neigen zu unnötigen Abstraktionen, Duplikaten und aufgeblähten Funktionen. Der Autor, Physiker bei Earendil, untersucht, wie man diese „Sloppiness“ messen kann. Er zeigt, dass LLM-Code im Schnitt doppelt so verbose und erodiert ist wie menschlicher Code. KI als Richter versagt oft, menschliche Intuition bleibt unverzichtbar. In iterativen Benchmarks erreichen selbst Top-Modelle eine 0%-Erfolgsquote, was vor blindem LOC-Wachstum warnt.
Ich habe schlechte Nachrichten für Sie: Agenten können mit dem Slop auch nicht wirklich umgehen.
- dang
Alle: Bitte postet keine generischen reflexhaften Reaktionen auf Titel. Das wird unter anderem durch diese Richtlinie abgedeckt: https://news.ycombinator.com/newsguidelines.html:
"Bitte sucht nicht das Provokanteste in einem Artikel oder Beitrag heraus, um sich im Thread darüber zu beschweren. Findet stattdessen etwas Interessantes, worauf ihr antworten könnt."
Ich habe das Provokante aus dem obigen Titel entfernt, aber bitte denkt daran, dass wir in HN-Threads reflektierende Kommentare wollen, keine reflexhaften.
https://hn.algolia.com/?dateRange=all&page=0&prefix=true&sor....
- dherman
Ich freue mich wirklich, dass Leute quantitative Ansätze untersuchen, um Agenten Feedback zur Codequalität zu geben. Dieser Beitrag sieht nach einem guten Anfang aus!
Mein Hauptfeedback an die Autoren wäre: Die wichtigsten Probleme bei Schlamperei sind globale Eigenschaften, nicht lokale. Meiner Erfahrung nach hat ein Agent, wie ein Mensch, eine begrenzte Aufmerksamkeitskapazität, aber wenn er auf lokale Schlamperei stößt, die ihm im Weg steht, kann er sie bei Bedarf beheben. Die technischen Schulden, die wirklich zählen, sind meist globale Probleme, die nicht so leicht zu beheben sind: Sie erfordern globale Analyse und globales Refactoring.
Ich kenne die Antwort nicht, aber ich denke, wir werden Wege brauchen, um architektonische Eigenschaften zu messen, wie Trennung von Belangen, klare architektonische Schichtung, wohldefinierte Schnittstellen usw.
- toddwprice
Programmieren ist gelöst, vielleicht, mit unbegrenztem Token-Verbrauch bei einem Frontier-Modell. Es bleibt abzuwarten, ob das für immer unerschwinglich teuer sein wird. In meiner Firma haben wir Token verbraucht, solange es gut lief. Aber als wir auf Anthropics Enterprise-Plan umsteigen mussten und begannen, pro Token zu zahlen, ging es richtig los. Jetzt kehren wir zu vernünftigen Kostenniveaus zurück und stellen fest – rate mal – dass menschliche Arbeitskraft vielleicht doch kosteneffizienter ist. KI ist natürlich ein immenses Werkzeug, das man nutzen kann, aber immer noch zu teuer, um Schleifen zu erstellen und sie laufen zu lassen. Das wird sich natürlich mit der Zeit ändern, aber anzunehmen, es sei ein gelöstes Problem, ist Unsinn. Vielleicht, wenn wir die kalte Fusion lösen, ja. Bis dahin gewinnt die Evolution den Krieg gegen die Entropie.
- justinmarsan
Als ich zu denselben Schlussfolgerungen wie der Autor kam, habe ich meinen ersten Agenten für Architektur-Reviews erstellt, und so habe ich die Metriken hinter guten Praktiken kennengelernt, die ich jahrelang befolgt hatte. LCOM, zyklomatische Komplexität, diese Art von Zeug...
Es ist so einfach, viel Code zu liefern; mehr Aufwand sollte darauf verwendet werden, sicherzustellen, dass der Code korrekt ist, mit selbstverbessernden Feedbackschleifen, die Entwickler einbeziehen, und speziellen Tools...
Aber andererseits ging es vor einer Weile nur um Prompt-Engineering, und jetzt kann man seine Idee vage ausdrücken und bekommt ein einigermaßen funktionierendes Ergebnis, also wird sich das wahrscheinlich auch schnell weiterentwickeln...
- FiberBundle
Weiß irgendjemand tatsächlich, ob es eine Grenze für die Komplexität gibt, mit der LLMs in einer Codebasis umgehen können? Es ist sehr offensichtlich, dass sie keinen Code schreiben, der für Menschen verständlich ist (und es wird immer schlimmer, je mehr RL zum Trainieren dieser Modelle verwendet wird), aber wenn es keinen Punkt gibt, an dem LLMs auch aufgrund der von ihnen eingeführten Komplexität Schwierigkeiten haben, dann bin ich mir nicht sicher, ob es für einen großen Teil nicht sicherheitskritischer Software überhaupt noch eine Rolle spielt. Ich hoffe wirklich, dass es einen gibt, denn sie zu steuern ist, wie ich finde, eine der letzten Kompetenzen, durch die ich noch Wert schaffen kann, aber gibt es tatsächlich Beweise dafür, dass diese Modelle mit schlecht gepflegtem Code mehr Schwierigkeiten haben?
- drsopp
Goodharts Gesetz wird hier ohne Diskussion angeführt. Sind wir sicher, dass die Optimierung auf minimale LOC, die alle notwendigen Tests bestehen, schlampigen Code erzeugt? Und: Was ist überhaupt schlampiger Code? Wenn wir ihn definieren könnten, könnten wir die Definition dann in den Kontext werfen und dem LLM sagen, es solle ihn vermeiden?
- conqrr
Programmieren ist nicht nur das Programm, das im Speicher läuft, es ist auch der Prozess, das mentale Modell des Verständnisses im Team zu verteilen.
Wenn Menschen zunehmend vom Programmieren ferngehalten werden, wer hält dann das mentale Modell?
Wenn die KI das mentale Modell hält, werden menschliche Prompts per Definition über einen verlustbehafteten Kanal laufen. Das gilt auch ohne KI. Softwarequalität hängt direkt von guten Entwicklern ab, die aus Business-/PM-Sprache technische Entscheidungen übersetzen.
Ist Programmieren also jetzt gelöst? Es war schon vor Jahrzehnten gelöst.
- glouwbug
Ein gutes Maß ist Kommunikation. Wenn es ein gemeinsames Verständnis gibt, spielt der Ursprung nicht unbedingt eine Rolle.