AI-Communication / Basics

18. May 2024|16 Minutes|In BUIZ-FEED, MISC

The fine Art of Prompting

Das Erstellen effektiver Prompts ist eine Kunst für sich, aber wenn man es richtig macht, kann es den Unterschied zwischen einem großartigen Ergebnis und völligem Müll ausmachen! Heute werden wir die 5 Techniken der promptgesteuerten Konfiguration erkunden, die jeder KI-Ingenieur kennen sollte, um das Beste aus LLMs herauszuholen.

Um die Leistungsfähigkeit von Large Language Models (LLMs) voll auszuschöpfen, ist Prompt Engineering eine unverzichtbare Fähigkeit. Diese fortschrittlichen KI-Modelle können feinabgestimmt oder dazu veranlasst werden, eine Vielzahl von Aufgaben auszuführen, von der Codegenerierung bis hin zur Analyse und Problemlösung.

1. Few-Shot Prompting

Während LLMs mit einer einfachen Eingabeaufforderung alleine gut zurechtkommen, haben sie bei komplexeren Aufgaben im Zero-Shot- Setting – also ohne Beispiele, wie eine ordentliche Ausgabe aussehen sollte – Schwierigkeiten. Few-Shot-Prompting ist eine Technik, die dieses Problem löst.

Die Idee hinter dem Few-Shot-Prompting besteht darin, in der Eingabeaufforderung Beispiele dafür bereitzustellen, wie eine gute Ausgabe aussieht. Dies ermöglicht das sogenannte kontextbezogene Lernen, bei dem das LLM aus Ihren Beispielen in der Eingabeaufforderung lernt und so zu einer besseren Leistung führt.

Beispiel:
Betrachten Sie die Aufgabe, ein neues Wort in einem Satz richtig zu verwenden. Geben Sie ein Beispiel wie:

Ein „Flibble“ ist ein kleines, pelziges Tier, das im Amazonas-Regenwald heimisch ist. 

Ein Beispielsatz, in dem das Wort „Flibble“ vorkommt, lautet: 
„Während wir durch den Dschungel wanderten, entdeckten wir ein entzückendes Flibble, das einen Baum hinaufhuschte.“

Das Modell kann dann einen neuen Satz generieren, in dem das Wort „flibble“ korrekt verwendet wird:

**Ausgabe:** Als ich aus dem Zelt spähte, knabberte ein winziges Flibble direkt außerhalb des Campingplatzes an Blättern.

Das Modell hat anhand des Beispiels in der Eingabeaufforderung gelernt, wie das neue Wort richtig verwendet wird!

Tipps für die Eingabeaufforderung mit wenigen Schritten
  • Die Art der Beispiele und ihre Formatierung sind von entscheidender Bedeutung – der LLM befolgt genau Ihre Vorgaben !
  • Die Beispiele sollten so realistisch wie möglich sein. Verwenden Sie nach Möglichkeit reale Daten.

2. Chain-of-Thought Prompting

Diese Technik der “Gedankenketten-Anregung” hilft LLMs bei der Bewältigung von Aufgaben, die mehrstufiges Denken erfordern, bevor sie reagieren können. Dies geschieht durch Demonstrationen, die die schrittweise Denkkette aufschlüsseln , die zur Lösung des Problems erforderlich ist.

Bild aus der original Forschungsarbeit

.

Ein Beispiel:

Angenommen, Sie möchten, dass das LLM ermittelt, ob eine Zahlenliste eine ungerade Anzahl ungerader Zahlen enthält:

**Frage:** Enthält diese Gruppe eine ungerade Anzahl ungerader Zahlen: 23, 44, 61, 72, 95? 

**Ausgabe:**
 Es gibt insgesamt 5 Zahlen in der Gruppe: 23, 44, 61, 72, 95 
Davon sind dies die ungeraden Zahlen: 23, 61, 95 
Es gibt 3 ungerade Zahlen in der Gruppe. 3 ist eine ungerade Zahl. 
Daher lautet die Antwort: Ja, diese Gruppe enthält eine ungerade Anzahl ungerader Zahlen.

Das Modell kann nun mithilfe desselben Denkprozesses ein neues Problem lösen:

**Frage:** Enthält diese Gruppe eine ungerade Anzahl ungerader Zahlen: 23, 44, 61, 72, 95?

