Image taken from: Demodern

Reality Check ChatGPT: Die wichtigsten Anwendungstipps für Entwickler:innen

In den vergangenen sechs Monaten hat sich ChatGPT als eine wegweisende Technologie in verschiedenen Branchen etabliert und wird für eine breite Palette von Anwendungsfällen genutzt. Das Large Language Model - ein großes generatives Sprachmodell mit künstlicher Intelligenz (KI) - basiert auf neuronalen Netzwerken mit Transformer-Architektur und ist in der Lage, natürliche Sprache zu verstehen, zu verarbeiten und zu generieren. Die Modelle werden mit riesigen Textmengen trainiert und haben teils mehrere hundert Milliarden Parameter.
Von   Jan Beutgen   |  Technical Director   |  Demodern
4. September 2023

Von der Medienbranche und Technologieentwicklung über die Gesundheitsversorgung bis zum Kundenservice hat ChatGPT bereits in verschiedenen Sektoren Fuß gefasst. Dabei werden Aufgaben wie Texterstellung, Analyse, Ideengenerierung, Verständnis von komplexen Themen und vieles mehr durch das Sprachmodell erleichtert. In diesem Artikel wird besonders auf die Nutzung im Bereich der Softwareentwicklung eingegangen. Heute ist es für Entwickler:innen besonders wichtig zu wissen, welche Bereiche ihrer Arbeitsprozesse durch ChatGPT unterstützt werden und bei welchen Themen sie sich eher auf andere Werkzeuge verlassen sollten. Dazu kommt natürlich das Wissen darüber, wie erfolgreiche Eingaben an das System (Prompts) aussehen.

Sorgfältige Überprüfung generierter Ergebnisse

ChatGPT ist zweifellos eine beeindruckende generative KI. Es gilt jedoch zu beachten, dass die Qualität der generierten Antworten variieren kann. Dies kann dazu führen, dass Antworten unvollständig, inkorrekt oder sogar erfunden sind. Die Verwendung von ChatGPT erfordert daher eine sorgfältige Überprüfung der generierten Ergebnisse, insbesondere wenn präzise und zuverlässige Informationen erforderlich sind wie bei der Programmierung. Glücklicherweise lässt sich etwas einschränken, in welchen Bereichen die Wahrscheinlichkeit für korrekte Antworten höher ist und wann womöglich herkömmliche Mittel wie Foren, Dokumentationen und Tutorials zielführender sind.

Die Erstellung von neuem Code

Da die Wissensdatenbank von ChatGPT auf dem Stand von 2021 ist, könnten präzise Fragen zu Code-Bibliotheken oder Programmiersprachen, die sich durch neue Updates und Versionen rasch ändern, zu fehlerhaften Antworten führen. Besser funktionieren Fragen zu Grundlagen von Programmiersprachen oder zur Hilfe bei der Implementierung häufig benötigter Komponenten. Generell gilt dabei, dass ChatGPT nicht vollständige Programme erstellen kann. Stattdessen sollten Programmierer:innen lediglich nach kleineren Klassen oder Komponenten mit festgelegten Funktionen fragen. Dabei ist es unerlässlich, dass genau beschrieben wird, wie die Klasse heißen soll, welche Variablen und Methoden es gibt und was diese tun sollen. Die Ergebnisse lassen sich dann nach und nach in die Software einfügen. Am besten funktioniert dabei die Erstellung von Methoden, die kleine, generelle Aufgaben übernehmen. Zum Beispiel das Filtern oder die Sortierung von Datenstrukturen mit besonderen Aspekten, die Generierung eines bestimmten Output-Formats, z. B. Json, basierend auf den Eingabedaten, API-Zugriffe etc. Ebenfalls erfolgreich sind Anfragen mit dem Ziel, klassische HTML-Elemente zu einer visuellen Web-Komponente zu vereinen und ein einfaches CSS-Styling anzuwenden.  Wichtig ist dabei aber immer zu verstehen, was der Code tut und wie er aufgebaut ist. ChatGPT ist sehr gut darin, den eigenen erstellten Code Schritt für Schritt zu erklären. Bleiben trotzdem spezielle Verständnisfragen, kann die User:in durch mehrmaliges Nachfragen weitere Einzelheiten über die Logik und Schrittweise erfragen. Gleiches gilt natürlich nicht nur für den Code, der von ChatGPT erstellt wurde. Es lohnt sich ebenfalls, fremden, unverständlichen Code aus anderen Quellen in ChatGPT zu kopieren und in einfachen Worten erklären zu lassen.

