ChatGPT und KI in der Softwareentwicklung

...die nächste digitale Revolution? So unterstützen Dich die KI-Helferlein im Software Development

Jenny Tiesler
Blick über die Schulter einer Frau auf einen Bildschirm, auf dem ChatGPT läuft

Der Hype, den die Chatbot-KI von OpenAI Ende November 2022 auslöste, halte durchs gesamte Internet. Unzählige Social-Media-Beiträge zeigen, was die schwache KI alles kann: vom Algorithmus bis zum Sonett scheint so ungefähr alles möglich zu sein. Was ist da los? Schließlich ist künstliche Intelligenz schon seit einigen Jahren ein fester Bestandteil unseres Alltags. Die schlauen Systeme machen unser tägliches Leben einfacher – im Auto als Fahrassistenz, im Wohnzimmer durch Alexa und Co. oder auf dem Handy. Aber sie können noch mehr: Das Sprachmodell ChatGPT schreibt überzeugend gute Texte, von der Produktbeschreibung bis zum Bewerbungsschreiben. Und jetzt können ChatGPT und GitHubs Copilot Dir auch beim Programmieren helfen. ChatGPT schreibt Deinen Java-Code in Sekundenschnelle in Python um, es generiert JSX-Code aus einer reinen Beschreibung des Layouts und ist Dein persönlicher Stackoverflow, der auf eigentlich jede Frage eine ausschweifende Antwort parat hat.

Läuten Sprach-KIs für die Softwareentwicklung die nächste digitale Revolution ein? Können diese Modelle die Programmierarbeit nicht nur vereinfachen, sondern sogar übernehmen? Werden Devs bald überflüssig? Wir haben uns den Hype rund um ChatGPT genauer angeschaut und geben Dir Antworten auf diese Fragen.

Was ist ChatGPT?

