Ich scannte 1000+ Prompts, damit Du es nicht tun musst: Die 10 besten Techniken

9. April, 2024 | Maximilian Vogel

Prompt Engineering Kurse: The Art of the Prompt.

Prompts, prompts, prompts. Kürzlich habe ich eine lange Liste von Prompts zusammengestellt. Dabei habe ich unendlich viele Ideen mit echten KI-gestützten Anwendungen ausprobiert. Manche haben gut funktioniert, manche überhaupt nicht.

In diesem Beitrag möchte ich alle meine Erkenntnisse teilen – eine Art „Best-of“. Ich beschreibe ausführlich die 10 besten Ansätze, die mir geholfen haben, ein besserer Prompt Engineer zu werden und wie man diese am besten anwendet. Einige der hier besprochenen Ideen funktionieren, wenn man sie auf die Playgrounds von ChatGPT oder Bard kopiert. Viele von ihnen können helfen, Anwendungen zu entwickeln, die auf den APIs des Modells basieren (wie die OpenAI API).

Aber warum ist Prompt Design überhaupt wichtig? Ein perfekt designter Prompt kann:

Jetzt geht’s aber los!

Die 10 wichtigsten Prompting-Ansätze

und was sich genau dahinter verbirgt, wird im Laufe des Artikels erklärt. Hier ein kleiner Überblickt der folgenden Themen:

  1. Hinzufügen spezifischer, beschreibender Anweisungen (mit Cheat Sheet)
  2. Definition des Ausgabeformats
  3. Beispiele mit wenigen Ausnahmen
  4. Integration von „weiß nicht“/“will nicht antworten“-Fälle
  5. Verwendung von Gedankenketten
  6. Nutzen von Prompt-Vorlagen, keine statischen Prompts
  7. Hinzufügen von Datenkontext
  8. Einbeziehung von Gesprächsverlaufen
  9. Formatierung des Prompts
  10. Alles zusammenbringen: Die Anatomie eines professionellen Prompts (mit Cheat Sheet)

1) Hinzufügen spezifischer, beschreibender Anweisungen

Ohne gezielte Anweisungen erhält man oft langatmige, manchmal vage Antworten, in denen es um alles Mögliche geht.

Wenn in einer Eingabeaufforderung keine spezifischen Anweisungen gegeben werden, führt dies häufig zu keiner eindeutigen Antwort von ChatGPT

Laaaaangweilig. Das KI-Modell gibt nur geklonte Antworten wider. Das braucht kein Mensch. Schauen wir uns an, wie eine spezifische Anweisung (nicht nur „Beantworten Sie die Fragen …“) genau die Antwort hervorbringen kann, die man in einem spezifischen Gesprächskontext benötigt.

Ein Prompt mit einer kurzen aber hilfreiche Anleitung

Perfekt! Es klappt!

Die wichtigsten Anforderungen müssen in den Prompt übernommen werden. Dabei gilt spezifisch und beschreibend zu sein, um bessere Ergebnisse zu erzielen.

Viele Sprachmodelle sind in ihren Kernfähigkeiten begrenzt, sie können keine gute Suchmaschine, keinen Taschenrechner oder einen bildenden Künstler simulieren, weil sie nicht über die entsprechenden Recherche- oder Verarbeitungsfähigkeiten verfügen.

2) Definition des Ausgabeformats

Neben einer kurzen Erwähnung des Ausgabeformats in der Anweisung ist es oft hilfreich, ein wenig ausführlicher zu sein: Geben Sie ein Antwortformat an, das es Ihnen erleichtert, Teile der Antwort zu parsen oder zu kopieren.

Ein strukturiertes Ausgabeformat in einem Prompt.

Wenn man keine vollständig formatierte Ausgabe wie JSON, XML oder HTML benötigt, reicht oft auch eine Skizze des Ausgabeformats.

Ein einfach strukturiertes Ausgabeformat. Bildnachweis: Maximilian Vogel (mit ChatGPT)

Die Definition des Ausgabeformats kann bei der Arbeit mit Modellen auf Playgrounds oder Webschnittstellen von großer Hilfe sein. Es ist absolut notwendig, wenn der Zugriff auf Modelle über eine API erfolgt und die Modellantwort aus mehreren Komponenten besteht, die automatisch getrennt werden müssen, bevor eine Antwort an den Benutzer gesendet wird.

