- Viele Entwickler nutzen LLMs zum Schreiben von Code, erleben dabei jedoch Halluzinationen und verlieren das Vertrauen
- Dass ein LLM nicht existierende Methoden oder Bibliotheken erfindet, kommt häufig vor
- Halluzinationen in Code sind jedoch die am wenigsten gefährliche Art von Halluzinationen
- Am gefährlichsten ist es, wenn ein LLM Fehler erzeugt, die vom Compiler oder Interpreter nicht sofort erkannt werden
- Halluzinierte Methoden lösen beim Ausführen sofort Fehler aus und lassen sich daher leicht entdecken
- Gibt man die Fehlermeldung erneut in das LLM ein, kann es sie oft automatisch korrigieren
- Anders als bei gewöhnlichen Halluzinationen in Texten lässt sich Code durch Ausführung auf Fakten prüfen
- LLMs mit automatischer Fehlerkorrektur
- Tools wie ChatGPT Code Interpreter, Claude Code usw. führen den vom LLM geschriebenen Code aus, erkennen Fehler und korrigieren sie selbst
- Vom LLM geschriebenen Code zu bewerten, ohne ihn überhaupt auszuführen, ist ineffizient
- Einige Entwickler neigen dazu, die Technologie insgesamt abzulehnen, nur weil ein LLM halluzinierte Methoden erzeugt hat
- Um sie effektiv zu nutzen, sind Lernen und Experimentieren jedoch unverzichtbar
- Der Autor beschäftigt sich seit mehr als zwei Jahren mit KI-gestützter Code-Erstellung und lernt immer noch neue Techniken
- Manuelles Testen von Code ist unverzichtbar
- Nur weil Code korrekt läuft, ist nicht garantiert, dass er wie erwartet funktioniert
- Weder Code-Reviews noch automatisierte Tests können die Korrektheit von Code vollständig verifizieren
- Das eigene Ausführen und Überprüfen ist ein notwendiger Schritt
- Von LLMs erzeugter Code ist oft sehr gut lesbar, was leicht zu falscher Sicherheit führen kann
- Dasselbe gilt für von Menschen geschriebenen Code: Vertrauen sollte man ihm erst, nachdem man ihn selbst ausgeführt hat
- Wie sich Halluzinationen verringern lassen
- Andere Modelle verwenden: Ein Modell wählen, dessen Trainingsdaten für eine bestimmte Plattform umfangreicher sind
- Beispiele: Claude 3.7 Sonnet (thinking mode aktiviert), OpenAI o3-mini-high, GPT-4o (einschließlich Python Code Interpreter)
- Kontext nutzen: Auch wenn das LLM eine bestimmte Bibliothek nicht kennt, kann es mit Beispielcode Muster lernen
- Auf stabile Technologien setzen: Wählt man ältere Bibliotheken, kann ein LLM oft besser damit umgehen
- Die Bedeutung von Code-Review
- Der Autor widerspricht der Aussage: "Wenn ich den gesamten von einem LLM geschriebenen Code reviewen muss, ist es schneller, ihn selbst zu schreiben"
- Diese Aussage kann auch mangelnde Fähigkeit zum Code-Review erkennen lassen
- Das Review von von LLMs erzeugtem Code kann eine gute Gelegenheit sein, die eigenen Fähigkeiten zu verbessern
- Bonus: Feedback von Claude 3.7 Sonnet
- Der Autor bat Claude 3.7 Sonnet im "extended thinking mode", einen Blog-Entwurf zu prüfen
- Er bat darum zu bewerten, ob die Logik des Artikels überzeugend ist, was verbessert werden könnte und welche Inhalte fehlen
- Claude half dabei, den Ton des Entwurfs etwas milder zu machen
- Link zum Claude-Feedback-Gespräch
1 Kommentare
Hacker-News-Kommentar
Der Verfasser stimmte dem vorherigen Beitrag zu, diesem jedoch nicht
Selbst wenn von LLMs erzeugter Code gut funktioniert, ist es schwierig, Bugs oder logische Fehler zu finden, wenn man ihn nicht selbst geschrieben hat
Von LLMs erzeugter Code ist sauber, aber man verbringt mehr Zeit mit QA und Aufräumarbeiten
The Primeagen und Casey Muratori prüfen die Ausgabe aktueller LLM-Codegeneratoren
Eine weitere Fehlerkategorie, die Simon übersehen hat, sind Halluzinationen, bei denen das Modell Funktionalität vergisst
Halluzinierte Methoden sind ein kleines Hindernis, und wenn Leute sich darüber beschweren, wird angenommen, dass sie nur minimal Zeit investiert haben, um zu lernen, wie man das System effektiv nutzt
Halluzinationen selbst sind nicht das größte Risiko, das LLMs darstellen
Nur im begrenzten Kontext von Compilerfehlern ist es weniger gefährlich
Um mit LLMs gute Ergebnisse zu erzielen, ist viel Aufwand nötig
Erfahrung beim Schreiben von Code, um in einem medizinischen Zentrum die „primäre“ Klinik eines Patienten zu finden