Schnell | ChatGPT in Softwareprojekten | E-Book | sack.de
E-Book

E-Book, Deutsch, 206 Seiten

Reihe: Animals

Schnell ChatGPT in Softwareprojekten

Mit KI Codequalität, Anforderungen und Dokumentation verbessern
1. Auflage 2024
ISBN: 978-3-96010-881-8
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark

Mit KI Codequalität, Anforderungen und Dokumentation verbessern

E-Book, Deutsch, 206 Seiten

Reihe: Animals

ISBN: 978-3-96010-881-8
Verlag: dpunkt.verlag
Format: EPUB
Kopierschutz: 6 - ePub Watermark



Produktivere Teams mit ChatGPT und Co. - Einstieg in die Arbeit mit Sprachmodellen: für alle, die erste Erfahrungen sammeln und die Zusammenarbeit im Projektteam verbessern möchten. - Effektives Prompting, so geht's: mit bewährten Techniken zu guten Ergebnissen. - Den Informationsfluss verbessern: Mit weniger Aufwand aussagekräftige Anforderungen und Dokumentationen erstellen und aktuell halten. - Mit ChatGPT das Verständnis von Code erleichtern und die Codestruktur verbessern. Entwicklerinnen, Projektmanager und Softwarearchitekten erfahren in diesem Praxisbuch, wie sie ChatGPT und andere Sprachmodelle nutzen, um ihre eigene Produktivität und die ihres Teams erheblich zu steigern. Sprachmodelle können Entwickler effektiv unterstützen, indem sie Code strukturieren, optimieren und automatisiert kommentieren. Auch Anforderungsdefinitionen und Dokumentationen sind für den Informationsfluss im Projekt enorm wichtig, zählen aber häufig zu den ungeliebten Aufgaben. ChatGPT kann hier eingesetzt werden, um zeitraubende manuelle Arbeiten abzukürzen und konsistentere Dokumente zu erstellen. Dieser praktische Einstieg zeigt anhand von vielfältigen Beispielen, wie Sie die neuen Möglichkeiten der Sprachmodelle für Ihre Arbeit nutzen können. Das Buch erläutert: - mit welchen Prompting-Strategien Sie die besten Ergebnisse erzielen und welche Risiken bestehen - was gute Software auszeichnet und wie Sie mit ChatGPT die Codestruktur verbessern, Code optimieren und automatisiert kommentieren lassen - wie Sie Anforderungen mit ChatGPT auf Konsistenz und Vollständigkeit prüfen und Vorschläge zur Priorisierung erhalten - wie Sie User Stories mit LLMs strukturieren und Dokumente für unterschiedliche Zielgruppen aufbereiten - wie Sie Dokumentationen zu APIs, Datenmodellen, Programmabläufen und Algorithmen mit LLMs erstellen

Patrick Schnell ist Softwareentwickler, Informatiker und Geschäftsführer der schnell.digital, einer innovativen Softwareagentur. Mit über 17 Jahren Projekterfahrung entwickelt er maßgeschneiderte Lösungen für verschiedenste Branchen. Seine Leidenschaft gilt neuen Technologien wie KI, NoSQL-Datenbanken oder der Hybrid-App-Entwicklung. Als Autor und Speaker teilt er sein umfangreiches Wissen und inspiriert andere Entwickler durch Fachartikel und Vorträge. Neben der Softwareentwicklung interessiert er sich für alles, was technisch ist, sowie für Standard- und Lateintanz. Sie erreichen Patrick Schnell über die Kontaktmöglichkeiten seiner Unternehmenswebsite https://www.schnell.digital/.
Schnell ChatGPT in Softwareprojekten jetzt bestellen!

Autoren/Hrsg.


Weitere Infos & Material


KAPITEL 1


Mit Sprachmodellen reden: das Prompting