**Ausgabe:**
Es gibt insgesamt 5 Zahlen in der Gruppe: 23, 44, 61, 72, 95 
Davon sind dies die ungeraden Zahlen: 23, 61, 95 
Es gibt 3 ungerade Zahlen in der Gruppe. 3 ist eine ungerade Zahl. 
Daher lautet die Antwort: Ja, diese Gruppe enthält eine ungerade Anzahl ungerader Zahlen.

3.  Self-Consistency

Selbstkonsistenz bedeutet, dem LLM mehrere Argumentationsbeispiele zu liefern und dann aus den generierten Antworten die beste auszuwählen. Diese Technik hilft nicht nur, Voreingenommenheit in den Antworten des LLM zu reduzieren, sondern ermutigt ihn auch, verschiedene Standpunkte zu berücksichtigen, bevor er die endgültige Antwort gibt.

Bild aus der original Forschungsarbeit

.

In der Praxis umfasst die Implementierung der Selbstkonsistenz einige Schritte:

  1. Definieren Sie das Problem: Schreiben Sie eine klare und spezifische Beschreibung dessen, was der LLM lösen soll
  2. Erstellen Sie mehrere Eingabeaufforderungen: Schreiben Sie mehrere unterschiedliche Eingabeaufforderungen, die auf unterschiedliche Weise zum Problem fragen.
  3. Antworten generieren: Senden Sie diese Eingabeaufforderungen an das LLM und sammeln Sie die Antworten.
  4. Konsistenz bewerten: Vergleichen Sie die Antworten, um zu sehen, ob sie kohärent und relevant sind. Achten Sie auf gemeinsame Themen und logische Konsistenz.
  5. Wählen Sie die beste Antwort: Wählen Sie als Ihre endgültige Antwort die schlüssigste und genaueste aus.
Beispiel:

Lassen Sie uns ein Beispiel durchgehen.

Als ich 6 war, war meine Schwester halb so alt wie ich. Jetzt bin ich 70. Wie alt ist meine Schwester?

**Ausgabe:** 73
Das Ergebnis ist falsch!

Jetzt beheben wir das Problem mit Selbstkonsistenz….

In der folgenden Eingabeaufforderung geben wir mehrere Beispiele für ein ähnliches Problem. Wir beschreiben auch, wie wir das Problem durchgehen würden, um selbst die richtige Antwort zu finden, um dem LLM zu zeigen, wie es geht.

**F:** Im Hain stehen 15 Bäume. Die Arbeiter werden heute Bäume im Hain pflanzen. Wenn sie fertig sind, werden es 21 Bäume sein. Wie viele Bäume haben die Arbeiter heute gepflanzt? 
**A:** Wir beginnen mit 15 Bäumen. Später haben wir 21 Bäume. Die Differenz muss die Anzahl der gepflanzten Bäume sein. Sie müssen also 21 - 15 = 6 Bäume gepflanzt haben. Die Antwort ist 6. 


**F:** Wenn 3 Autos auf dem Parkplatz stehen und 2 weitere Autos ankommen, wie viele Autos stehen dann auf dem Parkplatz? 
**A:** Auf dem Parkplatz stehen bereits 3 Autos. 2 weitere kommen an. Jetzt stehen 3 + 2 = 5 Autos. Die Antwort ist 5. 


**F:** Leah hatte 32 Pralinen und ihre Schwester hatte 42. Wenn sie 35 gegessen haben, wie viele Stücke bleiben ihnen dann insgesamt übrig? 
**A:** Leah hatte 32 Pralinen und Leahs Schwester hatte 42. Das bedeutet, dass es ursprünglich 32 + 42 = 74 Pralinen waren. 35 wurden gegessen. Insgesamt haben sie also noch 74 - 35 = 39 Pralinen. Die Antwort ist 39. 


**F:** Jason hatte 20 Lutscher. Er gab Denny einige Lutscher. Jetzt hat Jason 12 Lutscher. Wie viele Lutscher hat Jason Denny gegeben?
 
**A:** Jason hatte 20 Lutscher. Da er jetzt nur noch 12 hat, muss er den Rest Denny gegeben haben. Die Anzahl der Lutscher, die er Denny gegeben hat, muss 20 - 12 = 8 Lutscher gewesen sein. Die Antwort ist 8. 


