"A journalist who is also a bad programmer, stylized in the style of Gary Larson"

[Ursprungsartikel August 2023] Besser prompten: Gib der KI gut strukturierte ROMANE!

Entwickle nahezu magische Fähigkeiten, die KI zu beherrschen! Werde zum Prompt Engineer! Bring Text-KI wie ChatGPT dazu, dass sie genau das tut, was du von ihr willst. Reich und berühmt und erfolgreich dank nur eines kurzen Blogposts! Mein bewährtes Rezept mit Geld-Zurück-Garantie – nach dem Klick.


Ursprungsartikel vom 17.8.2023 – die aktualisierte, überarbeitete Fassung findet sich hier; ein Artikel, der ein Jahr ROMANE-Regel zum Anlass nimmt, sie pdate, 20.8.2024: Ein Jahr ROMANE-Formel – für mich Anlass, sie im Lichte neuerer KI-Studien neu zu bewerten.


Beitragsbild: Midjourney, “/imagine A grifter salesman grinning, selling tools to a dumb robot”

Naja, Rezept. Und Geld zurück gibt’s auch nicht. (Ich nehme ja auch keins.) Aber ich finde, dieser kleine Merksatz ist ganz nützlich, um optimale Ergebnisse aus ChatGPT und anderen Sprach-KI herauszukitzeln:

Setze nichts voraus. Gib der KI gut strukturierte ROMANE.

“Gut strukturiert” heißt einfach, dass man die Anweisungen so klar wie möglich gliedern sollte: Durch Absätze, durch Überschriften wie “TEXT:”, durch Aufzählungen mit Bindestrichen. Und ROMANE ist natürlich eine Abkürzung. Die Buchstaben stehen für:

  • (R)olle
  • (O)bjective/Oberstes Ziel
  • (M)eta-Anweisungen
  • (A)nwendungsbeispiele
  • (N)ützliche Details
  • (E)mpfänger

Zu jedem Buchstaben gibt’s eine kurze Erklärung – in der ich begründe, warum das bei Sprachmodellen wie ChatGPT funktioniert. Ein wenig Theorie-Wissen über die Sprachmodelle und ihre Arbeitsweise gibt’s als Bonus.

Praxisbeispiel: SEO-Spezialist-in-a-box

Als kleine Übungsaufgabe wollen wir uns anschauen, wie ChatGPT mir suchmaschinenoptimierte Überschriften zu einem Text generiert, damit er über Google und Co. besser zu finden ist. Die SEO-Expert:innen mögen es mir verzeihen, ich hoffe aber, dass das Beispiel anschaulich ist.

1. R wie Rolle

Wenn wir ChatGPT aufrufen, ist das Sprachmodell gleichzeitig allwissend und ahnungslos. Auch wenn es aus seinen Trainingsdaten eine unfassbare Breite an Ideen und Informationen kennt, weiß es nicht, welche Art Texte es daraus generieren soll. Und nein: aus den vorigen Chats mit uns hat ChatGPT nichts gelernt, es fängt wieder bei null an. Wir müssen dem Sprachmodell jetzt auf möglichst effiziente Weise vermitteln, welche Art Text es für uns generieren soll.

Wie: Gib dem Sprachmodell eine Rolle vor, in der es antworten soll – und die die nötigen Fähigkeiten für die Aufgabe mitbringt:

Du bist Spezialistin für Suchmaschinen-Optimierung.

Warum es funktioniert: Die KI funktioniert anders als der menschliche Verstand – sie entwickelt kein mentales Modell der Aufgabe, sondern versucht, passende Texte zu generieren. Was passend ist, das bestimmt sie aus den Wörtern, die sie gesehen und schon generiert hat – und bewegt sich von dort aus weiter zu neuen Wörtern, die dann Sätze, Argumente und Lösungen bilden.

Vielleicht kann man es sich so vorstellen: Das Sprachmodell hat alle Themen und Argumentationsweisen und Schreibstile, denen es jemals im Training begegnet ist, gewissermaßen auf einer Karte verzeichnet. Es kommt nun darauf an, das Sprachmodell in die richtige Gegend dieser Karte zu schicken.