Das Arbeiten mit einem existierendem Code

Aber ChatGPT ist nicht nur gut darin, neuen Code zu erstellen und zu erläutern. Wird ein bestehender Code in ChatGPT kopiert, kann das Tool diesen um zusätzliche Funktionalitäten erweitern. Dabei können weitere Variablen eingefügt und überall korrekt integriert werden. Ebenfalls können zusätzliche Methoden hinzugefügt oder sogar neue Klassen mit einer ähnlichen Funktionsweise und einem ähnlichen Stil erstellt werden.

Quelle: Demodern

Zusätzlich ist ChatGPT eine gute Hilfe bei der Fehlersuche. Wird ein fehlerhafter Code dem Modell als Eingabe zusammen mit der auftretenden Fehlermeldung gegeben, so erhält die User:in einige nützliche Hinweise für die Ursache und im Idealfall sogar den korrigierten Code. Aber auch hier gilt es aufmerksam zu sein. Denn bei der Programmierung liegen Fehler im Code oft an einer anderen Stelle als die Fehlermeldung entsteht. Dadurch kann es passieren, dass der in ChatGPT eingefügte Abschnitt des Codes den Fehler gar nicht enthält. ChatGPT wird dann trotzdem versuchen einen Fehler zu finden und Vorschläge machen, die nicht zielführend sind. Somit wird die Userin oder der User auf eine falsche Fährte gelockt und verliert wertvolle Zeit.

Eine weitere Aufgabe die ChatGPT übernehmen kann ist, den Code der User:in zu überprüfen. Mit dem bestehenden Code als Eingabe kann ChatGPT sowohl Verbesserungen und Best Practices vorschlagen, als auch den Coding-Stil entsprechend Guidelines überprüfen oder die Leserlichkeit verbessern. Ähnlich können auch mehrere Code-Fragmente übergeben werden und ChatGPT als Unterstützung für Refactoring-Aufgaben verwendet werden. Dabei kann die KI eine bessere Code-Struktur und Aufteilung in verschiedene Klassen oder Komponenten vorschlagen. Auch hier gilt schon wie zuvor, dass die Ausgaben lediglich als Inspiration und Entscheidungshilfe genommen werden sollten, statt das Resultat blind zu kopieren und nicht nochmals zu überprüfen.

So sollte ich meine Prompts formulieren

Nachdem nun die besten Anwendungsszenarien für ChatGPT im Bereich der Softwareentwicklung aufgezeigt wurden, gilt es nun noch, die Eingaben bzw. Prompts so erfolgreich wie möglich zu verfassen, um das meiste aus dem Tool herauszuholen.

Zuerst muss der Prompt möglichst eindeutig und umfassend sein, um dem Modell zu helfen, seine Problemstellung besser zu verstehen. Es hilft zu Beginn des Prompts zu erklären, um welches Projekt es geht und welches spezifische Problem zu lösen ist. Zusätzlich helfen Anführungszeichen, um wichtige Teile des Prompts zu betonen und ChatGPT auf die wichtigsten Informationen zu fokussieren. Nachdem der Kontext und die Hintergrundinformationen genannt sind, muss ChatGPT wissen, welche Rolle bzw. Perspektive eingenommen werden soll. Ein einfacher Einschub wie „…aus der Sicht eines Senior Java-Entwicklers“, „…Agilen Coaches“ oder „…Scrum Product Owners“ führt dazu, dass ChatGPT die Perspektive ändert und andere Informationen bevorzugt, was die Antwort positiv beeinflussen kann.

Nun, da ChatGPT den Kontext und die Rolle kennt, benötigt es eine klare und deutliche Anweisung für die Aufgabe, die zu erledigen ist. Wichtig sind außerdem eindeutige und klare Befehle wie „Analysiere …“, „Schreibe …“, „Nenne mir …“, damit die Aufgabe nicht fehl-interpretiert wird. Es können auch mehrere Anweisungen nacheinander im selben Prompt verwendet werden, um ChatGPT genauer zu instruieren, was gemacht werden soll.