Ende November 2022 stellte das US-amerikanische Unternehmen OpenAI, zu dessen Geldgebern u.a. Elon Musk und Microsoft gehören, seine Software ChatGPT (OpenAI's Generative Pre-trained Transformer) vor. Ein Sprachmodell, basierend auf dem KI-Algorithmus GPT-3.5, das die Tech-Welt verblüfft und den ein oder anderen "Normalo" sprachlos zurücklässt. ChatGPT ist ein prädikatives Modell für natürliche Sprachverarbeitung. D.h. es trifft sprachliche Vorhersagen auf Basis einer riesigen Menge an Texten, mit denen die Chatbot-KI trainiert wurde.

Das Interface von ChatGPT mutet wie das einer Suchmaschine an, aber die KI kann wesentlich mehr als eine Liste mit Links auszuspucken. Das Besondere an der Software: Die User:innen können mit dem künstlichen Agenten, dem Chatbot, ein Gespräch führen. Anders als bei Suchmaschinen geht es nicht nur um die eine Antwort auf eine bestimmte Frage. Das Modell liefert "Fakten", "Definitionen" und dient als Schreibassistent – ob Geburtstagskarte oder Anschreiben, die Ergebnisse sind je nachdem, wie hoch Dein Anspruch ist, auf jeden Fall nutzbar.

Das neuronale Netzwerkmodell wurde speziell auf Dialoge optimiert und ist eine Weiterentwicklung des GPT3, auf dem auch DALL-E trainiert wurde. DALL-E ist ein Programm, dass aus Text-Input Pixel-Output macht, also ein KI-System, das wörtliche Beschreibungen in fotorealistische Bilder umsetzt. Die Daten dieses Vorgängermodells flossen in den ChatGPT ein und geben dem Benutzenden das Gefühl, einen echten Dialog zu führen. Allein der Eindruck, ein Gespräch führen zu können suggeriert menschliche Fähigkeiten und trägt wahrscheinlich einen guten Teil zum Hype bei.

Übersicht über die Nutzung von KI-Tools von Softwareentwickler:innen.

Quelle: github.blog

Eine GitHub-Umfrage zeigt: KI ist bei US-amerikanischen Devs längst fester Bestandteil der Toolbox. 92 Prozent der Entwickler:innen nutzen künstliche Intelligenz bei ihrer Arbeit.

Was steckt hinter dem Sprachmodell ChatGPT?

Mit den vorangegangenen GPT-Modellen hat OpenAI eine riesige Datenmenge gesammelt, die nun genutzt wurde, um ChatGPT zu trainieren. Dabei setzten die KI-Entwickler:innen auf eine spezielle Methode des maschinellen Lernens, das Reinforcment Learning. Das KI-Chatbot-System wird mit menschlichem Feedback trainiert und lernt, die "besseren" Antworten in bestimmten Kontexten zu unterscheiden und auszugeben. Die Antworten wirken dadurch wie ein "echtes" Gespräch. Was das Sprachmodell von OpenAI so leistungsfähig macht, ist genau dieses Verhalten. Es lernt sehr schnell und es passt sich schnell an. In den nächsten Monaten wird es durch die vielen freiwilligen Tester:innen unter uns wahrscheinlich noch besser. Denn bei jeder neuen Unterhaltung, die ChatGPT führt, lernt es mehr Kontext und was eine angemessene Reaktion ist.

Im Gegensatz zu Facebooks Blenderbot und Googles LaMDA, die auch auf Suchmaschinen zugreifen, beschränkt sich ChatGPT auf einen begrenzten Trainingskorpus. Wobei "beschränkt" relativ ist. Die Datenmenge ist trotzdem riesig, rund 45 Terrabyte, aber eben zeitlich begrenzt bis zum September 2021.

Bühnen frei für das Sequel: ChatGPT-4

Für OpenAI war GPT-3.5 ein wichtiger Testlauf, der Schwachstellen und Bugs zum Vorschein gebracht hat. Bei GPT-4, das im März 2023 gelauncht wurde, sollen die nun behoben sein. Insgesamt sei der Nachfolger schneller, kreativer und zuverlässiger, so OpenAI.

Was ist neu bei GPT-4?

Im Vergleich zu seinem Vorgänger gibt es drei deutliche Verbesserungen.

1. Visuelle Eingabe

Seit dem 14. März 2023 kannst Du der KI auch Bilder als Input geben. Das Verblüffende: GPT-4 erkennt, was zu sehen ist und ordnet die visuellen Inhalte ein. Es liefert Dir zum Foto Deines Kühlschrankinhalts Rezeptvorschläge oder den passenden HTML und CSS Code zu einem schlechten, von Hand gescribbelten Layout. Auch Diagramme, PDF und Videos soll die KI verarbeiten können.

Um Missbrauch zu verhindern maskiert Open AI die Gesichert von Personen. Auch Microsoft und Google blocken die Gesichtererkennung ihrer KI-basierten Systeme Bard und Bing Chat.

2. Längerer Kontext

War die Textmenge bei ChatGPT auf 3.000 Zeichen begrenzt, kannst Du bei GPT-4 bis zu 25.000 Zeichen eingeben und der KI entsprechend mehr Kontext für Deine Problemstellung geben.

3. Kreativität

Auch was kreative Inhalte angeht soll GPT-4 um Längen besser sein als sein Vorgänger und intelligentere Songtext, Gedichte und Drehbücher schreiben.

Innerhalb von 60 Sekunden hat GPT-4 den funktionierenden Code für ein Mini-Game geschrieben, wie Videos im Netz zeigen. Außerdem ist besteht GPT-4 Aufnahmetests z.B. für ein Jurastudium an der Universität in Stanford.

Wer kann den "neuen ChatGPT" nutzen?

Alle, die ChatGPT-Plus haben, können das Sequel seit März 2023 nutzen. Aber auch ohne Abo-Modell kannst Du GPT-4 über Microsoft. Das Unternehmen setzt bei Windows 11 bei Bing auf die KI-gestützte Suche. Wenn Du Großes vorhast und die GPT-4-API einbauen möchtest, kannst Du seit Ende Juli auch ohne Warteliste durchstarten.

Trainiert wurde GPT-4 mit Daten u.a. aus dem Internet – inklusive falscher Lösungen zu Matheaufgaben, logischen Widersprüchen und schlechtem Code. Und nach wie vor reicht der Kenntnisstand der generativen KI nur bis September 2021.

Was können Sprach-KIs in der Softwareentwicklung leisten?

Der Wunsch nach Programmen, die Programme selbst schreiben ist so alt wie die Informatik selbst. In den Anfangszeiten musste z.B. bei jedem Programm der Maschinencode neu eingegeben werden – bis Grace Hopper ihre smarte Idee, der Computer solle selbst die Codeabschnitte abschreiben, umsetzte.

Heute kannst Du Dir als Entwickler:in von KI beim Programmieren helfen lassen. In der Regel musst Du als Entwickler:in kein Problem mehr von Grund auf lösen und Du greifst fast immer auf Bausteine zurück. Wenn Du nicht weiterkommst, schaust Du wahrscheinlich bei Stackoverflow und suchst nach passenden Codestücken und Bug Fixes. Wäre doch praktisch, wenn genau das auch ein Algorithmus übernehmen würde, oder?

Grafik zeigt die Zeitersparnis durch KI ind er Softwareentwicklung und der Schreibarbeit.

Quelle: ardalpha.de

KI-basierte Systeme sind für Developer ein echter Zeitfaktor. Richtig eingesetzt kannst Du als Entwickler:in dank KI richtig viel Zeit sparen, die Du in Deine kreativen Ideen stecken kannst.

Einsatzbereiche von ChatGPT in der Softwareentwicklung

ChatGPT ist ein Sprachmodell und genau deshalb kann es auch hervorragend mit Programmiersprachen umgehen, die viele Ähnlichkeiten mit natürlichen Sprachen haben (Syntax, Grammatik, semantische Ebene). Der Chatagent von ChatGPT hilft dir unter anderem beim:

1. Schreiben von Code

Du kannst dem Modell Befehle erteilen wie: "Erstelle mir eine Liste mit den Top 5 Serien auf Netflix in Python" und Du wirst wahrscheinlich eine brauchbares Stück Code bekommen inklusive gut benannter Variablen und eine saubere Dokumentation wird auch mitgeliefert. Für die unterschiedlichsten Problemstellungen wird Dir die KI eine benutzbare Lösung ausspucken, vor allem dort, wo häufige benutzte Algorithmen im Spiel sind. Je spezifischer Deine Anfrage wird, desto höher die Wahrscheinlichkeit, dass der Code Fehler enthält.

2. Testing

Um herauszufinden, ob Dein Code läuft, kommst Du nicht drumherum ihn zu testen. Auch das kann ChatGPT für Dich übernehmen, indem Du das Sprachmodell aufforderst, z.B. Unit-Test für Deinen Code zu schreiben und durchzuführen. Von einfachen Testfällen bis zu komplexen Testautomatisierung für CI/CD-Pipelines samt Code zum Testen einer Anwendung kann Dir der ChatBot ziemlich viel Arbeit abnehmen.

3. Debugging

Dein Code läuft nicht oder nicht mehr und die Fehlersuche gestaltet sich mal wieder als äußerst langwierig? Klar, Du kannst stundenlang Stack Overflow oder das gesamte Internet nach Lösungen durchsuchen. Schneller geht es, wenn Du ChatGPT fragst. Die KI erklärt Dir nicht nur den Bug, sondern fixed ihn und erklärt Dir als Kirsche auf der Sahnetorte auch noch wie.

4. Code optimieren

Du kannst dem Chatbot auch Deinen Code geben und ihn bitten, den gesamten Code oder einzelne Funktionen zu verbessern. Im besten Fall hast Du danach einen wesentlich effizienteren Code und eine deutlich schnellere Software.

5. Aufdecken von Sicherheitsprobleme

Du bist Dir nicht sicher, ob Dein Code nicht doch an einer Stelle eine Schwachstelle aufweist und womöglich zur Sicherheitslücke werden kann? In vielen Fällen weist die Software nicht nur mögliche Sicherheitsprobleme hin, sie liefert Dir auch gleich konkrete Alternativen mit.

6. Analyse und Übersetzen von Code

Ihr habt ein Projekt übernommen und Du verzweifelst, weil Du nicht verstehst, was ein bestimmter Abschnitt Code eigentlich tut? ChatGPT erklärt Dir die Funktionsweise des Codes und übersetzt ihn Dir in beliebige andere Sprachen, z.B. einen Python-Code in JavaScript.

Cedric, aka Morpheus, erklärt Dir noch ein paar mehr Möglichkeiten, wie Du als IT’ler:in ChatGPT nutzen kannst.

Pair Programming und Autovervollständigung mit GitHubs Copilot

Neben dem gehypten ChatGPT gibt es für Dich als KI-Helferlein noch den Copilot von GitHub, der Dir das Leben ein bisschen leichter machen kann. Die Software wurde auf Codex trainiert, einer Weiterentwicklung von GPT-3. Die Trainingsdaten sind also nicht unähnlich zu ChatGPT und schließen öffentlich zugängliche Quellen und GitHub Repositories mit ein. Wie ChaptGPT macht Dir der Copilot Codevorschläge und bietet verschiedene Varianten an. Du kannst die KI aber auch als neuen Coding-Buddy betrachten und endlose Pair Programming Sessions mit ihr durchziehen. Ein bisschen Magie schwingt bei der Autovervollständigung Deines Codes auch irgendwie mit. Anders als die kostenfreie Beta von OpenAI ist der Copilot jedoch kostenpflichtig.

Und was können Sprach-KIs wie ChatGPT nicht?

Klingt ziemlich beeindruckend, oder? Wenn Du Dich jetzt fragst, ob Devs in Zukunft arbeitslos werden, dann lautet die Antwort ganz klar nein. Im Bereich der Sprachgenerierung liefern Sprachmodelle wie ChatGPT für kurze, normierte Texte wie Produktbeschreibungen gute Vorhersagen. Sie können Texte, die von Menschen geschrieben wurden, durchaus ersetzen. Auch hier gilt: Je standardisierter ein Bereich, desto besser lässt er sich automatisieren. Autoren und Journalistinnen werden sie aber nicht arbeitslos machen und genauso wenig wirst Du als Softwareentwickler:in plötzlich überflüssig. Denn wenn es darum geht, komplexere Zusammenhänge zu erfassen, ist das computationell schwierig umzusetzen. Kausalität und auch die Kategorien von Raum und Zeit kennt die Sprach-KI nicht.

Inwieweit die KI kreative Texte generieren kann, ist umstritten. Für die Uniqueness ist immer noch der Mensch wichtig. Genau das trifft auch auf Dich in der Softwareentwicklung zu. Die künstliche Intelligenz kann Dir Routinearbeiten abnehmen wie Dokumentationen oder Tests, aber Du hast stets den Überblick und gibst die Richtung vor, in die ihr geht. Ihr seid also ein Expert:innen-Duo, das Top-Ergebnisse liefert.

ChatGPT ist keine eierlegende Wollmilchsau. Beim Codeschreiben kann Dir die Chatbot-KI vor allem immer dann gut helfen, wenn es ein häufig genutzter Algorithmus ist. Im Prinzip ist KI wie der ChatGPT Dein persönlicher Stackoverflow. Und damit kommt es für Dich als Entwickler:in eben auch an Grenzen.

Analysefähigkeit und Kreativität sind die wichtigsten Eigenschaften, die Dich und Deinen Code von einer KI unterscheiden. Auch wenn es verlockend ist, sich möglichst viel (Fleiß-)Arbeit von einem Algorithmus abnehmen zu lassen, solltest Du Dir immer bewusst sein, dass sie Fehler macht, die sie zugegeben sehr glaubwürdig verpackt. Ein Grundsätzliches Problem neuronaler Sprachmodelle: Sie benutzen statistische Wortmuster, die sie in den Trainingsdaten erkennen. Bei ihren Voraussagen generieren die Sprach-KIs Zusammenhänge, die es unter Umständen gar nicht gibt, Fake News sozusagen. Expert:innen sprechen dann von Halluzinationen. Ein echtes Sprachverständnis hat die KI nämlich nicht, sie verfügt über kein Weltwissen. Tatsächlich produziert das Sprachmodell seine "Fakten" in glaubwürdigen Text und es ist der Job der User:innen, diese Aussagen zu überprüfen. Stackoverflow hat ziemlich schnell reagiert, als viele User:innen mit ChatGPT generierte Bug Fixes posteten. Schon wenige Tage nach dem Go-Live der Sprach-KI verbietet die Plattform Posts, die mithilfe der Software von OpenAI erstellt wurden.

Ein weiteres großes Problem der Sprach-KIs ist die Begrenztheit des Korpus, auf dem sie trainiert wurden. Alles nach 2021 kann ChatGPT z.B. nicht "wissen". In der jetzigen Beta-Phase wird ChatGPT allerdings sehr viel dazu lernen. Trotzdem besteht immer die Gefahr, dass Fehler sich potenzieren, Bias entstehen etc. Denn mit der Qualität der Daten steigt und sinkt auch die Qualität des Outputs, also das gute alte GIGO-Prinzip: Garbage In, Garbage Out.

Die Zukunft der Softwareentwicklung ist KI-basiert

Welche Auswirkungen Sprach-KIs auf die Branche haben, ist noch nicht abzusehen. Aber dass sie die Arbeitsweise von Softwareentwickler:innen grundlegend verändern werden, zeichnet sich schon jetzt ab. Ob ChatGPT oder Copilot, die KI kann Dir als Developer viel Zeit sparen. Aber es gibt auf dem Weg zum perfekten generierten Code noch eine ganze Reihe an Fallstricken und juristischen Fragen zu lösen. Welche Rolle z.B. das Urheberrecht spielt oder wie es mit dem Datenschutz aussieht. Unklar ist auch, in welche Richtung sich das Geschäftsmodell von OpenAI entwickeln wird. Bleibt die Nutzung kostenlos? Werden bei der Weiterentwicklung Bias verstärkt? Auch das Katz-und-Maus-Spiel zwischen Programmen, die generierte Texte erstellen und solche wie GPTZero, die generierte Texte aufspüren, werden wir in Zukunft in einem noch schnelleren Wechsel beobachten. Im Hinblick auf den enormen Energiebedarf, der zum Training von KI gebraucht wird, wird Green AI als Forschungsbereich immer wichtiger.

Fest steht: KI-basierter Code wird den Workflow in den Dev-Teams verändern, zum Positiven. Die Code-Generatoren erarbeiten die Basics und erledigen die Routinearbeit und Du sorgst für den Feinschliff, zusammen seid ihr ein Expert:innen-Duo. Denn so wie es jetzt aussieht, wirst Du als Programmierer:in nicht durch Software wie ChatGPT und Copilot arbeitslos. Zum einen macht die KI noch zu viele Fehler. Zum anderen beschränkt sich die Kernkompetenz eines guten Devs nicht nur darauf 1a-sauberen Code zu schreiben. Deine Software muss gut strukturiert, erweiterbar, wartbar und technisch skalierbar sein. Du denkst über den Tellerrand hinaus und entwickelst kreative Ansätze zur Lösung von IT-Problemen. Und das ist nur der eine Teil der Arbeit. Auf der anderen Seite kommunizierst Du mit dem Auftraggebenden, diskutierst Vorschläge, findest heraus, was Kund:innen möchten, was sie eigentlich brauchen und was tatsächlich umgesetzt werden kann. Etwas, bei dem KI maximal unterstützen kann, weil sie z.B. schneller Daten analysiert oder Modelle simulieren kann. Aber die beste Software läuft nicht, ohne einen Menschen, der sie einsetzt.

TL;DR:
  • KI wird in Zukunft bei der Softwareentwicklung deutlich mehr unterstützen und einfache Coding-Aufgaben übernehmen. Sprach-KI wie ChatGPT kann Fehler im Code erkennen und Lösungen vorschlagen.
  • Die Code-Generatoren können die Entwicklungszeit von Software deutlich verkürzen und die Qualität des Codes verbessern.
  • Es gibt auf dem Weg zum perfekten generierten Code noch eine ganze Reihe ungeklärter juristische Fragen zum Urheberrecht und Datenschutz.
  • Weder GPT-3.5, GPT-4 oder GitHubs Copilot machen Devs arbeitslos: In der Softwareentwicklung zählen Kreativität, Analysefähigkeiten und Kommunikationsstärke.