Zum Inhalt springen

Tradition trifft Innovation: Requirements Engineering, Prozessmanagement & Testing für ein effektives Prompt Engineering

In meinem letzten Blog-Artikel habe ich über die Anfänge von KI, dessen geschichtlichen Hintergrund und meine ersten „Gehversuche“ im Bereich der Künstlichen Intelligenz gesprochen. Nachdem ich nun meine ersten GPTs selbst entwickelt bzw. trainiert und diese im GPT Store der Öffentlichkeit zugänglich gemacht habe, möchte ich Euch gerne an meinen bisherigen Erkenntnissen teilhaben lassen.

Bei der Entwicklung meiner GPTs habe ich festgestellt, dass Prinzipien und Techniken, welche ich aus dem Requirements Engineering, Prozessmanagement und Testing / Testmanagement kenne und auch bereits angewendet habe, nicht nur relevant, sondern essentiell für die erfolgreiche Entwicklung und das Training von GPT-Modellen sind. Diese „alten“ Techniken bilden meines Erachtens quasi das Fundament für ein effektives Prompt Engineering, was widerum die Brücke zwischen menschlichem Verständnis und Künstlicher Intelligenz herstellt.

In diesem Artikel möchte ich möglichst verständlich darstellen, wie diese traditionellen IT-Methoden in der innovativen Welt der KI eine neue Bedeutung erlangen und wie sie konkret dazu beitragen können, Effektivität und Zuverlässigkeit von GPT-Modellen zu steigern.

Prompt Engineering: Definition & Prozess

Da das Thema Prompt Engineering noch relativ neu ist und meine Google-Recherche Keine für mich zufriedenstellenden Antworten lieferte, habe ich GPT-4 nach einer angemessenen Definition gefragt:

Prompt Engineering ist eine Disziplin innerhalb der Künstlichen Intelligenz (KI), die sich auf die Gestaltung, Entwicklung und Optimierung von Eingabeaufforderungen (Prompts) konzentriert, um spezifische und präzise Antworten oder Ergebnisse von generativen KI-Modellenwie GPT … zu erhalten. Diese Praxis verbindet technisches Verständnis von KI-Systemen mit kreativer Problemstellung und zielt darauf ab, die Interaktion zwischen Mensch und Maschine effektiver zu gestalten.

GPT-4, Prompt gestellt und generiert am 13.02.2024

Auf Grundlage dieser Definition und aus meiner bisherigen, persönlichen Erfahrung, habe ich für ein besseres Verständnis folgenden Prompt Engineering Prozess erstellt:

Infografik zum Prozess des Prompt Engineerings, welche die Hauptkomponenten und deren Zusammenwirken darstellt. Zentral im Bild ist der Begriff 'Prompt Engineering' mit einer Beschreibung darunter: 'Gestaltung, Entwicklung & Optimierung von Eingabeaufforderungen'. Drei Pfeile weisen von diesem zentralen Punkt aus nach unten auf drei weitere Begriffe. Links steht 'Requirements Engineering' mit der Beschreibung 'Ermittlung, Spezifikation & Verwaltung von Anforderungen'. In der Mitte ist 'Prozess Management' mit 'Planung, Überwachung & Optimierung von Prozessen' und rechts 'Testing / Test Management' mit 'Planung, Steuerung & Durchführung von Tests zur Qualitätssicherung'. Diese Darstellung vermittelt, wie die drei unterstützenden Säulen des Ingenieurwesens zusammenarbeiten, um effizientes Prompt Engineering zu ermöglichen.
Prompt Engineering Prozess

Zusammenspiel der „alten“ Techniken

Requirements Engineering

Im ersten Schritt ist es mehr als sinnvoll, sich grundlegende Gedanken über das WAS zu machen und dieses WAS möglichst präzise sowie verständlich zu beschreiben und zu dokumentieren. Die bereits existierenden Techniken des Requirements Engineering können uns dabei unterstützen. Auch Techniken zur Innovation und Produktentwicklung (z. B. Design Thinking) oder unterstützende Techniken wie Mindmapping, Personas oder Customer Journey bieten hier meines Erachtens eine solide Unterstützung für den Anfang. An dieser Stelle möge man es mir bitte verzeihen (und ich hoffe ich ernte für diese Aussage keinen Shitstorm), doch die Bedürfnisse der Kunden angemessen und ausreichend zu ermitteln gehört für mich nach wie vor in die Teildisziplin des Requirements Engineering – zumindest in der Softwareentwicklung.

Bei meinen selbst entwickelten GPTs habe ich mir z. B. vor Beginn immer folgende Kernfragen gestellt:

Welches Problem oder Hindernis möchte ich mit meiner GPT lösen?

Welche Kernfunktionalitäten soll meine GPT erfüllen?

Welchen echten Mehrwert für den Nutzer soll meine GPT aufweisen?