**F:** Shawn hat fünf Spielzeuge. Zu Weihnachten hat er von seiner Mama und seinem Papa jeweils zwei Spielzeuge bekommen. Wie viele Spielzeuge hat er jetzt? 
**A:** Er hat 5 Spielzeuge. Er hat 2 von Mama bekommen, also hat er danach 5 + 2 = 7 Spielzeuge. Dann hat er noch 2 von Papa bekommen, also hat er insgesamt 7 + 2 = 9 Spielzeuge. Die Antwort ist 9.

**F:** Es gab neun Computer im Serverraum. Von Montag bis Donnerstag wurden jeden Tag fünf weitere Computer installiert. Wie viele Computer sind jetzt im Serverraum? 
**A:** Von Montag bis Donnerstag sind es 4 Tage. Jeden Tag wurden 5 Computer hinzugefügt. Das heißt, insgesamt wurden 4 * 5 = 20 Computer hinzugefügt. Am Anfang gab es 9 Computer, also sind es jetzt 9 + 20 = 29 Computer. Die Antwort ist 29. 


**F:** Michael hatte 58 Golfbälle. Am Dienstag hat er 23 Golfbälle verloren. Am Mittwoch hat er 2 weitere verloren. Wie viele Golfbälle hatte er am Ende des Mittwochs? 
**A:** Michael hatte anfangs 58 Bälle. Am Dienstag hat er 23 verloren, also hat er danach 58 - 23 = 35 Bälle. Am Mittwoch hat er weitere 2 verloren, also hat er jetzt 35 - 2 = 33 Bälle. Die Antwort ist 33. 


**F:** Olivia hat 23 $. Sie hat fünf Bagels für je 3 $ gekauft. Wie viel Geld hat sie noch übrig? 
**A:** Sie hat 5 Bagels für je 3 $ gekauft. Das heißt, sie hat 5 ausgegeben. 


**F:** Als ich 6 war, war meine Schwester halb so alt wie ich. Jetzt bin ich 70, wie alt ist meine Schwester? 
**A:** 

 

OUTPUT 1:

 

Als ich 6 war, war meine Schwester halb so alt wie ich, also war sie 3. Jetzt bin ich 70, also ist sie 70 - 3 = 67. Die Antwort ist 67.

 

OUPUT 2:

Als der Erzähler 6 Jahre alt war, war seine Schwester halb so alt wie er, also 3 Jahre alt. Jetzt, wo der Erzähler 70 Jahre alt ist, wäre seine Schwester 70 - 3 = 67 Jahre alt. Die Antwort ist 67.

 

OUTPUT 3:

Als ich 6 war, war meine Schwester halb so alt wie ich, also war sie 3. Jetzt bin ich 70, also ist sie 70/2 = 35. Die Antwort ist 35.

4. Prompt Chaining / Gedanken-Ketten

Bei wirklich komplexen Abfragen reicht es manchmal nicht aus, den LLM einmal aufzurufen. Beim Prompt Chaining, übersett (Eingabeaufforderungsverkettung) wird eine Aufgabe granuliert. Sie wird also in Aufforderungen unterteilt.

.

Bild aus der original Forschungsarbeit

.

Die erste Eingabeaufforderung verarbeitet einen Teil der Aufgabe, wobei ihre Ausgabe als Eingabe für die nächste Eingabeaufforderung in der Kette verwendet wird, die wiederum den nächsten Teil der Aufgabe verarbeitet. Und so weiter, bis die endgültige gewünschte Ausgabe erzeugt wird.

Beispiel:
Ein häufiger Anwendungsfall ist die Beantwortung von Fragen zu Dokumenten:

 

**Aufforderung 1:** 
Extrahieren Sie alle Zitate aus dem gegebenen Text, die für die Beantwortung der Frage „Was war die Hauptursache des amerikanischen Bürgerkriegs?“ relevant sind.

**Ausgabe 1:** 
<quotes> 
„Einer der größten Katalysatoren für den Bürgerkrieg selbst war die Frage der Sklaverei, insbesondere der Wunsch der Südstaatler, die Sklaverei in die Territorien zu bringen.“ 
„Der Höhepunkt kam, als der republikanische Kandidat Abraham Lincoln 1860 mit einem Programm zum Präsidenten gewählt wurde, das sich gegen die Ausweitung der Sklaverei in den Territorien aussprach, was den Süden entfremdete.“ 
</quotes>