3) Beispiele mit wenigen Ausnahmen

Jedes hinreichend ausgefeilte Modell kann einfache Fragen auf der Grundlage von „Zero-Shot“-Aufforderungen beantworten, ohne dass ein Lernen anhand von Beispielen erforderlich ist. Dies ist eine Spezialität von Basismodellen. Sie verfügen bereits über Milliarden von Lern-„Shots“ aus dem Prä-Training. Um jedoch komplizierte Aufgaben zu lösen ist es besser, mit konkreten Beispielen zu arbeiten.

Stell Dir vor, Du hast gerade die Aufgabe erklärt und trainierst nun das Modell mit Beispielen: Wenn ich dies frage, dann antworte das. Du gibst 2, 3, 5 oder 8 Beispiele an und lässt das Modell dann die nächste Frage selbst beantworten. Die Beispiele sollten im Format der Frage und der erwarteten Modellantwort vorliegen. Sie sollten nicht paraphrasiert oder nur zusammengefasst werden.

Few-shot Beispiele in Prompts.

Es funktioniert. „Vertrauen“ ist eine interessante Frage, ich würde mich eher für Beweise im Krankenhaus entscheiden, aber darüber lässt sich streiten. Hier muss man nicht einmal ein Ausgabeformat beschreiben, die Beispiele definieren bereits ein Ausgabeformat.

4) Integration von „weiß nicht“/“will nicht antworten“-Fälle

Bei der Entwicklung eines Assistenten, der bei der Bedienung eines Reinigungsroboters unterstützt, kann das Modell so trainiert werden, dass es nicht auf themenfremde Fragen antwortet. Dies kann für die sachliche Richtigkeit, die Haftung oder den Markenwert entscheidend sein.

Standardfälle und Grenzfälle

Es ist ratsam, nicht zu viele ähnliche Beispiele zu verwenden, sondern in den Beispielen verschiedene Kategorien von Fragen zu untersuchen. Im Fall unseres Reinigungsroboters könnte das sein:

Standardfälle:

Grenzfälle:

Der Umgang mit themenfremden Fragen oder Fragen, die der Bot auf der Grundlage des Eingabematerials nicht beantworten kann, ist für professionelle Geschäftsanwendungen entscheidend. Andernfalls beginnt das Modell zu halluzinieren und gibt dem Benutzer möglicherweise falsche oder schädliche Anweisungen zur Verwendung eines Produkts.

5) Verwendung von Gedankenketten

Sprachmodelle lesen nicht. Sie konzeptualisieren keine Aufgaben und verstehen keine Fragen. Sie produzieren eine Antwort mit einer hohen stochastischen Wahrscheinlichkeit, die auf Ketten von Token basiert.

Im nächsten Beispiel (links) sehen wir, dass das Modell die Frage nicht richtig verarbeitet – zugegeben, es handelt sich um eine recht komplizierte Frage.

Aber im Gegensatz dazu (auf der rechten Seite): Zwingen wir das Modell, Schritt für Schritt zu denken, kann es eine richtige Antwort erzeugen. Die beiden Arten des Denkens entsprechen dem „System-1- und System-2-Denken“ von Daniel Kahneman aus seinem Buch Thinking, Fast and Slow.

System 1 versus System 2 (Chain-of-Thought)

Auf der rechten Seite haben wir ein Beispiel eingefügt, das dem Modell hilft zu verstehen, wie man Daten verarbeitet und wie man „langsam“ denkt. Achten Sie auch hier darauf, dass Sie entweder in der Anweisung oder in den Beispielen ein leicht zu scannendes Ausgabeformat angeben (z. B. „\nResult: species‘ names“). Dies hilft, den denkenden Teil der Ausgabe zu überspringen und nur das Ergebnis („Cats“) zu präsentieren.

Zur weiteren Lektüre: die wissenschaftliche Arbeit zur Einführung der Gedankenkette: https://arxiv.org/abs/2201.11903

Wie man korrekt Prompt-Vorlagen nutzt (6.), Datenkontext hinzufügt (7.), Gesprächsverlaufe einbezieht (8.), den Prompt formatiert (9.) und alles zusammenbringt (10.) kann hier nachgelesen werden. Und für noch mehr spannende Artikel zum Thema Prompt Engineering, Künstlicher Intelligenz oder LLM lohnt sich ein Blick auf https://medium.com/@maximilian.vogel.