Würde ich die GPT auch selbst verwenden?

Prozessmanagement

Im zweiten Schritt habe ich mir Gedanken über die prozessuale Perspektive bzw. Herangehensweise der Nutzer gemacht (siehe Prozessmanagement) und mir folgende Kernfragen gestellt:

Was könnte der ideale Prozess für Nutzer dieser GPT sein?

Zu welchem Zeitpunkt im Prozess sind die Kernfunktionalitäten für Nutzer am sinnvollsten?

Dieser Schritt ist meines Erachtens immer sinnvoll und bringt Nutzer und Anwender entsprechenden Mehrwert, da die GPT auf eine Art „prozessuale Herangehensweise“ trainiert wird. Ein kleines Beispiel: Bei einer meiner GPTs war eine der Kernfunktionalität einfach ausgedrückt „Durchsuche basierend den Eingaben des Nutzers spezifische Internetseiten und konsolidiere die gesammelten Informationen für den Nutzer.“ Bei meinen durchgeführten Tests stieß ich dabei vereinzelt auf das Problem, dass die GPT aufgrund von technischen Schwierigkeiten eben nicht auf genau die spezifischen Internetseiten zugreifen konnte. Das war für mich besonders herausfordernd, da dies ja genau eine grundlegende Kernfunktionalität der entsprechenden GPT darstellte und in diesem Fall der von mir angedachte echte Mehrwert für Nutzer nicht mehr gegeben war.

Nach ein paar Überlegungen und weiteren Tests habe ich ein „Fallbackszenario“ implementiert, sodass bei technischen Schwierigkeiten der spezifischen Internetseiten eine grundlegende Internetrecherche durchgeführt werden soll um dem Nutzer die entsprechenden Informationen wie angefordert präsentieren zu können.

Testing & Testmanagement

Der dritte Schritt dient zur Sicherstellung der Produktqualität durch die Durchführung geeigneter Tests (siehe Testing & Testmanagement). Basierend meiner im ersten Schritt aufgenommenen Anforderungen habe ich mir folgende Kernfragen gestellt, um entsprechende Tests zu planen und durchzuführen:

Welche Kernfunktionalitäten muss die GPT erfüllen, um Nutzer einen echten Mehrwert zu bieten?

Wie reagiert die GPT auf unvorhergesehene Ereignisse? (z. B. der Nutzer hält sich nicht an die angedachte „prozessuale Herangehensweise“)

Auf Grundlage dieser Fragen führte ich manuelle Tests durch um sicherzustellen, dass die GPT die im ersten Schritt aufgenommenen Anforderungen zufriedenstellend erfüllt und auch wirklich in der Lage ist, Nutzern den versprochenen Mehrwert zu bieten. Mit den Erkenntnissen aus diesen Tests konnte ich dann die GPT kontinuierlich anpassen und weiter optimieren (iterativer Verbesserungsprozess).

Diese Tests zeigen den Nutzen eines durchdachten Testing-Ansatzes auf: Die GPT funktioniert auch unter suboptimalen Bedingungen zuverlässig, was für ein nahtloses Nutzererlebnis entscheidend ist.

My 2 Cents

Aufgrund meiner Erfahrungen ist beim Prompt Engineering ein komplettes Umdenken in der Herangehensweise erforderlich. Bisher musste in der Entwicklung von Computerprogrammen jeder noch so kleine Schritt und jeder noch so kleine Sachverhalt bedacht und in Code (in Algorithmen) übersetzt werden. Wurde ein Codeschnipsel vergessen, funktionierte das komplette Computerprogramm nicht. Anders als im Zeitalter der Künstlichen Intelligenz.

Eine KI wurde bereits mit Unmengen von Daten trainiert und verfügt über ein breites Grundlagendwissen zu verschiedensten Themenbereichen. Zudem bietet z. B. GPT-4 auch die Möglichkeit, Echtzeitdaten aus dem Internet zu recherchieren. Das Resultat: Anstatt (wie früher) Code in verschiedenen Programmiersprachen zu schreiben um ein Computerprogramm funktionsfähig zu gestalten, ist es nun möglich, die Anforderungen textuell und ohne eine spezifische Programmiersprache zu definieren. Und nicht nur das – aufgrund des trainierten Grundlagenwissens der KI denkt sie quasi mit und kann eigenständig den Kontext erkennen.

Und genau das macht das Prompt Engineering so interessant und spannend.

Quellenangabe:
https://www.bigdata-insider.de/was-ist-prompt-engineering-a-3308973005e97f3927d3f8b63ad3ff2e/, abgerufen am 13.02.2024
https://de.wikipedia.org/wiki/Prompt_Engineering, abgerufen am 13.02.2024
https://platform.openai.com/docs/guides/prompt-engineering, abgerufen am 13.02.2024
https://agilerweg.de/agile-methoden/, abgerufen am 13.02.2024