**Aufforderung 2 (unter Verwendung der Ausgabe von Aufforderung 1 als Kontext):** 
Geben Sie mithilfe der extrahierten Zitate und des vollständigen Textes eine detaillierte Antwort auf die Frage „Was war die Hauptursache des amerikanischen Bürgerkriegs?“.

**Ausgabe 2:** 
Die Hauptursache des amerikanischen Bürgerkriegs war die Frage der Sklaverei und ihrer möglichen Ausweitung auf neue Territorien und Staaten. Der Süden bestand darauf, die Sklaverei in neue Territorien zu bringen, während die Wahl Abraham Lincolns mit einem Programm gegen die Sklaverei die Südstaaten entfremdete, die befürchteten, ihr Recht auf Sklavenbesitz zu verlieren. Der grundlegende Meinungsverschiedenheit zwischen Nord- und Südstaaten über die Sklaverei war der Hauptgrund, der letztlich zum Ausbruch des Bürgerkriegs führte.


Durch die Verkettung von Eingabeaufforderungen auf diese Weise kann das LLM sehr große, komplexe Abfragen ordnungsgemäß aufschlüsseln und schrittweise bearbeiten.


5. Generierte Wissenseingabe

Manchmal verfügt ein LLM einfach nicht über das erforderliche Fachwissen, um eine Anfrage richtig zu beantworten. Dies kann daran liegen, dass ihm in diesem Bereich keine Trainingsdaten zur Verfügung stehen oder die Anfrage Nischenwissen erfordert.

.

Bild aus der original Forschungsarbeit

.

Ein relativ neuer Ansatz für dieses Problem ist die Eingabeaufforderung für generiertes Wissen . Dabei generiert das LLM zunächst relevantes Hintergrundwissen oder einen Kontext, um die ursprüngliche Abfrage zu ergänzen.

Beispiel:
**Erste Eingabeaufforderung:** Chemikalien sind schlecht für Sie. Ja oder Nein? 

**Erste Modellantwort:** Ja.

 

Diese Antwort ist zu simpel und berücksichtigt nicht die Komplexität des Themas. Sie unterscheidet nicht zwischen schädlichen und nützlichen Chemikalien und geht auch nicht auf den Kontext oder die Dosierung ein.

Zur Verbesserung bitten wir den LLM, zusätzliche Hintergrundinformationen und Beispiele zur Unterstützung seiner Antwort bereitzustellen.

**Bessere Eingabeaufforderung:** Chemikalien sind schlecht für Sie. Ja oder nein?

**Bessere Modellantwort:** 
Nein, nicht alle Chemikalien sind schlecht für Sie.

Chemikalien sind Substanzen mit einer bestimmten molekularen Zusammensetzung, die bei chemischen Prozessen erzeugt oder verwendet werden. Sie sind grundlegend für das Leben und können je nach Art und Verwendung nützlich oder schädlich sein.

Nützliche Chemikalien:

Wasser (H₂O): Unverzichtbar für das Leben, die Flüssigkeitszufuhr und viele biologische Prozesse. 
Sauerstoff (O₂): Lebenswichtig für die Atmung und Energieproduktion in Zellen. 
Medikamente: Aspirin (Acetylsalicylsäure) zur Schmerzlinderung, Penicillin (ein Antibiotikum) zur Bekämpfung von Infektionen. 
Vitamine: Vitamin C (Ascorbinsäure) unterstützt das Immunsystem und die allgemeine Gesundheit. 
Schädliche Chemikalien:

Blei: Kontakt kann zu Vergiftungen und neurologischen Schäden führen. 
Asbest: Einatmen kann zu schweren Lungenerkrankungen, einschließlich Krebs, führen. 
Quecksilber: Giftig und kann das Nervensystem schädigen. 
Abschließend lässt sich sagen, dass die Auswirkungen von Chemikalien auf die Gesundheit von ihrer Art, Konzentration und der Art ihrer Verwendung oder Exposition des menschlichen Körpers abhängen.

Your turn…

Mit diesen 5 Prompt-Engineering-Techniken sind Sie bestens gerüstet, um das Beste aus LLMs herauszuholen! Von Few-Shot-Learning zur Bewältigung komplexer Aufgaben über Prompt-Chaining zur Bewältigung der größten Abfragen bis hin zur Generierung von Zusatzwissen – die Möglichkeiten sind endlos, wenn Sie Prompt-Engineering beherrschen.

.