Generiert mit Midjourney: "A historical map showing words, styles, and topics."

Eine Rolle ist eine sehr kompakte Beschreibung für Themen und Argumentationsstrukturen – und erhöht die Chance, dass das Modell passende Worte generiert.

2. O wie Objective

Was wollen wir überhaupt erreichen? Das müssen wir der KI vorgeben; wir sollten nicht voraussetzen, dass sie zufällig einen Text generiert, der zu unserer Aufgabe passt.

Wie: Sag dem Sprachmodell, welches Objective – welches oberste Ziel – es verfolgen soll:

Du bist Spezialistin für Suchmaschinen-Optimierung. Generiere 10 Überschriften für den Text, die von Suchmaschinen wie Google gut gefunden werden. 

Warum es funktioniert: Mit der Rollenbeschreibung und der Beschreibung des obersten Ziels hat das Sprachmodell gewissermaßen die wichtigsten Marker auf seiner Karte – und kann in der Umgebung nach passenden Worten suchen.

Rolle und oberstes Ziel – damit kann das Sprachmodell die meisten Aufgaben lösen, auch wenn wir sie damit nicht sehr genau beschrieben haben. Das Modell ist sehr gut darin, Leerstellen zu füllen; wie es sie füllt, dabei spielt der Zufall eine große Rolle.

3. M wie Meta-Anweisungen

Meta-Anweisungen – Anweisungen über Anweisungen: Wir helfen dem Sprachmodell, wenn wir ihm Hilfestellungen geben, seine vorher definierte Aufgabe zu lösen – wie man die große Aufgabe in kleinere Teilaufgaben zerlegt.

In unserem SEO-Beispiel haben wir dem Sprachmodell eine Aufgabe gestellt, die ziemlich viel implizites Wissen voraussetzt: “Generiere Überschriften, die von Google gut gefunden werden.” Besser wird das Ergebnis, wenn wir die Aufgabe in zwei Schritte zerlegen: Die wahrscheinlichsten Suchwörter finden, und dann daraus Überschriften generieren.

Wie: Gib der Maschine Zwischenschritte vor. ChatGPT eignet sich besonders gut dafür, zuerst nach diesen Zwischenschritten zu fragen und sie dann weiter zu verarbeiten, man kann es aber auch alles in einen Prompt packen:

Du bist Spezialistin für SEO und verfasst suchmaschinenoptimierte Überschriften. Du suchst zu einem Text die Suchbegriffe, unter denen Nutzer den Text am ehesten suchen würden, und verfasst auf dieser Grundlage jeweils 10 Überschriften-Vorschläge.
###
TEXT: ...

Andere Meta-Anweisungen sind zum Beispiel:

  • Fasse zunächst die Aufgabe zusammen.
  • Gehe Schritt für Schritt vor. Begründe jeden Schritt.
  • Schreibe zunächst 10 Vorschläge, verwirf sie, dann schreibe weitere 10 Vorschläge.

Warum es funktioniert: Der KI-Spezialist und OpenAI-Mitgründer Andre Karpathy sagt es so:

Especially if your tasks require reasoning, you can’t expect the transformer to do too much reasoning per token. And so, you have to really spread out the reasoning across more and more tokens. For example, you can’t give a transformer a very complicated question and expect it to get the answer in a single token. There’s just not enough time for it. These transformers need tokens to “think”.

Besonders, wenn die Aufgabe logische Schlüsse erfordert, kann man nicht erwarten, dass das Transformer[-Modell] zu viele logische Schlüsse pro Token schafft. Also muss man die Schlüsse über mehr und mehr Token verteilen. Zum Beispiel kann man einem Transformer keine sehr komplizierte Frage geben und dann erwarten, dass er die Antwort in einem einzigen Token hinbekommt. Da reicht die Zeit nicht. Diese Transformer brauchen Tokens, um zu “denken”.