Die Nutzung von Sprachmodellen hat seit Ende 2022 und dem Release von ChatGPT dramatisch zugenommen. Gerade durch ChatGPT sind solche Sprachmodelle (im Englischen als , kurz , bezeichnet) schlagartig bekannt geworden. In diesem Buch möchte ich einen Einblick darin geben, wie Entwicklungsteams diese Technologie einsetzen können, um ihre Arbeitsabläufe effizienter zu gestalten und Projekte schneller und effektiver zu realisieren.

Ein Schlüsselelement in der Interaktion mit Sprachmodellen ist das . Doch was genau ist Prompting, und wie kann es für Fragen, die die Entwicklungsarbeit und das Managen von Softwareprojekten betreffen, optimiert werden? In diesem Kapitel beschäftigen wir uns mit dem Konzept des Promptings, untersuchen verschiedene Arten von Prompts und beleuchten mögliche Fallstricke, die alle, die LLMs wie ChatGPT nutzen, im Hinblick auf die sogenannten stets im Hinterkopf haben müssen. Zudem erhalten Sie praktische Tipps und Tricks für das Schreiben von Prompts.

KI und Machine Learning: Was ist das?


Diese Frage detailliert zu beantworten, würde Erklärungen im Umfang mehrerer Fachbücher erfordern. Grundsätzlich reicht die Geschichte der künstlichen Intelligenz ziemlich weit zurück, und eine klare Unterscheidung zwischen modernen Methoden und den ersten Anfängen ist nicht so einfach zu treffen, wie es auf den ersten Blick vielleicht scheint.

KI und das damit verbundene Machine Learning lassen sich darauf zurückführen, dass aus vorgefertigten und teils eigens für den Anwendungsfall aufbereiteten Daten ein angefertigt wird. Ein solches Modell beinhaltet je nach Funktionsweise sehr vereinfacht ausgedrückt die statistischen Merkmale dieser Rohdaten, um, ebenfalls äußerst vereinfacht dargestellt, darauf Bezug nehmend unter Berücksichtigung von Gewichtungen aus den Eingabedaten ein Ergebnis zu kreieren.

Moderne KI-Modelle basieren hauptsächlich auf neuronalen Netzen, die durch Machine Learning und Deep Learning trainiert werden. Während in der Vergangenheit einige KI-Methoden auf Fuzzy-Logik basierten, nutzten die meisten regelbasierte Systeme oder einfache statistische Methoden. Heutzutage ermöglichen maschinelles Lernen und insbesondere Deep Learning eine viel größere Flexibilität und Leistungsfähigkeit, indem sie aus großen Datenmengen lernen und komplexe Muster erkennen. Diese Methoden finden Anwendung in einer Vielzahl von Bereichen, von Empfehlungssystemen in Onlineshops (»Kunden, die dies kauften, kauften auch …«) bis hin zu Verhaltensmodellen in Computerspielen. Der Begriff KI umfasst somit eine Vielzahl unterschiedlicher Technologien und Verfahren.

Grundsätzlich beschreibt KI Systeme, die autonom auf Eingaben reagieren und Entscheidungen treffen können, ohne dass jede mögliche Reaktion vorab explizit programmiert wurde.

Praxisbeispiel Machine Learning

Wir starten zunächst mit einem kurzen Exkurs, um die grundlegende Arbeitsweise des Machine Learning anhand eines Praxisbeispiels nachzuvollziehen. Ein stark vereinfachtes und häufig im Zusammenhang mit Datenanalyse und Machine Learning genutztes Beispiel ist die Identifizierung von Pflanzentypen, genauer die Identifizierung verschiedener Arten von Schwertlilien. Diese Pflanzenspezies besitzt sogenannte Kronblätter (Petal) sowie sogenannte Kelchblätter (Sepal). Schwertlilien werden in drei Untergruppen unterschieden: »Iris setosa«, »Iris versicolor« und »Iris virginica«. Man kann diese Arten identifizieren, indem man das Verhältnis von Länge und Breite der jeweiligen Kron- und Kelchblätter vergleicht und daraus die Pflanzenspezies ableitet.

