»ChatGPT in der Industrie« – Teil 2
Das Prompt Engineering
Das Potenzial von ChatGPT ist riesig. Aber wie sind gute Anfragen an ChatGPT aufgebaut oder technisch formuliert? Wie funktioniert die systematische Formulierung effektiver Prompts? Dieser Teil der Artikelserie gibt Antworten.
Der erste Teil dieser Artikelserie ging auf die Evolution und das enorme Potenzial von Large Language Models (LLMs) wie ChatGPT ein. Er hat die möglichen Auswirkungen auf unsere Industrieunternehmen und unser Arbeitsleben umrissen. Dieser Artikel lenkt das Augenmerk auf einen speziellen Aspekt: Wie sind gute Anfragen an ChatGPT aufgebaut oder technisch formuliert? Wie funktioniert die systematische Formulierung effektiver Prompts? Diese Fertigkeit genannt Prompt Engineering bildet das Kernstück für den effizienten Einsatz von LLMs in Unternehmensanwendungen und ist ein wichtiger Schlüssel zur Entfaltung des vollen Potenzials von ChatGPT.
Um thematisch in das Thema Prompt Engineering einzusteigen, konzentriert sich dieser Artikel auf die direkte Interaktion mit einer künstlichen Intelligenz wie ChatGPT über ein Webinterface. Dieses Anwenderlevel entspricht bildlich gesehen der Spitze des Eisberges im Umgang mit LLMs. Denn neben dem explizit vom Anwender formulierten Prompt existieren eine Vielzahl weiterer Einflussgrößen, welche die Ergebnisqualität bestimmen.
Bild 1. Die schematische Darstellung der unterschiedlichen Ebenen von Prompts für die direkte Kommunikation über ein Webinterface (Anwenderebene) bis hin zum Training eigener Modelle, das besondere Werkzeuge und tiefes Wissen über maschinelles Lernen voraussetzt.
© talsen teamAus den unterschiedlichen Ebenen in Bild 1 wird schnell ersichtlich, dass die jeweiligen ganz konkreten Varianten für Prompts letztlich von dem technischen und datentechnischen Unterbau des Modells abhängen. Auf der in diesem Artikel beschriebenen Anwenderebene sind diese Einflussgrößen vom Anbieter fest vorherbestimmt und für uns als Anwender nicht veränderbar.
Im weiteren Verlauf dieses Artikels wird die Perspektive für die prompte Stellung und Formulierung aus Sicht von ChatGPT unter Verwendung des Modells gpt-4 des Anbieters OpenAI beschrieben. Dieses stellt zum aktuellen Zeitpunkt die leistungsfähigste Plattform dar und ist somit sehr gut für den produktiven Einsatz im Unternehmen geeignet. Es ist allerdings zu erwarten, dass im Laufe diesen Jahres weitere Firmen wie Google oder Facebook ebenfalls Plattformen mit Modellen veröffentlichen, die vergleichbare oder eventuell sogar bessere Eigenschaften aufweisen.
Die grundlegende Regel für einen guten Prompt, wie sie von den Machern von ChatGPT formuliert wurden (Quelle: https://learn.deeplearning.ai/chatgpt-prompt-eng/lesson/1/introduction), lässt sich wie folgt zusammenfassen: Ein guter Prompt entspricht in etwa der Arbeitsanweisung an eine Person, die zwar die grundlegenden Fähigkeiten besitzt, die Aufgabe zu lösen, aber keine spezifischen Informationen oder einen konkreten Kontext dazu hat. Falls nun eine Aufgabe unbefriedigend oder nicht korrekt erfüllt wird, ist dies oft die Folge einer zu schwammigen Aufgabenstellung, der zudem die notwendigen Begleitinformationen für eine erfolgreiche Bearbeitung fehlen.
Der »gute« Prompt
Im Gegensatz dazu zeichnet sich ein guter Prompt somit durch klare, spezifische Anweisungen aus, die durch Trennzeichen, strukturierte Ausgabeformate und die jeweilige Überprüfung der notwendigen Informationen und Bedingungen für die erfolgreiche Erfüllung der Aufgabe unterstützt werden. Ein wichtiges Prinzip ist dabei, dass dem Modell ausreichend „Zeit zum Nachdenken“ gegeben wird. Damit ist die Formulierung von Prompts im Sinne von Gedankenketten oder Bearbeitungsschritten gemeint, denen das Modell folgen muss, bevor eine endgültige Antwort gegeben wird. Diese Art die Denkprozesse sichtbar zu machen, führt nicht nur zu einer einfacheren Bewertung des Ergebnisses, sondern ist auch für das Modell von Vorteil, um die richtigen Zusammenhänge zu erkennen und daraus die richtigen Schlussfolgerungen zu ziehen. Einfache konkrete Beispiele für gute Prompts, die diese Regeln befolgen, sind etwa ein Prompt für die Zusammenfassung und Sortierung von manuell gemachten Besprechungsnotizen:
Prompt 1:
- Fasse die gegebenen Besprechungsnotizen in einem Absatz zusammen.
- Schreibe dann eine Punkte-Liste der Sprecher und jeweils ihrer wichtigsten inhaltlichen Beiträge.
- Liste zum Schluss die nächsten Schritte oder Handlungsempfehlungen auf, die von den Sprechern vorgeschlagen wurden, falls vorhanden.
Für diesen Prompt kamen folgende konkrete Regeln und Prinzipien zur Anwendung:
- Trennzeichen verwenden: der Prompt trennt durch die Aufzählungszeichen klar die verschiedenen Teilaufgaben (Zusammenfassung, Auflistung der Sprecher, nächsteSchritte).
- Frage nach einer strukturierten Ausgabe: Es wird eine strukturierte Ausgabe in Form einer Zusammenfassung und einer Liste gefordert.
- Gib explizit die Schritte an, die zum Ausführen der Aufgabe erforderlich sind. Dies entspricht der Regel „gib dem Modell Zeit zum Nachdenken“.
Ein weiteres sehr häufiges Szenario sind Übersetzungen von Texten in unterschiedliche Sprachen. Hier ein entsprechender Beispiel Prompt, der neben der reinen Übersetzung noch eine weitere strukturelle Anforderung und eine sprachliche Adaption mit beinhaltet:
Prompt 2:
- Übersetze die gegebene technische Dokumentation von Deutsch auf Englisch. Dabei soll die Struktur und der Aufbau des Textes beibehalten werden. Versuche, den Text so klar und einfach wie möglich zu gestalten, ohne dabei technische Details oder die Genauigkeit zu verlieren.
Ziel ist es, den Text verständlicher für Leser ohne spezielle technische Kenntnisse zu machen, während die wesentlichen Informationen und die technische Korrektheit erhalten bleiben. Bitte gib auch an, wenn bestimmte technische Konzepte nicht weiter vereinfacht werden können, ohne ihre Bedeutung zu verfälschen:
``` ... Hier steht der Text der technischen Dokumentation ….```
| Allgemein strukturierter Prompt |
|---|
|
Ein Beispiel für einen allgemeinen strukturierten Prompt als Ausgangspunkt für einen komplexen Prompt, der zusätzlichen Kontext und eine mehrstufige Bearbeitung beinhaltet:
|
Bei genauer Analyse des Prompt, wird die Verwendung folgender Regeln sichtbar:
- Klare und spezifische Anweisungen: die geforderte Übersetzungsaufgabe mit ihren spezifischen Randbedingungen ist präzise und konkret formuliert.
- Trennzeichen verwenden: Der Prompt trennt klar die Anweisung von dem zu bearbeitenden Text durch die dreifachen Hochkommas (```… ```).
- Frage nach einer strukturierten Ausgabe: Die erwartete Struktur des übersetzten Textes ist definiert durch die Struktur des Ausgangsdokuments.
- Gib dem Modell Zeit zum Nachdenken: Durch die Aufforderung bei kritischen Formulierungen oder zu starken Vereinfachungen eine entsprechende zusätzliche Erklärung zu erstellen, werden die Modellannahmen sichtbar gemacht und können somit falls erforderlich einfacher händisch nachträglich korrigiert werden.
Diese beiden Beispiele und die jeweiligen Analysen zeigen auf, was sich hinter einer einfachen Formulierung alles an Mechanismen verbergen kann, welche die Ergebnisqualität sehr stark beeinflussen. Ohne den Anspruch auf Vollständigkeit erheben zu wollen, lassen sich aus unserer praktischen Erfahrung heraus bestimmte generelle Prompt-Varianten für unterschiedliche Einsatzzwecke unterscheiden und beschreiben:
- Einfacher Prompt („beschreibe, erstelle, sortiere, …“): einfache Anfragen, die kontextbezogen formuliert werden beziehungsweise Teil einer größeren Anfrage sind.
- Strukturierter Standard-Prompt („Gegeben: …, Dann: …“): Systematische Informationseingabe, die erforderliche Details für eine gute Aufgabenbearbeitung sowie alle erforderlichen Instruktionen und Rollendefinitionen beinhaltet. Diese Art der Formulierung erlaubt eine gute Wiederholbarkeit des Prompts und reduziert ungewollte Fremdeinflüsse. Sie sollte die Mehrzahl der verwendeten produktiven Prompts bilden.
- Kommando-Prompt („Ich befehle“ …, oder alternativ: „es ist sehr wichtig für mich“): Wissenschaftliche Veröffentlichungen legen nahe, dass sogenannte emotionale Trigger einen Einfluss auf die Ergebnisqualität heutiger LLMs haben. Besonders bei komplexen Anfragen kann sich der positive Effekt dieser Trigger deutlich bemerkbar machen.
- Kollaborations-Prompt oder SplitGPT („Du bist zwei Personen …“): Durch die Vergabe unterschiedlicher Rollen innerhalb eines Chats können unterschiedliche Perspektiven bei der Ausarbeitung des Ergebnisses aktiv mitberücksichtigt werden. Dies entspricht einer besonderen Form des Prinzips, dem Modell Zeit zum Nachdenken zu geben, indem es gleichzeitig in die Anfrage eingearbeitet wird. Vor allem bei mehrstufigen Denkaufgaben kann so die Ergebnisqualität merklich verbessert werden.
Ein konkretes Beispiel für einen Prompt, der die Ausarbeitung aus zwei unterschiedlichen Perspektiven anfordert, lautet wie folgt:
- Die Aufgabe besteht darin, <hier wird die konkrete Aufgabenstellung formuliert>.
- Du bist nun ein Expertenduo, bestehend aus <Rolle X> und <Rolle Y>. Während der eine einen Vorschlag unterbreitet, analysiert und kritisiert der andere diesen oder macht einen verbesserten Gegenvorschlag. Dieser Dialog geht so lange weiter, bis mindestens einige Male die Rollen getauscht wurden oder bis die Experten zu einer Übereinkunft gelangen.
- Gib mir zum Abschluss das gemeinsame, detaillierte Diskussionsergebnis <Ergebnisname> der Aufgabe ohne Abkürzungen und ohne Platzhalter.
Die in den spitzen Klammern beschriebenen Inhalte sind bei diesem Beispiel jeweils durch die eigentliche Aufgabenbeschreibung, die zu benennenden Rollen oder das spezielle erwartete Ergebnis zu ersetzen.
Eine Handlungsempfehlung
Bild 2. Allgemeiner iterativer Arbeitsprozess abgeleitet aus der testgetriebenen Softwareentwicklung und adaptiert an die Erfordernisse des systematischen Prompt-Engineerings.
© talsen teamTrotz aller technischen Errungenschaften befinden wir uns in einer sehr frühen Phase der Entwicklung von LLMs. Zum derzeitigen Stand der Technik ist vor allem die menschliche Interaktion oder anders formuliert der menschlich erzeugte Prompt der Schlüssel zum Erfolg. In der nächsten technischen Entwicklungsphase werden die Anzahl der notwendigen manuellen Interaktionen reduziert werden und der Autonomiegrad der LLMs zur Lösungsfindung erhöht. Um hier mithalten zu können ist es wichtig, ChatGPT nicht nur im Sinne einmaliger Anfragen zu bedienen. Es ist wichtig, die erfolgreichen Muster hinter den eigenen Prompts zu erkennen und zielgerichtet Prompt Templates Vorlagen zu arbeiten. In der aktuellen Anwendungspraxis hat sich dadurch die Unterscheidung in die unterschiedlichen oben benannten Prompt-Varianten sehr bewährt. Für die weitere schrittweise Erarbeitung und Verfeinerung von Prompts hat sich ein iteratives Vorgehen, angelehnt an den testgetriebenen Softwareentwicklungs-Prozess, sehr bewährt. Die Prompts werden dabei wie Quellcode einer Software gehandhabt, was das Problem des Änderungsmanagements und der Nachvollziehbarkeit deutlich verringert.
Zur Erinnerung: Die Prompt-Beispiele beziehen sich auf den Einsatz von ChatGPT mit dem Modell GPT-4. Für die Arbeit mit unterschiedlichen Modellen im Alltag lohnt sich die Betrachtung von Prompts und Code, um optimale Formulierungen auch für diese Modellvarianten im Blick zu haben.


