Eine hilfreiche Ergänzung für präzisere Antworten sind positive und negative Beispiele. Bestehende positive Code-Beispiele im Voraus zur Verfügung zu stellen, hilft ChatGPT den Code in einem ähnlichen Stil zu generieren. Ebenso kann das Einfügen negativer Beispiele dabei helfen, bestimmte Fehler zu vermeiden. Dabei ist darauf zu achten, eine klare Trennung zwischen den Beispielen und dem restlichen Prompt zu schaffen und deutlich zu kennzeichnen, was positive und was negative Beispiele sind. Wie bereits erwähnt, funktionieren längere Prompts in der Regel besser als kurze. Dennoch sollte ein Prompt nicht zu lang werden und keine irrelevanten Informationen enthalten. Somit empfiehlt es sich bei der Eingabe von einem Code nur auf das Problem bezogene Zeilen des Codes zu kopieren und nicht einfach mehrere Dateien hintereinander einzufügen. Häufig ist die erste Anfrage an ChatGPT nicht direkt erfolgreich. Oft reichen aber schon geringfügige Änderungen, Auslassungen und Ergänzungen, um eine bessere Antwort zu erhalten. Weiterhin lohnt es sich, den von ChatGPT erstellten Code sukzessive verbessern zu lassen. So kann zum Beispiel nach erfolgreicher Erstellung noch angefragt werden, ob ChatGPT den Code performanter, lesbarer oder kürzer umschreiben kann.

Ausblick: Wird ChatGPT meinen Job bald übernehmen?

Wenn man sich anschaut, zu was ChatGPT bereits in der Lage ist und wohl bald sein wird, kommt unweigerlich die Frage auf, ob Entwickler:innen bald ihre Jobs verlieren. Meine persönliche Einschätzung ist, dass dies unwahrscheinlich ist. Der Beruf der Software-Entwickler:innen erfordert mehr als nur das Schreiben von Codes und das Finden von Fehlern. Es geht darum, das Gesamtverständnis für eine Problemstellung zu entwickeln, die richtigen Werkzeuge und Technologien auszuwählen, eine klare Struktur zu schaffen und einen lesbaren Code zu schreiben, der für Wartung und Weiterentwicklung geeignet ist. Dies sind Aspekte, die eine menschliche Intuition, Kreativität und Entscheidungskraft erfordern – Fähigkeiten, die derzeit außerhalb der Reichweite einer KI wie ChatGPT liegen.

Quelle: Demodern

Die Technologie kann daher eher dazu beitragen, den Prozess des Kodierens zu beschleunigen und den Zugang zu Wissen zu erleichtern, aber sie ersetzt nicht die menschliche Fähigkeit, innovative Lösungen zu entwickeln, komplexe Probleme zu analysieren und strategische Entscheidungen zu treffen. Daher wird ChatGPT höchstwahrscheinlich nicht den kompletten Beruf ersetzen. Es wird eher die Art und Weise, wie wir arbeiten, verbessern, indem es als wertvolle Ressource zur Unterstützung und Beschleunigung von Entwicklungsprozessen dient.

Jan Beutgen (31) ist Technical Director bei Demodern, der deutschlandweit meistausgezeichneten Agentur für kreative Technologien und eine der führenden Innovationsagenturen Europas mit Sitz in Köln und Hamburg. Bereits während und nach seinem Studium der Computervisualistik an der Universität Koblenz-Landau konnte Beutgen jahrelange Erfahrung in der Softwareentwicklung sammeln. Heute ist er als Teamlead darauf spezialisiert, innovative Softwarelösungen zu liefern, die hohe Qualitätsstandards und Kundenerwartungen erfüllen. Dabei liegt sein Fokus auf den sich schnell entwickelnden Bereichen VR, AR und Mixed Reality sowie Metaverse.

Um einen Kommentar zu hinterlassen müssen sie Autor sein, oder mit Ihrem LinkedIn Account eingeloggt sein.

42558

share

Artikel teilen

Top Artikel

Ähnliche Artikel