Diese verschiedenen Arten von Schwertlilien zu unterscheiden, soll die Aufgabe unseres Modells sein. Eingabewerte sind die Größen der Blätter. Als Ergebnis hätten wir gern die Nennung der jeweiligen Untergruppe der Lilien.

Für dieses Beispiel bedient man sich des sogenannten : Hierfür werden große Mengen an Daten sowie Endergebnisse vorgegeben. Das Machine-Learning-Training versucht dann anhand dieser Daten, Rückschlüsse zu ziehen und für neue Eingabedaten die fehlende Information – in diesem Fall die Pflanzengruppe – zu ermitteln. Dieses Verfahren wird bei den meisten KI-Modellen eingesetzt, ob es sich nun um Schrift- und Zeichenerkennung, um bildhafte Objekterkennung, Gesichtserkennung oder Ähnliches handelt. Man versucht, dem Modell mit möglichst vielen validen Daten eine Datengrundlage zu liefern, ohne dass die Regeln für die Bearbeitung der Daten explizit in Programmcode beschrieben werden müssen.

Vor den Zeiten des Machine Learning war aber genau dies der Lösungsweg: Daten zu extrahieren und selbst ein Regelwerk dazu zu ermitteln, wann welche Schwertlilie welcher Gruppe zugeordnet werden muss. Dieses Regelwerk wurde dann in einen festgelegten Algorithmus in Form von Programmcode umgesetzt, um so ein Ergebnis zu ermitteln.

Bei vier Eingangsinformationen (Länge und Breite der beiden Blatttypen) und drei Pflanzengruppen wäre das noch eine machbare Methode. Spätestens bei der Erkennung von Handschriften kann, wie man sich leicht vorstellen kann, dieses Verfahren nicht mehr eingesetzt werden.

Hat man genügend Daten zu den Untergruppen der Schwertlilien gesammelt, sprich Pflanzenblätter gemessen, Messwerte eingetragen und Arten bestimmt, können diese Daten beispielsweise im CSV-Format einer Machine-Learning-Bibliothek (z.B. TensorFlow, ML.NET usw.) für ein Training des Modells übergeben werden. Diese Bibliothek wird dann ein Modell für eine sogenannte erstellen und alle vorhandenen Werte miteinander in Verbindung bringen, sodass daraus ein statistisches Modell erstellt werden kann.

Mit diesem Modell können wir nun gänzlich neue und dem Modell unbekannte Messwerte der Blätter übergeben (zum Beispiel einer nicht im Trainingsmodell verwendeten einzelnen Schwertlilienpflanze). Daraus ermittelt das Modell die potenziell passende(n) Klasse(n) mit einer entsprechenden Einschätzung dazu, wie sicher das Modell bei dieser Kategorisierung ist ().

Genau diese Confidence beim Lösen der Aufgabe ist wichtig, um einschätzen zu können, ob man sich auf das Ergebnis der Klassifizierung verlassen kann oder eben nicht. Hat man zwei ziemlich nah beieinanderliegende Ergebnisse (zum Beispiel den Fall, dass eine Pflanze zu einer Gattung zählt, jedoch unerwartet groß/klein ist, sodass sie in einen Randbereich fällt), kann man davon ausgehen, dass das KI-Modell in diesem Fall eine Pflanze nicht eindeutig identifizieren konnte und eine gewisse Unsicherheit bezüglich des Ergebnisses besteht.

Training ist das A und O