(Den Vortrag und das Transkript von Karpathy findet man hier.)

4. A wie Anwendungsbeispiele

Wir wissen, dass ChatGPT kein Gedächtnis hat und aus den Chats mit uns auch nichts dazu lernt. Wir fangen also jedes Mal bei null an – und müssen auf das leere Blatt des neuen Chats jetzt möglichst fokussiert Informationen übergeben.

Nehmen wir an, die Redaktion, für die wir schreiben, formatiert ihre Überschriften – sie beginnen alle mit einer Ortsmarke und sollen eher umgangssprachlich formuliert sein. Das zeigen wir der Maschine am Beispiel.

Wie: Wir erweitern unseren Prompt um einige Beispiele für Überschriften aus Stichworten.

Du bist Spezialistin für SEO und verfasst suchmaschinenoptimierte Überschriften. Du suchst zu einem Text die Suchbegriffe, unter denen Nutzer den Text am ehesten suchen würden, und verfasst auf dieser Grundlage jeweils 10 Überschriften-Vorschläge.
###
TEXTZUSAMMENFASSUNG: In Kassel hat ein ausgebrochenes Känguru für Aufsehen gesorgt. Das Tier war vom Transporter eines Privatzoos geflüchtet und war durch die Innenstadt gehüpft, bis die Polizei es einfangen konnte.
MÖGLICHE SUCHWORTE: Kassel, Känguru, Fußgängerzone, Innenstadt
ÜBERSCHRIFT: Kassel: Känguru-Alarm in der Fußgängerzone - Polizei beendet Stadtbummel
###
TEXT: ...

Für die Überschriften mag das noch nicht mal so furchtbar viel bringen; wo Anwendungsbeispiele aber unbedingt nötig sind, ist bei Klassifizierungs-Aufgaben, also dann, wenn mir die KI einen Text in eine Kategorie einordnen soll. Wie verständlich ist ein Text auf einer Skala von 1-5? Wenn ich das fragen will, sollte ich ein Beispiel für einen sehr gut verständlichen und einen nicht so gut verständlichen Text mit der gewünschen Bewertung mitliefern.

Playground-Seite von OpenAI. Sprachmodell Chat/GPT-3.5, folgende Vorgaben: System: Als Populismus bezeichnet man eine politische Grundhaltung, die in radikaler Opposition zu den herrschenden politischen und gesellschaftlichen Eliten steht und für sich selbst reklamiert, den „wahren“ Volkswillen zu erkennen und zu vertreten. Kern dieser Haltung ist die dichotomische Abgrenzung des moralisch guten, tugendhaften Volkes von den als korrupt und selbstsüchtig bezeichneten Vertretern des sogenannten Establishments. Bewerte auf einer Skala von 1 (niedrig) bis 10 (hoch) , wie populistisch die Aussagen sind. User: Wir sagen ja! Wir sagen ja, nicht zur strukturellen Fundamentalopposition, weil wir diesen Staat ja wollen! Wir wollen ihn am Leben erhalten und wir wollen ihn stützen. Wir sagen aber ja zu einer inhaltlichen Fundamentalopposition um diesen Staat, den wir erhalten wollen, vor den verbrauchten politischen Alteliten zu schützen, die ihn nur missbrauchen um ihn abzuschaffen! Das werden wir nicht zulassen, liebe Freunde! Assistant: Populismus: 9 User: Manche mögen Zweifel haben, ob dieser Kontinent, ob Europa den großen Herausforderungen unserer Zeit wirklich gewachsen ist. Und es stimmt ja: Unsere Geschlossenheit und unsere Entschlossenheit werden in diesen Tagen, in diesen Wochen und Monaten auf eine harte Probe gestellt. Wir leben in Zeiten von Umbrüchen. Wir leben in Zeiten des Wandels. Wir leben in einer Zeit, in der sogar der Krieg nach Europa zurückgekehrt ist. Assistant: Populismus: 1

