Hilfreich um jeden Preis - ChatGPT und das Ende des Softwareentwicklers
Alle Welt hat den Kopf verloren durch den Launch von ChatGPT. Das verstehe ich, die Mächtigkeit dieses neuen LLM ist beeindruckend und hat besonders für Fachfremde etwas Magisches weil Menschliches.
Unausweichlich gibt es eine Schwemme von Posts und Artikeln zu ChatGPT. Zum größten Teil - wie bei AI-Launches üblich - uneingeschränktes Beklatschen des "neuen Zeitalters" oder düstere Warnungen vor dem Ende einer oder mehrerer Berufsgruppen.
Bei ChatGPT sind diesmal nicht die Stock-Fotographen dran (die hat Dall-E ja schon erledigt), sondern Softwareentwickler.
Wer braucht die schon noch, wenn ChatGPT genauso gewandt Programme schreibt wie Gedichte?
Die Annahme, aktuelle LLMs würden eine Gefahr für die Zukunft von Softwareentwicklern darstellen, klingt für mich derart haltlos, dass ich leider den vielen ChatGPT-Artikeln noch einen hinzufügen muss.
Zuerst mal: Softwareentwicklung besteht erstaunlicherweise nicht darin, Codeschnipsel auszuwerfen, die einzelne übersichtliche Aufgaben erledigen ("Sortier mir eine Liste alphabetisch"), sondern z.B. in der Kombination vieler solcher Codeteile in sinnvolle Module und Service-Schnittstellen. Mir ist niemand bekannt, der überhaupt versucht, einer Konversations-AI diese Aufgabe vorzulegen.
Bleibt also noch die Frage, inwieweit ChatGPT oder seine Vorgänger (auch GPT-3 kann schon Code erzeugen) und Nachfolger (Sparrow wird das sicher auch können) einen Softwareentwickler wenigstens in seiner täglichen Arbeit entlasten und beschleunigen können.
Auf den ersten Blick und für simple Beispiele scheint das tatsächlich in gewissen Maße zu funktionieren:
Hier hilft auch die Tatsache, dass man mit ChatGPT fortlaufende Konversationen führen kann, bei der Verfeinerung der Lösung:
Rufen wir uns an dieser Stelle in Erinnerung, dass ChatGPT die Essenz aus unzähligen Trainingselementen (darunter auch viele solcher Softwareschnipsel) bildet und für jeden Input die wahrscheinlichste "Fortführung" auf Basis dieser Trainingselemente ausgibt. Zu oben genannter Javascript-Frage funktioniert das auch sehr gut.
Aber ChatGPT ist eben nur darauf trainiert, plausiblen und wahrscheinlichen Output zu generieren, nicht "wahren". In seiner Mission, dem Nutzer zu helfen, kann es sich nicht mit solchen Banalitäten wie Korrektheit aufhalten. Es zählt allein die Wahrscheinlichkeit der einzelnen Tokens.
Wenn wir uns ein bisschen von den Problemen entfernen, für die vermutlich große Mengen Beispiele im Training enthalten waren, wird die Luft dünn und die Antwort auch:
Diese Antwort ist aus zwei Gründen falsch:
- ARRAY_TO_STRING akzeptiert keine integer-Arrays, die vorgeschlagene Lösung ist also kein gültiges BigQuery SQL.
- Selbst wenn sie funktionierte, würde sie kein Array erzeugen, wie gefordert, sondern einen einzelnen String-Wert (indem die Array-Elemente mit einem Delimiter verbunden werden).
Offensichtlich wurde die Frage korrekt interpretiert, aber in ihrem Eifer zu helfen, hat die AI lieber Lügen erzeugt, als nichts Plausibles zu antworten.
Versuchen wir, die Frage noch etwas zu präzisieren, weil das mit dem Javascript-Problem so gut funktioniert hat:
Ich werde die Leser nicht einer Erklärung langweilen, was dieses Code-Schnipsel wirklich tut (im Gegensatz zum obigen ist es valides Big Query SQL). Auf jeden Fall tut es nicht das Richtige, sondern etwas ziemlich Nutzloses, das aber viele Ressourcen verbraucht.
ChatGPT besteht im Laufe der Konversation fest darauf, falsche Lösungen zu produzieren, um hilfreich zu sein. Ein bisschen erinnert mich das an Leute, die man nach dem Weg fragt und die sich nicht trauen, ihre Ortsunkenntnis einzugestehen. Stattdessen schicken sie einen in irgendeine Richtung. Wäre ja peinlich, wenn sie zugeben müssten, dass sie sich nicht auskennen.
Hier also mein Fazit, wie so oft ein anderes als das vieler anderer "Experten": Nein, ChatGPT wird nicht Softwareentwickler oder auch nur Junior Programmer ersetzen. Eventuell erspart es einem Entry-Level-Entwickler den einen oder anderen Ausflug zu Stackoverflow. Aber selbst dann muss man sich fragen, ob das Ausprobieren und Aussortieren solcher falschen Lösungen im Durchschnitt nicht mehr Zeit kostet als die richtigen Antworten einsparen.