Die Menge der genutzten Trainingsdaten und die Vorgehensweise beim Training sind das A und O, wenn es um Machine-Learning-Modelle geht. Wie erwähnt, werden im Supervised Learning Modelle mit vordefinierten Daten und klaren Vorgaben trainiert – wie bei der zuvor beschriebenen Pflanzenklassifizierung. So geht man auch bei der Bestimmung von Objekten in Bildern vor. Sicher hat jeder von uns schon einmal ein Captcha-Rätsel lösen müssen, in dem man in einem Bild »alle Ampeln, Treppen, Fahrräder etc.« anklicken musste. Hier werden Daten (bzw. in diesem Fall Bilder oder Objekte) genutzt, die möglicherweise eine unterdurchschnittliche Confidence (Sicherheit des Ergebnisses) aufgewiesen haben, im Vergleich zu Daten, für die klar definiert werden konnte, ob es sich um eine Ampel oder eine Treppe etc. handelt. Ein Beispiel dafür könnte ein Fahrrad sein, das von dem Modell möglicherweise auch als Motorrad erkannt werden kann. Durch die aktive Benutzereingabe können diese nicht eindeutig identifizierbaren Daten erneut in das Trainingsmodell gelangen. Iteration für Iteration wird durch die erneute Benutzereingabe dann die Genauigkeit der Modelle (z.B. für die Bildsuche) verbessert (). Wenn man nicht auf das Wissen von Millionen Usern zurückgreifen kann, ist dies ein sehr kostspieliges und aufwendiges Verfahren.

Im Unterschied zu diesem Vorgehen basiert das initiale Training von GPT und anderen Sprachmodellen auf dem Ansatz des nicht überwachten Lernens, des . Hierbei werden aus einer wesentlich größeren Menge von Daten ohne konkrete Zielvorgabe vom Modell eigenständig Zusammenhänge in diesem Datenpool gesucht und identifiziert. Diese Art von Training erfordert selbstverständlich wesentlich mehr...


Patrick Schnell ist Softwareentwickler, Informatiker und Geschäftsführer der schnell.digital, einer innovativen Softwareagentur. Mit über 17 Jahren Projekterfahrung entwickelt er maßgeschneiderte Lösungen für verschiedenste Branchen. Seine Leidenschaft gilt neuen Technologien wie KI, NoSQL-Datenbanken oder der Hybrid-App-Entwicklung. Als Autor und Speaker teilt er sein umfangreiches Wissen und inspiriert andere Entwickler durch Fachartikel und Vorträge. Neben der Softwareentwicklung interessiert er sich für alles, was technisch ist, sowie für Standard- und Lateintanz. Sie erreichen Patrick Schnell über die Kontaktmöglichkeiten seiner Unternehmenswebsite https://www.schnell.digital/.

Patrick Schnell ist Softwareentwickler, Informatiker und Geschäftsführer der schnell.digital, einer innovativen Softwareagentur. Mit über 17 Jahren Projekterfahrung entwickelt er maßgeschneiderte Lösungen für verschiedenste Branchen. Seine Leidenschaft gilt neuen Technologien wie KI, NoSQL-Datenbanken oder der Hybrid-App-Entwicklung. Als Autor und Speaker teilt er sein umfangreiches Wissen und inspiriert andere Entwickler durch Fachartikel und Vorträge. Neben der Softwareentwicklung interessiert er sich für alles, was technisch ist, sowie für Standard- und Lateintanz. Sie erreichen Patrick Schnell über die Kontaktmöglichkeiten seiner Unternehmenswebsite https://www.schnell.digital/.



Ihre Fragen, Wünsche oder Anmerkungen
Vorname*
Nachname*
Ihre E-Mail-Adresse*
Kundennr.
Ihre Nachricht*
Lediglich mit * gekennzeichnete Felder sind Pflichtfelder.
Wenn Sie die im Kontaktformular eingegebenen Daten durch Klick auf den nachfolgenden Button übersenden, erklären Sie sich damit einverstanden, dass wir Ihr Angaben für die Beantwortung Ihrer Anfrage verwenden. Selbstverständlich werden Ihre Daten vertraulich behandelt und nicht an Dritte weitergegeben. Sie können der Verwendung Ihrer Daten jederzeit widersprechen. Das Datenhandling bei Sack Fachmedien erklären wir Ihnen in unserer Datenschutzerklärung.