Wer sich auf den OpenAI-Playground wagt – eine Eingabemaske, in der ich am Chatbot vorbei Zugriff auf die GPT-Sprachmodelle habe – hat die Möglichkeit, die Beispiele als Paare von “User”-Eingabe und erwünschter “Assistant”-Antwort anzugeben. Außerdem gibt es zusätzliche Einstellungsmöglichkeiten wie die “Temperatur”, die das Maß an Zufall regelt – die werden noch einmal Extra-Thema.

Warum es funktioniert: Dass die KI “GPT” heißt – “Generative Pre-trained Transformer” – ist besonders mit Blick auf das P interessant: “Pre-Trained” heißt, dass das Modell aus seinen Trainingsdaten so viel über die Struktur menschlicher Texte gelernt hat, dass es aus einigen wenigen Beispielen viel über die Aufgabe dazulernen kann. “Language Models are few-shot learners” – sie können aus diesen paar Beispielen dank ihres Vor-Trainings ableiten, wie sie arbeiten sollen. Das unterscheidet die Pre-Trained-Modelle von anderen KI-Algorithmen, die viele, viele, viele Daten benötigen: Einige wenige Beispiele reichen – starte mit nur zwei; mehr dazu beim Post über den KI-Nachbau des Bild-Kolumnisten Franz Josef Wagner.

5. N wie Nützliche Details

Wie: Wir führen auf, was die KI noch berücksichtigen soll. Wenn sie einen längeren Text verfassen soll, beispielsweise einen Beschwerdebrief, führe ich die Punkte auf, um die es konkret geht.

Warum es funktioniert: Weil wir damit die Wahrscheinlichkeit senken, dass die KI Beispiele und Details einfach erfindet. Und weil wir so daran denken müssen, dass die Maschine keine Gedanken lesen kann.

6. E wie Empfänger

Wie: Wir ergänzen unseren Prompt um Angaben zu den gewünschten Empfängern.

Die Überschriften sollen sich an Leserinnen und Leser zwischen 35 und 45 richten, die Familie haben und vor allem im Umland der Städte leben. Sie haben ein hohes Interesse an Regionalem.

Warum es funktioniert:  It’s all about the Zielgruppe! Nicht umsonst arbeiten viele Redaktionen mit Personas, auch der KI kann ich vorgeben, für wen sie schreiben soll.

Packungsbeilage

Das ROMANE-Schema ist kein Rundum-Sorglos-Paket. Ein paar Dinge sollte man zusätzlich wissen: Zum Beispiel, dass Sprachmodelle gern eher auf die erste und auf die letzte Anweisung schauen und alles dazwischen eher stiefmütterlich behandeln. Oder welche große Rolle der Zufall spielt – ein Prompt, das im ersten Versuch nur so meh funktioniert hat, kann im neuen Anlauf, im neuen Chat, womöglich richtig gute Ergebnisse liefern. (Wichtig ist nur, dass man dafür wirklich einen neuen Chat aufmacht – dran denken: ChatGPT hat kein Gedächtnis, und lernt auch nichts aus unseren Prompts!)

Und das hier muss ich noch dazu sagen: Man braucht nicht immer alle Buchstaben. Anwendungsbeispiele sind dann wichtig, wenn mein Ergebnis möglichst reproduzierbare Ergebnisse liefern soll; für eine Kreativrunde, in der mir ChatGPT neue Ideen liefern soll, sind Beispiele eher kontraproduktiv. Man sollte die ROMANE also als Stichworte verstehen, was man machen kann, nicht, was man machen muss.

Ohnehin ist das nicht die einzig richtige Art, gute Prompts zu verfassen – vielleicht schreibt ihr mir ja eure Erfahrungen und Ideen in die Kommentare?

Kurzlink zu diesem Artikel: https://www.janeggers.tech/romanealt

Neue Posts einfach per Mail zugeschickt bekommen? Dann hier eintragen; die Mails kannst du natürlich jederzeit wieder abbestellen.

Loading

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert