4. Dezember 2024 von Milena Fluck und Andy Schmidt
Prompt Engineering – Ein kognitiver Ansatz
Ein Prompt ist ein Hinweis oder eine Anweisung, die eine Antwort oder Handlung auslöst und oft verwendet wird, um zum Schreiben, Denken oder Sprechen anzuregen. Dieser kann sehr direkt sein (zum Beispiel „Liste alle Hauptpersonen in diesem Buch auf“), zusätzliche Informationen erfordern (beispielsweise. „Was endete 1964?“) oder offen sein (etwa „Warum glaubst du, dass Menschen in der Nähe von Kraftwerken wohnen wollen?“).
Im (Schul-)Unterricht, insbesondere im Fach Didaktik, steht das Verfassen effektiver Prompts auf dem Lehrplan. Für Lehrkräfte ist das Verfassen guter Prompts unter anderem von entscheidender Bedeutung, um das Denken der Schülerinnen und Schüler anzuregen, ihre Kreativität zu fördern und ein vertieftes Lernen zu ermöglichen. Effektive Prompts helfen, Antworten zu lenken, klare Erwartungen zu schaffen und Gelegenheiten für kritische Reflexion oder Exploration zu eröffnen.
Bei der Formulierung eines Prompts wird Lehrkräften häufig empfohlen:
- 1. Den Kontext, die Definitionen oder die Hintergrundinformationen liefern, die für das vollständige Verständnis des Prompts erforderlich sind.
- 2. Den Prompt verständlich und eindeutig formulieren. Klar angeben, was erwartet wird, und eine präzise Sprache verwenden.
- 3. Den Umfang angeben, indem man die erwartete Länge oder Tiefe der Antwort angibt. Dies hilft den Lernenden einzuschätzen, wie ausführlich ihre Antwort sein sollte.
- 4. Komplexe Prompts in kleinere, überschaubare Teile zu unterteilen oder die Lernenden Schritt für Schritt durch die Beantwortung zu führen.
- 5. Die Prompts mit einer kleinen Gruppe von Schülerinnen und Schülern oder Kolleginnen und Kollegen zu testen, um zu sehen, wie sie die Prompts interpretieren und darauf reagieren. Das Feedback kann dann genutzt werden, um Klarheit, Komplexität und Engagement zu verbessern.
Prompt-Ingenieurinnen und -Ingenieure, die diese Zeilen lesen, denken vielleicht: Was? Das ist doch genau das, was ich mache, wenn ich versuche, eine präzise Antwort von einem Sprachmodell zu bekommen. Ja, es scheint tatsächlich Überschneidungen zwischen dem Schreiben von Prompts für Menschen und für künstliche Agenten zu geben. Gut gestaltete Prompts können die Leistung sowohl von Language Models (LMs) als auch von Menschen erheblich beeinflussen.
Was ist Prompt Engineering?
Ein Prompt ist hier eine Texteingabe, die einem Language Model zur Verfügung gestellt wird, um eine Antwort auszulösen. Er liefert den Kontext oder die Richtung für die Modellausgabe. Prompts sind daher eine praktikable Strategie, um Language Models schnell an neue Domänen und Aufgaben anzupassen. Prompt Engineering ist der Prozess der Entwicklung und Verfeinerung dieser Prompts. Laria Reynolds und Kyle McDonell beschreiben Prompt Engineering 2021 sogar als „Programmieren in natürlicher Sprache“. Die Aufgabe des Prompt Engineerings besteht darin, das Design und den Inhalt des Prompts zu erstellen. Dies kann manuell durch das Entwerfen eines maßgeschneiderten Prompts oder automatisch geschehen. Im Allgemeinen ist es das Ziel einer Promp Ingenieurin oder eines Prompt-Ingenieurs, Prompts zu erstellen, die das Language Model dazu veranlassen, nützliche, relevante und genaue Ergebnisse für die gestellte Aufgabe zu liefern.
Um welche Art von Aufgaben handelt es sich?
Wir beziehen uns hier auf Prompt Engineering im Zusammenhang mit natürlichsprachlichen Aufgaben. Sprache spielt eine fundamentale Rolle in der Kommunikation zwischen Menschen und deren Interaktion mit Maschinen. Daher besteht ein wachsender Bedarf, Language Models zu entwickeln, die komplexe Aufgaben in natürlicher Sprache ausführen können. LMs sind Computerprogramme, die Texte verarbeiten und generieren können, was als Natural Language Processing (NLP) bekannt ist. Typische NLP-Aufgaben sind:
- Textklassifikationen: Entweder nach Sentiment (positiv, negativ und so weiter), Thema (zum Beispiel Sport, Politik) oder Spam (ja oder nein).
- Erkennung benannter Entitäten (Named Entity Recognition, NER): Identifizierung und Klassifizierung von Schlüsselentitäten im Text, wie Marken, Orte, Charaktere und so weiter.
- Wortarten-Tagging (Part-of-Speech Tagging): Zuweisung von Wortarten (wie Nomen, Verb, Adjektiv) zu jedem Wort in einem Satz.
- Übersetzungen: Übersetzen von Texten von einer Sprache in eine andere (etwa aus dem Lateinischen ins Englische).
- Textezusammenfassungen: Erstellen einer Zusammenfassung, indem aus einem längeren Text wichtige Informationen extrahiert oder abstrahiert werden.
- Textgenerierung: Erzeugen menschlich klingender Texte basierend auf einer gegebenen Eingabe, wie das Vervollständigen von Sätzen, das Erstellen von Zeitungsartikeln oder das Schreiben von Fantasy-Geschichten.
Diese Aufgaben begegnen uns täglich, sei es an der Universität, im Beruf oder in der Forschung. In der Schule haben uns die Lehrkräfte oft sehr konkrete Aufgaben und einen Erwartungshorizont vorgegeben. Sobald wir auf uns allein gestellt sind, werden wir entweder von unseren Kolleginnen und Kollegen, von unserem Chef oder von uns selbst ”geprompted”. Im letzteren Fall müssen wir oft Ideen sammeln, Kontextinformationen zusammentragen, ein Ziel definieren und vielleicht selbst nach Beispielen suchen. Dies kann sehr arbeitsintensiv sein. Überlegen Sie sich, wie viele Anforderungen für eine gute User Story notwendig sind, bevor sie erfolgreich implementiert werden kann. Die Qualität des Prompts hat einen großen Einfluss darauf, wie gut wir die damit verbundene Aufgabe lösen.
Wie entwirft man einen guten Prompt?
Während Lehrerinnen und Lehrer in didaktischen Kursen lernen, gute Prompts zu entwerfen, finden sich allgemeine und hilfreiche Richtlinien für das Schreiben von Prompts für Maschinen entweder auf den Webseiten von KI-Anbietern, in allgemeinen Prompting-Guides wie www.promptingguide.ai oder in der wissenschaftlichen Forschung. Letzteres haben wir getan. Dabei haben wir festgestellt, dass einige Prompts präzisere Ergebnisse liefern als andere, dass es aber scheinbar unkontrollierbare Faktoren gibt. Leistungsstarke Prompts funktionieren nicht in allen Language Models gleich gut. Jedes davon (unter anderem GPT-4 oder LLaMa) scheint ein Agent mit spezifischen Eigenschaften und Bedürfnissen zu sein. Sogar die Reihenfolge der semantischen Bausteine kann das Ergebnis beeinflussen.
Ist das Entwerfen eines Prompts für LMs dasselbe wie für Menschen?
2021 haben Reynolds und McDonell Prompts aus der Perspektive der natürlichen Sprache und ihrer Formulierung evaluiert. Bei der Gestaltung eines Prompts müssen die gleichen Überlegungen zu Tonalität, Implikation, Plausibilität, Stil und Mehrdeutigkeit angestellt werden wie bei menschlichen Adressaten, da Language Models wie GPT-3 auf der Basis natürlicher Sprache trainiert werden. Die verschiedenen Komponenten, die ein Prompt enthalten kann, sind unter www.promptingguide.ai zusammengefasst.
Aufbau,Arten und Strukturierung von Prompts
Ihr werdet feststellen, dass ihr die meisten dieser Komponenten bereits in Aufgabenstellungen in der Schule oder sogar bei der Arbeit gesehen habt. Eine Instruktion ist ein klarer und prägnanter Befehl, der dem Language Model sagt, was zu tun ist (um Beispiel „Berechne, wie viele Hühner und Esel auf dem Bauernhof leben.“). Der Kontext liefert zusätzliche Hintergrundinformationen oder Details (beispielsweise „Auf dem Bauernhof leben Hühner und Esel. Alma zählt 245 Köpfe und 144 Beine.“). Übungsbeispiele sind spezifische Eingabe-Ausgabe-Paare, die das gewünschte Ergebnis veranschaulichen – dies könnte ein Beispiel von Heidi sein, die zuvor Ziegen und Murmeltiere auf ihrem eigenen Hof gezählt hat. In letzter Zeit gab es viel Forschung über die Reihenfolge, Anzahl und Passgenauigkeit solcher Beispiele, insbesondere im Rahmen des kontextuellen Lernens. Ein Prompt ohne Übungsbeispiele wird oft als Zero-Shot-Prompt bezeichnet, ein Beispiel als One-Shot und mehrere Beispiele als Few-Shot-Prompt. Zusätzlich gibt es instruktionale Prompts, die ohne Beispiele gut funktionieren, da eine klare Anweisung ein funktionales Schlüsselwort liefert: etwa „Übersetze diesen Text ins Niederländische“ (Schlüsselwort: übersetzen) oder „Tiere nach durchschnittlicher Größe sortieren“ (Schlüsselwort: sortieren). Spezifikationen oder Aufgabenschwerpunkte enthalten detaillierte und beschreibende Prompts, die das Language Model präziser anleiten (zum Beispiel „Erstelle eine Stellenanzeige und achte darauf, dass der Ton formell ist.“). Um einzelne Abschnitte in einem Prompt klar zu trennen, können Trennzeichen (beispielsweise „### Kontext ###“) verwendet werden. Ein Ausgabeindikator kann ebenfalls angegeben werden, der das erwartete Format oder die Struktur der Antwort enthält ( unter anderem „Ausgabe als Hühner: [Anzahl der Hühner], Esel: [Anzahl der Esel]“). Schließlich besteht die Möglichkeit, eine Zielgruppe zu definieren, für die die Antwort auf den Prompt bestimmt ist. Ein Beispiel hierfür wäre: „Was ist Cloud Computing? Erkläre es so, als wäre ich fünf Jahre alt.“
Die Rolle der Token-Beschränkung
Prompts können nur eine maximale Anzahl von Tokens enthalten. Ein Token kann ein vollständiges Wort, ein Teil eines Wortes oder sogar nur ein einzelnes Zeichen sein. 100 Tokens entsprechen ungefähr 75 Wörtern in der englischen Sprache. Je nach GPT-Modell können bis zu 128.000 Tokens für den Prompt und die entsprechende Antwort verteilt werden. Eine sorgfältige Überlegung jedes Zeichens innerhalb eines Prompts kann notwendig sein. Für den Menschen spielt auch die Größe des Prompts eine Rolle. Menschen haben wie Maschinen ein begrenztes Arbeitsgedächtnis. Sie können nur eine bestimmte Anzahl von Wörtern auf einmal verarbeiten. Jeder, der in einer agilen Umgebung arbeitet, kennt diese Geschichten auf einer Pinnwand, die kein Ende zu haben scheinen und eine Reihe nicht identifizierbarer Unteraufgaben in einem Wust von Text verbergen. Wenn Aufgaben nicht miteinander verbunden sind, raten wir, diese voneinander zu trennen. Wenn jedoch eine komplexe Aufgabe in mehrere Schritte unterteilt wird, zum Beispiel durch schrittweise Prozesse wie Debattieren, Planen oder sequenzielle Argumentation, kann dies zu einer effizienteren Nutzung des analogen Arbeitsgedächtnisses führen. Wie genau ihr den Prompt in Schritte aufteilt, hängt davon ab, wie stark die nächsten Schritte auf dem Kontext der vorherigen basieren. Die maximale Anzahl von Tokens muss nicht in einer Eingabe verwendet werden. Im Beispiel von ChatGPT könnt ihr den Text eingeben und mehrmals auf den Sende-Button drücken – in einer Diskussion zu einem Thema zählt dies als ein Prompt. Sobald jedoch die maximale Anzahl von Token erreicht ist, beginnen die ersten Token außerhalb des Rahmens zu laufen und haben keinen Einfluss mehr auf die laufende Konversation.
Metaprompt-Programmierung: Mehr Effizienz durch selbstgenerierte Prompts
Darüber hinaus präsentieren Reynolds und McDonell das Metaprompt-Programmieren, das es Language Models ermöglicht, unabhängig weitere nützliche Prompts für die Lösung der jeweiligen Aufgabe mit Hilfe sogenannter Metaprompts zu generieren. Die Verwendung von Metaprompts kann es Language Models erlauben, Probleme effektiv zu lösen, indem sie ihre eigenen aufgabenspezifischen Anweisungen nutzen, ohne dass Trainingsexemplare erforderlich sind. Das Vorgehen verbraucht wiederum weniger Tokens. Beispiele für ein Metaprompt wären: „Lass uns das Problem lösen, indem wir es in mehrere Schritte aufteilen“, „Liste die Vor- und Nachteile auf, bevor du eine Entscheidung triffst“ oder „Stelle Fragen zu dem Thema, bevor du versuchst, die Frage zu beantworten“.
Selbstüberprüfung und Reflexion für verbesserte Ergebnisse
Ein weiterer typischer Ansatz, an den wir uns wahrscheinlich alle aus den letzten Minuten vor der Einreichung einer Prüfung erinnern, sind Verifizierungsmechanismen. Wir überprüfen sorgfältig unsere Antworten, reflektieren, fügen hinzu und passen an. Unter anderem haben Chung Wang und andere Autoren 2023 Leistungsverbesserungen bei der Verwendung von Selbstüberprüfungsmethoden gezeigt, bei denen der Lerner im Nachhinein über seine Antworten nachdenken muss. Stellt euch vor, das Language Model hat OASIS als Sehenswürdigkeit in London extrahiert, weil anscheinend jeder in letzter Zeit dorthin geht und Tickets kauft. Man könnte sich fragen, ob OASIS wirklich eine Sehenswürdigkeit ist. Bei näherer Betrachtung könnte das Language Model erkennen, dass OASIS eher eine Band ist. Ein weiteres Beispiel für Reflexion vor der endgültigen Eingabe ist die „Take A Deep Breath“-Strategie, die beim Prompting in der Verarbeitung natürlicher Sprache verwendet wird. Sie besteht darin, einen LM zu einer detaillierteren oder durchdachteren Antwort zu veranlassen, indem man ihn explizit auffordert, vor der Antwort „tief Luft zu holen“, und ihn so zum Nachdenken oder zur Reflexion anregt. Diese Technik zielt darauf ab, die Qualität und Kohärenz der Ausgaben des Language Model zu verbessern, indem ein Moment des Nachdenkens simuliert wird, der zu präziseren und umfassenderen Antworten führt.
Analogie und Perspektivwechsel in der Prompt-Gestaltung
Darüber hinaus nutzen wir Analogien in der menschlichen Kommunikation, indem wir memetische Konzepte wie Charaktere als Stellvertreter für eine Absicht verwenden. Zum Beispiel: Was würde deine Oma denken, wenn sie davon wüsste? Jede Person wird uns auf die gleiche Frage eine individuelle Antwort geben, die auf ihren subjektiven Erfahrungen, Meinungen und Gedanken basiert. Aus diesem Grund sammeln wir weiterhin Antworten von verschiedenen Personen auf die gleiche Frage oder versuchen, verschiedene Perspektiven einzunehmen, um eine gut durchdachte Antwort zu finden. Laut Reynolds und McDonell hat GPT-3 die Fähigkeit, berühmte Persönlichkeiten wie Mahatma Gandhi oder Margaret Atwood zu simulieren, was Zugang zu verschiedenen Vorurteilen und kulturellen Informationen über beispielsweise moralische Fragen bietet. Tipp: Sagt ChatGPT einfach, dass ihr Barney Stinson seid und fragt ihn nach Dating-Tipps.
Fazit
Es ist nicht einfach, präzise, eindeutige und effiziente Prompts zu entwerfen. Es ist mindestens genauso schwierig, Prompts für künstliche Agenten zu entwerfen, wie Prompts für Menschen zu entwerfen, wenn man sie zu Höchstleistungen anspornen will. Im Prinzip könnte man Pädagogen als gut ausgebildete „Programmierer für natürliche Sprache” betrachten. Obwohl Maschinen natürlich nicht wie Schülerinnen und Schüler in der Schule sind, gibt es doch wichtige Ähnlichkeiten, bei denen die Forschung darüber, wie man gute Prompts in Bildung, Kommunikation und kognitiven Studien schreibt, unserer Meinung nach die Untersuchung des Prompt Engineering leiten kann.