Große Sprachmodelle (LLMs) haben bemerkenswerte Fähigkeiten in der Codegenerierung gezeigt, mit über 90% Erfolgsquote beim Lösen von Python-Programmieraufgaben in Benchmarks wie HumanEval und MBPP. Diese hohe Genauigkeit führt zu der Frage: Können LLMs menschliche Programmierer ersetzen? Bisherige Benchmarks, die oft manuell erstellt, einfach oder auf einzeilige Codegenerierung beschränkt sind, können diese Frage aufgrund ihrer Diskrepanz zur realen Softwareentwicklung nicht beantworten.
Um diese Frage zu klären, wurde REPOCOD entwickelt, ein neuer Codegenerierungs-Benchmark mit 980 Aufgaben aus elf gängigen Open-Source-Projekten. Über 58% dieser Aufgaben erfordern Datei- oder sogar Repository-Level-Kontextinformationen. REPOCOD zeichnet sich durch die im Vergleich zu bestehenden Benchmarks längste durchschnittliche Lösungslänge (331,6 Tokens) und die höchste durchschnittliche zyklomatische Komplexität (9,00) aus. In den durchgeführten Evaluierungen mit zehn verschiedenen LLMs erreichte keines der Modelle eine Erfolgsquote von über 30% bei REPOCOD. Dies verdeutlicht die Notwendigkeit, leistungsfähigere LLMs zu entwickeln, die Entwickler bei der realen Softwareentwicklung effektiv unterstützen können.
Die Entwicklung von Software in der Praxis geht weit über das Lösen isolierter Programmieraufgaben hinaus. Sie erfordert das Verständnis komplexer Zusammenhänge innerhalb eines Projekts, die Berücksichtigung von Abhängigkeiten zwischen verschiedenen Dateien und Modulen sowie die Fähigkeit, Code zu generieren, der sich nahtlos in bestehende Strukturen integriert. Bisherige Benchmarks konzentrierten sich meist auf die Generierung von eigenständigen Code-Schnipseln, die diese Aspekte nicht berücksichtigen.
REPOCOD hingegen stellt LLMs vor realistischere Herausforderungen. Die Aufgaben erfordern die Generierung von komplexen, mehrzeiligen Funktionen, die auf Datei- und Repository-Ebene interagieren. Dies spiegelt die Komplexität der realen Softwareentwicklung wider und ermöglicht eine genauere Bewertung der Fähigkeiten von LLMs in diesem Bereich.
REPOCOD bietet nicht nur realistischere Aufgaben, sondern auch eine zuverlässigere Bewertungsmethode. Anstatt auf Ähnlichkeitsmetriken wie CodeBLEU zu setzen, verwendet REPOCOD von Entwicklern geschriebene Testfälle, um die Korrektheit des generierten Codes zu überprüfen. Dies stellt sicher, dass semantisch äquivalenter Code korrekt bewertet wird und syntaktisch ähnliche, aber fehlerhafte Lösungen als falsch erkannt werden.
Die wichtigsten Merkmale von REPOCOD sind:
- 980 Aufgaben aus 11 realen Projekten - Durchschnittliche Lösungslänge von 331,6 Tokens - Durchschnittlich 331,6 Testfälle pro Aufgabe - 26,22% der Aufgaben erfordern Repository-Level-KontextDie Evaluierung von zehn LLMs mit REPOCOD hat gezeigt, dass aktuelle Modelle noch weit davon entfernt sind, menschliche Programmierer zu ersetzen. Kein Modell erreichte eine Erfolgsquote von über 30%, und bei Aufgaben, die Repository-Level-Kontext erfordern, lag die Erfolgsquote sogar bei maximal 20%.
Diese Ergebnisse unterstreichen die Notwendigkeit weiterer Forschung und Entwicklung im Bereich der Codegenerierung mit LLMs. Zukünftige Modelle müssen in der Lage sein, komplexe Kontextinformationen zu verarbeiten und robusteren, fehlerfreien Code zu generieren, um Entwickler in der Praxis effektiv zu unterstützen. Mindverse, als deutscher Anbieter von KI-gestützten Content-Tools, sieht in diesen Ergebnissen eine Bestätigung für die Bedeutung der Weiterentwicklung von LLMs. Die Entwicklung maßgeschneiderter Lösungen wie Chatbots, Voicebots, KI-Suchmaschinen und Wissenssysteme erfordert leistungsfähige LLMs, die den Anforderungen der realen Welt gerecht werden.
Bibliographie: Liang, S., Hu, Y., Jiang, N., & Tan, L. (2024). Can Language Models Replace Programmers? RepoCod Says ‘Not Yet’. arXiv preprint arXiv:2410.21647v1. codefuse-ai/Awesome-Code-LLM: A curated list of awesome code large language models resources. GitHub repository. r/machinelearningnews: Can language models replace programmers? Reddit discussion. Ahmed, S. Keep Calm and Code On: Why LLMs Can’t Replace Programmers completely Yet. Medium article. Will ChatGPT replace programmers? Quora discussion. Dewalt, K. AI Won’t Replace Programmers. Medium article. Zhong, L., & Wang, Z. (2023). Can ChatGPT replace StackOverflow? A Study on Robustness and Reliability of Large Language Model Code Generation. arXiv preprint arXiv:2308.10335. Will AI replace programmers or developers? Quora discussion. Burak, A. Will AI Replace Programmers: Not Quite, Yet a New Evolution Awaits. Relevant Software blog post.